Understanding Physical Inventory An Oracle White Paper May’2003
Understanding Physical InventoryINTRODUCTIONOracle Inventory provides several tools to aid users in controlling and improving theaccuracy of inventory records. a. ABC Analysis b. Cycle Counting c. Physical InventoryThis white paper will give an overview of Physical Inventory, various steps involved,associated tables, forms, packages, concurrent programs and reports.EXECUTIVE OVERVIEWOracle Inventory provides a fully automated physical inventory feature. Physicalinventory is a periodic reconciliation of system on-hand balances with physicalcounts in inventory.Physical inventory can be performed, whenever there is a need to verify the accuracyof system on-hand quantities. This can be done for entire organization or forparticular subinventories within an organization. Accurate system on-hand quantitiesare essential for managing supply & demand, maintaining high service levels,effective planning, minimizing inventory investment and for audit purpose.Physical inventory and cycle counting can both be a part of annual program tomanage and improve inventory record accuracy. Cycle counting would be a daily,weekly or monthly activity. Physical inventories might be performed at periodicintervals - monthly, quarterly, annually and so on. One strategy is to only performphysical inventories as required to satisfy auditors of the organization.INTERFACESPhysical inventory integrates with Oracle Cost Management and Oracle GeneralLedger. If there is a quantity discrepancy for items, Inventory derives the item costsfrom Cost management and posts the inventory value changes to General Ledger.Oracle Cost Management Physical Inventory Oracle General Ledger Item Costs Quantity Changes Inventory Value Changes
STEPS INVOLVED IN PHYSICAL INVENTORY Define Physical Inventory Take a Snapshot of system On–hand quantities Generate Physical Inventory Tags Enter Counts Approve or Reject Physical Inventory Adjustments Post Adjustments Purge Physical Inventory information1. DEFINE PHYSICAL INVENTORYUnlimited number of physical inventories can be defined and maintained to countselected portions of inventory or total inventory. A physical inventory is identifiedby a unique name. To define physical inventory navigation is Inventory -> Counting-> Physical Inventory -> Define Physical Inventory
a. Enter a unique physical inventory name in the name field b. Select approval requirements for the adjustment. Options available are Always: Requires approval for all physical inventory adjustments. Adjustments program cannot be run until all the adjustments are approved. If out of tolerance: Quantity and / or Value adjustment tolerances can be entered. Adjustments exceeding tolerances must be approved before running the adjustment program. Adjustment value = (Actual count - System count) x Item cost Never: Allow any adjustment to post without approval. Choose when to Approve adjustments Enter Tolerances Specify Scope Enable or disable Dynamic Tag entry c. Enter positive and negative approval tolerancesd. Select the scope of physical inventory Determines whether the physical inventory is for all subinventories of the organization or for one or more specific subinventories. Enter only quantity- tracked subinventoriese. Indicate whether to allow dynamic entry of tags Determines whether manually created tags can be entered. If the option is not to allow dynamic tag entry all tags must generated before the use.
Technical Notes:When physical Inventory definition is saved the following table–column values areinserted / updated Tables Columns Updated / Inserted MTL_PHYSICAL_INVENTORIES PHYSICAL_INVENTORY_ID ORGANIZATION_ID ALL_SUBINVENTORIES_FLAG Permitted values are 1 - Yes (All subinventories) 2 - No (Specific subinventories) APPROVAL_REQUIRED Permitted values are 1 - Required for all adjustments 2 - Not Required for adjustments 3 - Required for adjustments out of tolerance APPROVAL_TOLERANCE_POS APPROVAL_TOLERANCE_NEG (Updated if approval required is 3-‘If Out of tolerance’ and choose +ve / -ve tolerance for quantity) COST_VARIANCE_POS COST_VARIANCE_NEG (Updated if approval required is 3-‘If Out of tolerance’ and choose +ve / -ve tolerance for cost) DYNAMIC_TAG_ENTRY_FLAG Permitted values are 1 - Yes (Allowed) 2 - No (Not Allowed) MTL_PHYSICAL_SUBINVENTORIES While defining the physical inventory if user chooses ALL_SUBINVENTORIES_FLAG as 1 –Yes(All subinventories) no data is populated.
While defining the physical inventory if user chooses ALL_SUBINVENTORIES_FLAG as 2-No (Specific subinventories) the fields updated are PHYSICAL_INVENTORY_ID ORGANIZATION_ID SUBINVENTORYMTL_PHYSICAL_INVENTORY_TAGS NilMTL_PHYSICAL_ADJUSTMENTS NilForm Name: Define Physical Inventory Short Name: INVADPPI2. SNAPSHOT OF SYSTEM ON–HAND QUANTITIESTo run the snapshot navigation is Inventory -> Counting -> Physical Inventory ->Define Physical Inventory -> Choose the Snapshot buttonSnapshot must be completed before generating the tags. After taking the snapshot,system will no longer allow to update header information of the physical inventory.The snapshot saves all item on–hand quantities and costs and uses this information asthe basis for all physical inventory adjustments rather than the current on-handquantity. System allows to resume transaction activities even before running theadjustments program for the physical inventory .Therefore need to procedurallycoordinate snapshot of physical inventory with actual counting and ensure that notransaction activity occurs in a particular location until adjustments are launched andposted.Once snapshot concurrent process is finished, the snapshot complete box is checked,the snapshot date is updated and the Tags button is enabled in the define physicalinventory window.
Technical Notes: Whensnapshot is finished the following table–column values are inserted / updated Tables Columns Updated / Inserted MTL_PHYSICAL_INVENTORIES FREEZE_DATE ( MPI ) NUMBER_OF_SKUS : Number of SKU’s are calculated and updated . MTL_PHYSICAL_SUBINVENTORIES Nil MTL_PHYSICAL_INVENTORY_TAGS Nil MTL_PHYSICAL_ADJUSTMENTS ADJUSTMENT_ID : Number of rows equal to NUMBER_OF_SKUS of ( MPA ) MPI are inserted PHYSICAL_INVENTORY_ID ORGANIZATION_ID SUBINVENTORY_NAME INVENTORY_ITEM_ID SYSTEM_QUANTITY ADJUSTMENT_QUANTITY will be set as –ve of SYSTEM_QUANTITY ACTUAL_COST REVISION LOCATOR_ID LOT_NUMBER LOT_EXPIRATION_DATE SERIAL_NUMBER The concurrent program INCAPF - Freeze Physical Inventory executes the following · Updates the Freeze date in MTL_PHYSICAL_INVENTORIES table. · Calculate and insert number of SKU’s in physical inventory into MTL_PHYSICAL_INVENTORIES table. · Adjustment records will be inserted into MTL_PHYSICAL_ADJUSTMENTS table. · Cost of the items will be calculated and updated in MTL_PHYSICAL_ADJUSTMENTS table · The On-hand quantity of the items will be calculated from table MTL_ONHAND_QUANTITIES and updates in MTL_PHYSICAL_ADJUSTMENTS.
3. GENERATE PHYSICAL INVENTORY TAGSPhysical inventory tags are used to record the count of inventory items. Tags arereferred by its alphanumeric identification code. Oracle Inventory can automaticallygenerate tag numbers that can be used to enter inventory counts. Tags can begenerated only after snapshot is completed. The system also supports using numbersgenerated outside the Oracle Inventory. There should be only one item on a tag butmultiple tags can refer to the same item .Physical Inventory can be performed for items under serial control. If default tagsare generated, system generates one tag per item per serial number.Dynamic Tag Entry : Determines whether manually created tags can be entered ornot . If the option is not to allow dynamic tag entry, all tags must be generatedbefore the use. Dynamic Tag Entry is allowed when tag numbers are generatedoutside the system. For example when using third-party pre-numbered tags. Option 1: Dynamic Tag Entry No need to run the Tag Generation program Use own tag numbers while entering the countsDefault Tags : Contain information on items in the physical inventory definition.Generates a tag for each SKU i.e. unique combination of item, subinventory, locator,revision, lot number and serial number that exists in the subinventories of physicalinventory. Option 2: Default Tags Specify the starting tag number and digit increments Run the Tag Generation program Use system generated tag numbers to enter counts
Blank Tags: Do not contain any information about the items in physical inventorydefinition. Blank tags can be generated to enter counts for those items whoselocations are not currently recorded in the system. Option 3: Blank Tags Specify the starting tag number and digit increments Specify quantity of tags or the ending tag number Run the Tag Generation program Use system generated tag numbers to enter countsTo generate the tags navigation is Inventory -> Counting -> Physical Inventory ->Tags Generation -> Choose Generate button a. Enter the name of the physical inventory. b. Select the type of tag to create.
c. Indicate whether it is required to show serial numbers on the physical inventory tags. If the option is not to show serial numbers on the tags, system will generate a tag for each item but user has to match the serial numbers to the items manually. It is allowed to enter a value in this field only if tag type selected is default. d. Enter the starting tag number for example - 0001 and say user wants the increment to be 5, then for the increment enter 1115. The increment field should have the number of digits the starting tag has and it should have 1s preceding what the actual increment value would be. Tag numbers may be alphanumeric, but increment will be done only for the numeric portion. e. Choose the Generate button to create the tag numbers and information. Note that this process does not physically print the tags. To print the tags, user need to run the Physical Inventory Tags report using the navigation Inventory -> Reports -> ABC and Counting -> Run Physical Inventory Tags reportTechnical Notes: When thetags are generated the following table–column values are inserted / updated Tables Columns Updated / Inserted MTL_PHYSICAL_INVENTORIES Based on the increment that is entered while generating the tags the following columns are updated NEXT_TAG_NUMBER TAG_NUMBER_INCREMENTS MTL_PHYSICAL_SUBINVENTORIES Nil MTL_PHYSICAL_INVENTORY_TAGS PHYSICAL_INVENTORY_ID ORGANIZATION_ID TAG_ID VOID_FLAG is set to 2. Possible values are 1-Void, 2- Active TAG_NUMBER ADJUSTMENT_ID SUBINVENTORY REVISION LOCATOR_ID LOT_NUMBER LOT_EXPIRATION_DATE SERIAL_NUMBER
MTL_PHYSICAL_ADJUSTMENTS NilForm Name: Generate Physical Inventory tags Short Name: INVARPGT Concurrent program INCAPT - Generate physical Inventory Tags executes the following · Gets ORGANIZATION_ID for particular PHYSICAL_INVENTORY_ID from MTL_PHYSICAL_INVENTORIES table · NEXT_TAG_NUMBER and TAG_NUMBER_INCREMENTS will be calculated and updated in MTL_PHYSICAL_INVENTORIES · Inserts the records to MTL_PHYSICAL_INVENTORIES using the sequence MTL_PHYSICAL_INVENTORY_TAGS_S · Generates tag numbers based on the starting tag number & the increment and insert the records in to table MTL_PHYSICAL_INVENTORY_TAGS table · Generates pre printed tags by fetching rows from MTL_PHYSICAL_ADJUSTMENTS table for a PHYSICAL_INVENTORY_ID and insert tag numbers in MTL_PHYSICAL_INVENTORY_TAGS table4. ENTER COUNTSGenerated tags are used to record the physical counts. After recording the physicalcounts user must enter the quantity for each tag. To enter the Tag counts thenavigation is Inventory -> counts -> Physical Inventory -> Tag Counts.Navigate to the Physical Inventory Tag Counts window. Enter name of the employeethat performed the physical inventory in the Default Counter field. This is used as adefault for the Counted by field of each tag.If the default tags are used, the system will display the tags with relevant iteminformation. User need to enter only the quantity counted for each tag. User can alsoquery a subset of tags by any combination of tag number, item, revision,subinventory, locator, lot and serial number.If blank tags are used in the physical inventory, user can query up the tags by tagnumber. The system displays the tags but no item information. Need to enter thecount quantity as well as the item information i.e. item name, subinventory, locator,revision, lot and serial numbers.If dynamic tags are allowed in physical inventory definition user can enter tagnumbers generated outside the system. User needs to enter the count quantity as wellas the item information.
Void Tags: If any of the tags are not used, they have to be voided, as this is necessaryfor auditing purpose. A voided tag is not reported as a missing in the Physicalinventory Missing Tag Listing report. Tags can be voided if they are lost, damaged ordiscarded before the approval or before the adjustment process. If a default tag isvoided Oracle Inventory adjusts the quantity in that location to zero.Technical Notes:After entering the counts and save the following table–column values are inserted /updated Tables Columns Updated / Inserted MTL_PHYSICAL_INVENTORIES Nil MTL_PHYSICAL_SUBINVENTORIES Nil MTL_PHYSICAL_INVENTORY_TAGS TAG_QUANTITY is set as equal to COUNT_QUANTITY entered If Tag is voided TAG_QUANTITY is updated as Null and VOID_FLAG is set to 1. TAG_UOM COUNTED_BY_EMPLOYEE_ID
COST_GROUP_IDMTL_PHYSICAL_ADJUSTMENTS COUNT_QUANTITY ADJUSTMENT_QUANTITY set as equal to [(COUNT_QUANTITY)– (SYSTEM_QUANTITY)]Form Name: Physical Inventory Tag Counts Short Name: INVADPTE5. APPROVING PHYSICAL INVENTORY ADJUSTMENTSOracle Inventory supports two types of physical inventory approval tolerances i.e.quantity tolerances and cost tolerances. For each type, it is allowed to specify apositive and a negative limit. The adjustments that can be viewed from this windoware determined by the approval option selected while defining the physical inventory.If a particular adjustment is approved, physical Inventory Adjustments programadjusts inventory balance by that quantity. If an adjustment is rejected, OracleInventory does not change the system on–hand quantity.Navigation to approve physical Inventory adjustments is Inventory -> Counting ->Physical Inventory -> Approve Adjustments a. Select the physical inventory and choose approve. b. Enter the name of the employee approving the adjustments. c. Select an adjustment to approve or reject and check the Approve/Reject option.User must either approve or reject all adjustments of the physical inventory beforerunning adjustments program.Technical Notes:When physical Inventory records are approved the following table–column valuesare inserted / updated Tables Columns Updated / Inserted MTL_PHYSICAL_INVENTORIES Nil MTL_PHYSICAL_SUBINVENTORIES Nil MTL_PHYSICAL_INVENTORY_TAGS Nil MTL_PHYSICAL_ADJUSTMENTS APPROVAL_STATUS set to 1 – if approved 2 – if rejected
Permitted values are 1-Approved 2-Rejected 3-Posted APPROVED_BY_EMPLOYEE_ID Form Name: Approve Physical Inventory Adjustments Short Name: INADPAP6. POST ADJUSTMENTSAfter entering all the tag counts and approve the adjustments that need approval, usercan submit the process that posts the physical inventory adjustments. This willautomatically creates a material transaction, adjusting the item quantity anddebiting/crediting the adjustment account specified for the physical inventory. If thecount of an item matches with the snapshot system on–hand quantity, there will beno adjustment transaction posted.Once the adjustment program is completed it does not allow new tag generation andno longer will be able to make changes to the physical inventory. Oracle Inventorywill not post adjustments, if any adjustment is pending for approval.User must approve or reject all the adjustments before running the adjustmentprogram. Adjustments can be previewed before actually posting them by running thePhysical inventory adjustments report. If the approval option for a particular physicalinventory is Never, Oracle Inventory does not at any time prevent from submittingthe adjustment process. For any tag that has no count entered, it assumes a count ofzero and performs adjustment transactions accordingly.To run the adjustment program a. Navigate to the Physical Inventories Summary window. b. Select the physical inventory. c. Choose Launch adjustments from the Tools menu. The Launch Adjustments window appears. d. Enter the Adjustment Account number against which adjustments should be charged. e. Enter the adjustment date. f. Choose the Launch Adjustments button to submit the concurrent request.
Technical Notes:When post adjustments program is run the following table-column values areinserted / updated Tables Columns Updated / Inserted MTL_PHYSICAL_INVENTORIES LAST_ADJUSTMENT_DATE TOTAL_ADJUSTMENT_VALUE MTL_PHYSICAL_SUBINVENTORIES Nil MTL_PHYSICAL_INVENTORY_TAGS Nil GL_ADJUST_ACCOUNT APPROVAL_STATUS is set to MTL_PHYSICAL_ADJUSTMENTS 3 - Posted (MPA) MMTT / MMT Records will be inserted for the difference of quantity i.e. [(COUNT_QUANTITY)– (SYSTEM_QUANTITY)] DISTRIBUTION_ACCOUNT_ID of MMT is set to GL_ADJUST_ACCOUNT of MPA PHYSICAL_ADJUSTMENT_ID of MMT is set to ADJUSTMENT_ID of MPA.MMTT is MTL_MATERIAL_TRANSACTIONS_TEMP tableMMT is MTL_MATERIAL_TRANSACTIONS table The concurrent program INCAPA- Perform Physical Inventory Adjustments is responsible for posting the adjustments and executes the following · Checks for adjustment records, which are pending approval/rejection .If there are any pending, then no adjustments will be posted. · Gets the approved records from MTL_PHYSICAL_ADJUSTMENTS for which adjustment quantity is not equal to zero. · Gets description, tolerance from MTL_PHYSICAL_ADJUSTMENTS. · Gets period close id for adjustment date and check whether it is in open period. · Gets transaction_id from sequence. Takes 100 transactions and then
commit. · The adjustment transaction records are inserted into MTL_MATERIAL_TRANSACTIONS_TEMP · If the item is lot, serial controlled the records are also inserted into MTL_TRANSACTION_LOT_NUMBERS MTL_SERIAL_NUMBERS_TEMP and respectively · Updates the table MTL_PHYSICAL_ADJUSTMENTS with approval status · Updates the table MTL_PHYSICAL_INVENTORIES with adjustment date and value.7. PURGE PHYSICAL INVENTORY INFORMATIONPurging physical inventory will delete definition from the database. Purge does notaffect any adjustments or adjustment transactions made using the physical Inventory.Options to choose while purging are ‘Tags only’ or ‘All’.Tags Only: Purges all the tags associated with a physical inventory definition. Ifirreversible mistakes are made in the count-entry phase, user can start over withoutrefreezing the inventory.All: Purges the physical inventory definition, frozen quantities, tags and countquantities. Identify the Physical Inventory to be purged Choose Purge option: Tags only or AllTo run the purge program a. Navigate to the Physical Inventories Summary window. b. Select the physical inventory c. Choose Perform purge from the Tools menu. d. Choose purge option ‘Tags only’ or ‘All’
Technical Notes:When Purge program is run using Tags only option the following table–column valuesare inserted / updated / deleted Tables Columns Updated/Inserted/Deleted MTL_PHYSICAL_INVENTORIES Resets the value of the fields NEXT_TAG_NUMBER and TAG_NUMBER_INCREMENTS to Null MTL_PHYSICAL_SUBINVENTORIES Nil MTL_PHYSICAL_INVENTORY_TAGS All records of physical Inventory will be deleted MTL_PHYSICAL_ADJUSTMENTS COUNT_QUANTITY is set to Null ADJUSTMENT_QUANTITY is set as -Ve of (SYSTEM_QUANTITY)When Purge program is run using ‘All’ option the following table–column values areinserted / updated / deleted Tables Columns Updated/ Inserted / Deleted MTL_PHYSICAL_INVENTORIES Purge program checks for adjustment transaction rows of that physical inventory in MTL_MATERIAL_TRANSACTIONS table with TRANSACTION_ACTION_ID=8 . If no rows found, deletes the header details of physical inventory. To reuse the physical Inventory name the adjustment transaction rows should be purged from table MTL_MATERIAL_TRANSACTIONS and run the physical Inventory purge – All MTL_PHYSICAL_SUBINVENTORIES All records of physical Inventory will be deleted MTL_PHYSICAL_INVENTORY_TAGS All records of physical Inventory will be deleted MTL_PHYSICAL_ADJUSTMENTS All records of physical Inventory will be deleted
The concurrent program INCAPP-Purge Physical Inventory Information executesthe following · Gets the valid organization ID. · Checks for adjustment record approval status 3 - Posted for purging the records · If the purge type is ‘All’ the records from the tables will purged in the following order o MTL_PHYSICAL_ADJUSTMENTS o MTL_PHYSCIAL_SUBINVENTORIES o MTL_PHYSICAL_INVENTORY_TAGS o MTL_PHYSICAL_INVENTORIES – records will not be deleted if adjustment transaction rows of that physical inventory are found in MTL_MATERIAL_TRANSACTIONS table. · If the purge type is ‘Tag Only’ o Records will be purged from MTL_PHYSICAL_INVENTORY_TAGS table o Updates MTL_PHYSICAL_ADJUSTMENTS with count and adjustment quantities o Resets tag information in MTL_PHYSICAL_INVENOTRIES tablePACKAGESa. INV_PHY_INV_LOVS (INVPINLS.pls / INVPINLB.pls) This will check for valid physical Inventories. Returns the count of physical tag records for a given serial number inputted. This will validate whether inputted serial is within the scope of the physical inventory i.e. exists in a subinventory which physical inventory covers. This package also includes APIs to process a tag entry in a physical count.b. INV_UI_ITEM_SUB_LOC_LOVS (INVITPSS.pls / INVITPSB.pls) This will check for valid subinventories and locators associated with physical Inventory.c. INVADPT1 (INVADPTS.pls / INVADPTB.pls) This server side package used by the form INVADPTE to update the table MTL_PHYSICAL_ADJUSTMENTSd. INV_CG_UPGRADE (INVCGUGB.pls / INVCGUGS.pls) Records that do not have a default cost group will be identified and assigned with cost group.
e. INV_UI_ITEM_LOVS (INVITMLS.pls / INVITMLB.pls) Returns valid items that are associated with a given physical inventory. Returns LOV rows for a given organization, item and user input text. Returns LOV rows for a given organization, item and user inputted text for valid uoms. f. INV_INV_LOVS (INVINVLS.pls / INVINVLB.pls) Returns a valid cost group associated with the given parameters. Returns lot numbers for a given organization and inventory item within a particular physical inventory g. INV_UI_ITEM_ATT_LOVS (INVITATS.pls/ INVITATB.pls) Return valid serial numbers for physical inventory when performing serial triggered tag counts.REPORTSThe following reports will help during the process of performing physical inventory.Run these reports using the navigation Inventory -> Reports -> ABC and Counting ->Choose to run one of the following reports. Report Name: Physical Inventory Tags report Short Name: INVARPTP Use Physical Inventory Tags report to print the tags. This report prints all the tags or range of tags for a single subinventory/all subinventories for a specified physical inventory. Physical inventory tags represent actual hard copy of tags that companies use to count inventory items. A tag contains the count of a given item. Report Name: Physical Inventory Tag Listing report Short Name: INVARPTG This report lists all the default and blank tags that are generated and the entire dynamic tags that are entered. Use the Physical Inventory Tag Listing to review the tags created by the ‘Generate Physical Inventory Tags’ process. Report Name: Physical Inventory Counts report Short Name: INVARPSL Shows information on the tags including the item, item controls, count location, count quantity and count value.
Report Name: Physical Inventory Missing Tag Listing reportShort Name: INVARPMTThis report lists the tags that are missing from a user–specified range of tag numbers.If the counts are not entered for the tag, it is considered as missing tag. Void tags arenot considered to be missing. Use this report before initiating physical adjustments toverify all tags generated by the system.Report Name: Physical Inventory Adjustments reportShort Name: INVARPARThis report shows all adjustments against each SKU of physical inventory. Run thisreport before processing the adjustments to get a preview of adjustment quantitiesand values. This report is also automatically generated after the successfulcompletion of the adjustment program as a record of what was actually adjusted.Report Name: Physical Inventory Accuracy Analysis reportShort Name: INVARPIAReview the output of this report at various stages of physical Inventory i.e. snapshot,entering tag counts..etc. This report can be used as a historical accuracy analysis tool.Report Name: Physical Inventory Trend and Summary analysis reportShort Name: INVARPTSWhile running the report choose to run either Summary Report or Trend Reporta) Summary report: Provides a summary of physical inventory adjustments bysubinventory. The output shows system on–hand value, actual count value, resultingadjustment value in functional currency as well as the number of tags andadjustments performed for each subinventory.b) Trend report: This report compares past physical inventories to gauge theaccuracy level improvement over time. It provides a summary of physical inventoryadjustment values by date and subinventory as well as number of tags andadjustments each subinventory required.CONCLUSIONUsing physical Inventory feature requires an understanding of the customer businessprocess. Physical Inventory has to define as per the company cost and quantitydiscrepancy approval policy.