FIFO Costing Overview

Purpose: There are three costing methods available:

Standard costing, in which you fix the cost for each item

Average costing, in which the system updates the cost to reflect the prices and quantities at purchase order receiving

FIFO costing, which is described below.

The Costing Method (A25) system control value defines the costing method your company uses to track inventory valuation.

What is FIFO costing? In simplest terms, FIFO (first-in, first-out) costing allows you to track the cost of an item/SKU based on its cost at purchase order receipt, and apply this cost against each shipment of the item until the receipt quantity is exhausted. The system determines the cost by creating a FIFO cost layer when you receive a purchase order, and selecting the oldest eligible FIFO cost layer when you ship an order.

Example: You receive 10 units of an item at $10.00 each. Subsequently, you receive 20 units of the item at $12.00 each. Each creates a separate FIFO cost layer. When you next bill an order for two units of the item, the system valuates the inventory at $20.00 ($10.00 * 2), and reduces the quantity of the first FIFO cost layer to eight.

In addition to purchase order receiving, several other inventory transactions may create FIFO cost layers. See Inventory Transactions and FIFO Updates.

In this chapter:

- Item/Warehouse Level

- Extended Transaction Costs

Changing To or From FIFO Costing

Inventory Transactions: Cost Selection and Updates

- Basic Hierarchy

- Guidelines for FIFO Costing Process

- Purchase Order Number in Inventory Transactions

- Inventory Transactions and FIFO Updates

- Weighted Average FIFO Cost

If You Need to Change the Cost of a FIFO Layer

Inquiry and Reporting

Screen Differences Related to FIFO Costing

Item/Warehouse Level

The system tracks FIFO cost layers at the item/warehouse level for non-SKU’ed items, and the item/SKU/warehouse level for SKU’ed items. Regardless of the location where you store or pick stock, the system determines the FIFO stock layer to use for each transaction by the same hierarchy based on the age of the FIFO layer.

Example: You receive 10 units of an item at $10.00 each, and store them in location BULK. Subsequently, you receive 20 units of the item at $12.00 each, and store them in location PRIMARY. When you next bill an order for two units of the item, the system selects the first FIFO cost layer of 10 units at $10.00, even though you picked the inventory out of location PRIMARY.

Transfers within a warehouse: Because you track FIFO cost at the warehouse level, transfers of stock within a warehouse will not cause any change to the FIFO stock layers; however, a transfer from one warehouse to another will decrease the FIFO layer for the “from” warehouse and create a new FIFO layer for the “to” warehouse.

Example: When you transfer eight units of an item from location BULK to location PRIMARY in your main warehouse, there is no change to the FIFO cost layers for this item. Subsequently, you transfer five units from location PRIMARY in your main warehouse to a location in a secondary warehouse. In this case, the system reduces the FIFO cost layer in the main warehouse from eight units to three, and creates a new FIFO cost layer in the secondary warehouse for five units.

Extended Transaction Costs

When you use average or standard costing, the cost of a transaction is tracked at the per-unit level, since each unit will always have the same cost. When you use FIFO costing, however, it is possible for a transaction to derive its cost from multiple FIFO layers. For this reason, transaction costs are represented as extended amounts when you use FIFO costing.

Example: You bill 10 units of an item. The first available FIFO cost layer has an on-hand quantity of five units at a cost of $10.00 each. The next available FIFO layer has 20 units at $11.00 each. The system uses an extended cost of $105.00 for the billing transaction (5 @ $10.00, or $50.00, and 5 @ $11.00, or $55.00).

The system uses related detail tables to track the different costs that make up the extended cost for each transaction. See Inventory Transactions: Cost Selection and Updates.

Changing To or From FIFO Costing

Difference from other system control values: To change most system control values, you can select Change for the value through Work with System Values/Features to advance to the Change System Control Value screen. However, you cannot change the Costing Method (A25) system control value this way if your change involves moving to or from FIFO costing. Instead, you must use the Work with FIFO Cost Conversion menu option to change your costing method.

Note: If you are first setting up a new company, you can change to FIFO costing without running the conversion program; however, if there has been any inventory activity in the new company, you must run the conversion.

Why is conversion necessary? You need to run the conversion program when you change to FIFO from another costing method because you must build the records the system needs for FIFO cost tracking. These records include the FIFO cost layers, and inventory and invoice cost detail. Also, the system changes transaction cost tracking from a per-unit to an extended amount, as described under Extended Transaction Costs.

Similarly, if you transfer from FIFO to another costing method, the system deletes the FIFO cost layers and related detail records and converts back to unit costs appropriately.

Note: You can change between AVERAGE and STANDARD costing using the Change System Control Value screen. It is not necessary to run a conversion.

See Working with FIFO Cost Conversion (WFCV) for more information on converting to or from FIFO costing.

Inventory Transactions: Cost Selection and Updates

Purpose: The key to understanding FIFO costing is to review the logic the system uses when it selects a cost for each inventory transaction. The updates the system makes are also important to understanding the process.

Basic Hierarchy

The system uses the following hierarchy to determine the cost to use for inventory transactions:

1. Use the cost from the oldest open FIFO cost layer for the item/SKU/warehouse.

2. If there are no open FIFO cost layers for the item/SKU/warehouse, use the cost from the most recently closed FIFO cost layer.

3. If there are no FIFO cost layers, open or closed, use the Last purchase cost from the SKU table.

The system uses a slightly different hierarchy for an adjustment if you specify a purchase order number for the transaction. See Purchase Order Number in Inventory Transactions.

Additionally, transactions that represent a reversal of a previous transaction, such as a customer return, do not generally follow the standard hierarchy. See Inventory Transactions and FIFO Updates.

Guidelines for FIFO Costing Process

When the system processes an interactive or automatic inventory transaction, it performs the following steps:

• Selects one or more FIFO layers using the above hierarchy, and uses the appropriate cost(s) for all table updates described below.

• Updates the FIFO layer(s) appropriately. Decreases in inventory, such as issues, lower the on-hand quantity for the FIFO layer; when the on-hand quantity reaches zero, the FIFO layer’s status changes to closed (X). Increases in inventory, such as purchase order receipts and customer returns, create new FIFO layers.

• If there is a discrepancy between the on-hand quantities for the FIFO layers and the item/warehouse and/or item/location, the system creates an inventory transaction error. You can review these errors through Working with Inventory Transaction Errors (WITE).

Purchase Order Number in Inventory Transactions

You can enter a purchase order number for an inventory transaction in Work with Inventory Transactions (batch or immediate) for adjustment transactions only. When you specify a purchase order number, the system uses the following costing hierarchy:

1. Use the cost from the oldest open FIFO cost layer for item/SKU/warehouse associated with this purchase order.

2. If there are no open FIFO cost layers for the item/SKU/warehouse that are associated with this purchase order number, use the cost from the most recently closed FIFO cost layer that is associated with this purchase order number.

3. If there are no FIFO cost layers, open or closed, use the Last purchase cost from the SKU table.

Inventory Transactions and FIFO Updates

Transaction

Effect on Inventory

Updates

Additional Comments

R = receipt

increase

Creates a FIFO cost layer using the cost and quantity of the purchase order line and the current date.

 

A = adjustment

increase/

decrease

Increase: Creates a new FIFO layer using the current date, but uses the cost from the first qualifying FIFO layer in the normal hierarchy for all units in the adjustment. For example, if you enter an adjustment of 10 units, the system uses the cost from the first FIFO layer in the standard hierarchy for all 10, even if that first FIFO layer includes only 5 units.

Decrease: Decreases the first FIFO layer in the hierarchy by the transaction quantity, closing it and advancing to the next FIFO layer if the quantity of the first is exhausted, and so on.

You can specify a purchase order number for an adjustment transaction if you have the proper authority. If the transaction represents a decrease, the system does not allow you to enter a quantity greater than the total on-hand for all FIFO layers for the item that are associated with that purchase order number. See Purchase Order Number in Inventory Transactions.

 

 

Note: User-defined transaction codes follow the same process as adjustments.

Note: You cannot specify a purchase order number for a user-defined transaction code.

C = customer return

increase

Creates one or more new FIFO layers.

If the order was originally entered before you switched to FIFO costing, the system uses the standard hierarchy to derive the cost for the return, and creates a new FIFO layer with the same date as the FIFO layer from which it derived the price. The system creates as many new FIFO layers as it used to derive the shipment cost for the total return quantity.

You can review the FIFO layers selected for the return transaction in standard order inquiry at the Invoice Cost Detail Screen.

 

 

Example: You enter a return for 8 units, and there are currently two FIFO layers for 5 units each, dated 1/1 and 2/15. The system creates two new FIFO layers, one for 5 units and a date of 1/1, and one for 3 units and a date of 2/15.

If the order was originally entered while FIFO costing was in effect, the system uses the cost(s) from the FIFO layers it originally used to derive cost when the order was billed, regardless of where the layers would fall in the standard hierarchy. The new FIFO layer(s) have the date of the original FIFO layer(s) from billing.

 

 

 

Example: You ship and bill an order for 5 units on 11/06. You process a return for those 5 units on 12/06. The system creates a new FIFO layer for 5 units, and a FIFO create date of 11/06.

 

E = express bill

decrease

An express bill works the same way as an issue transaction (I = issue).

 

I = issue

decrease

Decreases the on-hand quantity of the first FIFO layer in the hierarchy by the number of units shipped, and decreases the total on-hand cost extension of the FIFO layer by the transaction cost extension. If the total quantity of the issue transaction is greater than that of the first FIFO layer in the standard hierarchy, the transaction exhausts the quantity of the layer, closes it, and selects the next eligible layer until the entire issue quantity is satisfied.

You can review the FIFO layers selected for the issue transaction in standard order inquiry at the Invoice Cost Detail Screen.

M = make up finished good

decrease (component items)

increase (main set item)

Decreases the on-hand quantity and extended cost for each component item's FIFO layers, using the standard hierarchy, and creates a new FIFO layer for the finished good item. The system uses the FIFO create date from the oldest component item as the FIFO create date for the new finished good.

 

T = transfer

increase/

decrease

"From" warehouse: Reduces the on-hand quantity and on-hand cost extension of the existing FIFO layers, closing a layer if the entire on-hand quantity is exhausted.

"To" warehouse: Creates a new FIFO layer for each layer selected from the "from" warehouse, using the cost and date of the originating layer.

Transfers affect FIFO cost layers only if they are between warehouses; transfers within the same warehouse have no impact on FIFO layers.

See Item/Warehouse Level.

* = FIFO layer cost change

no change

The cost change affects the unit and extended cost of the selected FIFO layer.

See If You Need to Change the Cost of a FIFO Layer.

User-defined transaction codes: Any additional transaction codes you have set up in your company will create a new FIFO layer if they increase inventory, or decrease the totals for a FIFO layer if they decrease inventory. See the A (adjustment) transaction described above for more information.

Excluded transaction codes: The system does not allow you to enter O (on-hand) and G (item-to-item transfer) transactions when you use FIFO costing.

Weighted Average FIFO Cost

Purpose: The system updates the weighted average FIFO cost for inquiry and reporting purposes (for example, the FIFO Activity Report lists this cost). The weighted average FIFO cost is stored in the FIFO cost field in the SKU table.

This cost is calculated by dividing the total extended cost of all FIFO layers for an item or SKU by the item/SKU’s total on-hand quantity. Note that this cost includes all warehouses where you keep the item. If this calculation would produce a weighted average FIFO cost of zero, the system uses the SKU’s Last purchase cost.

If You Need to Change the Cost of a FIFO Layer

Purpose: You can change the cost associated with a FIFO layer if it was created incorrectly. To correct a FIFO layer’s cost, select Change for the layer at the Work with FIFO Cost Layers Screen. When you change the cost, the system updates the unit and extended cost for the FIFO layers.

* inventory transaction code: Before you can change the cost of a FIFO layer, you must first create a “*” inventory transaction code. The system uses this code for changes in inventory valuation which do not affect the on-hand quantity of an item. You can review any * inventory transaction through Display Inventory Transaction History (DITH), or you can review the * transactions for a particular FIFO layer through Using FIFO Cost Layer Inquiry (WFCF).

Inquiry and Reporting

Purpose: The following menu options, screens and reports are available for you to review the FIFO cost layers that make up your inventory and transactions.

Using FIFO Cost Layer Inquiry (WFCF): Use this menu option to review the FIFO layers in your company and their history, or to change the cost of a FIFO layer.

Invoice Cost Detail Screen: Use this screen to review the FIFO layers that make up the cost of an item on an invoice or credit invoice. You can display this screen by selecting FIFO cost history for an item at the Display Invoice Detail screen in standard order inquiry (fast path = OIOM).

Screen Differences Related to FIFO Costing

Purpose: Screens that display the cost of an item, such as the Inventory Transaction History Screen (2 of 2) in Display Inventory Transaction History (fast path = DITH), display the extended cost rather than the unit cost if you use FIFO costing.

Cost override field: The Cost override field on the Work with Order Line screen in order entry and order maintenance is not enterable when you are using FIFO costing. This restriction is in place to maintain the integrity of the FIFO costing method and to keep inventory information in sync with the FIFO layers for your company.

WH14_01 OMSCS 19.0 December 2019 OHC