Best practices for using FIFO and LIFO cost rules
Given the fluctuation of prices for Parts at any given time, forecasting the cost of a Part on a Work Order could be a challenge. Using the Average Cost rule can account for these fluctuations with relative ease and accuracy. We recommend for most customers use the Average cost rule to address this challenge.
Maintenance Connection also supports FIFO (First In, First Out) and LIFO (Last In, Last Out) cost rules in inventory management. These cost rules sort the use or consumption of Parts on Work Orders based on the order in which they were purchased. While other cost rules forecast the cost of a Part on a Work Order based on previous use or a set value, FIFO and LIFO provide a "1 to 1" correlation between the actual purchase price of the Part and the cost recorded on the Work Order.
This kind of accounting accuracy can be advantageous to organizations with large inventories. However, it is only a determined and meticulous organization that should attempt to implement either FIFO or LIFO cost rules for their inventory.
For the FIFO and LIFO cost rules to work properly in Maintenance Connection, there are several parameters that administrators must strictly adhere to. Failure to follow these guidelines will result in inaccurate FIFO and LIFO cost tracking, and require potentially time consuming adjustments.
This article can benefit administrators in two ways: first, as a way to ensure FIFO/LIFO cost rules work as intended, and second, as a troubleshooting guide to diagnose issues encountered in using FIFO/LIFO. Further, this article provides step-by-step instructions on how to properly adjust inventory Parts whose FIFO/LIFO tracking has been thrown off.
Maintenance Connection tracks FIFO and LIFO costs using the Purchase Order and Work Order modules. On Hand amounts of FIFO/LIFO Parts should only increase as they are included in Purchase Orders, and they should only decrease after they have been used to fulfill Work Orders. This fundamental concept is the basis on which all the parameters given in this article depend.
Steps for successful FIFO/LIFO management
1. Commit to manage parts strictly through the Purchase Order and Work Order modules.
Increase counts using PO's. Decrease counts using WO's.
In order to increase inventory counts for FIFO/LIFO Parts, they mustbe received through Purchase Orders. Receiving the Parts inserts them into Stock Room(s) and Bin(s) at the cost that was specified on the Purchase Order.
In order to decrease inventory counts for FIFO/LIFO Parts, they must be expended as Actual Costs on Work Orders. Using the Parts as Actual Costsimmediatelyremoves them from the Stock Room, and records the Cost on the Work Order as it was specified on the Purchase Order line item for that Part.
Do not delete purchase orders or work orders.
If any FIFO/LIFO Parts have been added as Actual Costs on Work Orders or have been received on Purchase Orders, these Work Order and Purchase Order records should never be deleted. This causes inaccurate On Hand quantities and could potentially cause inaccurate costs to propagate to Work Orders.
For more specific instructions on creating a Purchase Order, please view the How to Order and Receive Parts article. For more information on adding Part costs to Work Orders, see the Work Order Basics article, under the "How to Update Costs on a Work Order" header.
2. Configure all parts in all stock rooms.
The Details tab for each Part must have set the Cost Rule field specified as FIFO or LIFO.
Each Stock Room where the Parts will be stored must also have the Cost Rule field specified as FIFO or LIFO, matching the Cost Rule field on the Details tab.
Any Part that has FIFO or LIFO specified for one of these fields, but not for the other, will cause a cost of $0.00 to propagate for the Part on a Work Order.
3. Use purchase orders for purchasing and receiving.
Purchase all parts through the MC Purchase Orders module.
FIFO/LIFO Parts can only increase their On Hand quantity in a Stock Room after they have been received on Purchase Orders. Increasing the On Hand amount by any other means, whether directly or by purchasing a Part outside of the MC Purchase Order module, will yield inaccurate On Hand quantities and inaccurate FIFO/LIFO cost tracking.
Create separate purchase order line items for each price point.
FIFO/LIFO Purchase Orders can be used to associate different costs to different groups of the same Parts. Each Purchase Order line item will associate a quantity and cost to the Part. To receive parts at different costs, each cost will require an individual line item with the quantity that was purchased at that cost. When the Part is received, each Line Item will be placed in a single Stock Room (and Bin if applicable).
Make all final price adjustments before receiving parts.
FIFO/LIFO Purchase Orders should not be received until final price adjustments are made to the line items. These adjustments could include shipping, tax, or any other costs for the Parts. Costs are associated with FIFO/LIFO Parts immediately upon receipt, so adjusting line item prices after receipt will not propagate to the Part in the Stock Room.
The packing slip or invoice cannot be used to adjust the line item price
4. Use work orders for inventory reduction.
Only add parts as actual costs after the part is actually used.
Adding a FIFO/LIFO Part as Actual Cost on a Work Order after it is actually used ensures that the proper quantity is applied to the Work Order and the proper level is available in the Stock Room. This safeguards you from removing Parts from the Stock Room out of their proper order, and thus resulting in a FIFO/LIFO adjustment.
Keep in mind that you can can associate FIFO/LIFO Parts to a Work Order as Estimate Costs, and then apply them as Actual Costs once they are used. This allows the system to reserve Parts in their proper order, and ensures proper tracking of costs.
Do not remove parts from the Actual Costs tab.
Once a FIFO/LIFO Part is set as an Actual Cost, it immediately adjusts the On Hand quantity in the Stock Room. If you remove this Actual Cost from the Work Order, the true On Hand quantity will be different from the value shown in the Stock Room. This can cause confusion with Part quantities and costs on Work Orders. Similarly, do not adjust the quantity of FIFO/LIFO Parts that have been set as Actual Costs, as this will also cause a mismatch in the Stock Room.
As mentioned above, the way to completely avoid this confusion is to not add FIFO/LIFO Parts as Actual Costs until they are actually used to fulfill the Work Order.
5. Adjust, transfer, and issue parts with caution.
Do not transfer parts via the Transfer Inventory tool.
Using the Transfer Inventory tool on FIFO/LIFO Parts disassociates the cost and receive date that is established via the original Purchase Order process. This will cause inaccurate costs to propagate for the Part on a Work Order.
Do not make any direct quantity adjustments in a stock room.
Adjusting the On Hand quantity of a FIFO/LIFO Part manually in the Stock Room will cause quantity and cost issues. ALL ADJUSTMENTS (i.e., increasing and decreasing On Hand amounts for FIFO/LIFO Parts) must be made by adding Actual Costs on aWork Order and receiving Parts on a Purchase Order.
Never allow negative on hand balances.
Never issue FIFO/LIFO Parts on a Work Order when the On Hand quantity for that Part is less than or equal to 0. Doing this will keep the system from being able to track the FIFO/LIFO Part costs accurately.
Troubleshooting
Inaccurate on hand quantities and part costs
Should your FIFO/LIFO inventory ever display inaccurate On Hand quantities, record inaccurate costs for Parts, issue Parts for the wrong order, etc., it will be necessary to manually adjust On Hand counts without recording actual expenditures in the system. The only way to do this within current FIFO/LIFO functionality is through "dummy" Purchase Orders (to increase On Hand quantity) and Actual Costs on "dummy" Work Orders (to decrease On Hand quantity). At times, it may be necessary to reset the On Hand quantity in a Stock Room, first by zeroing it out directly in the Stock Room, and then by re-receiving the FIFO/LIFO Parts on a "dummy" Purchase Order to match the current, accurate On Hand quantity and costs.
To reset the On Hand quantity:
-
In the Inventory module, access the Stock Room with the affected FIFO/LIFO Parts. Click on the Stock Room record.
-
In the dialog that appears, set the On Hand quantity to 0, and then clickApply.
-
Savethe Part record.
-
Next, navigate to the Purchase Orders module, and create a new Purchase Order. For more specific instructions on creating a Purchase Order, please view the How to Order and Receive Parts article.
-
In order to avoid this Purchase Order recording actual expenditures on reports, create a "dummy" Vendor from which to receive the FIFO/LIFO Parts. We recommend using something like "Inventory Adjustment Vendor" for the Vendor Name in order to designate it as a "dummy" Vendor for inventory adjustments. You can exclude this Vendor from the Criteria for reports, so that adjustment Purchase Orders do not show as actual expenditures.
For more specific instructions on creating a Vendor relationship to a Part, view the Inventory Basics article, under the "How to Add a Vendor Association" header.
-
With the "dummy" Vendor in place, input the quantity and costs for the LIFO/FIFO Parts on Line Itemstab of the Purchase Order, listing the line items in the order in which the FIFO/LIFO Parts were originally received. Remember, if you need to receive the same Parts at different prices, you will need to create a separate line item for the Parts purchased at a different price.
It may be helpful to open in a separate window the Purchase Order record(s) through which the FIFO/LIFO Parts were originally received. This way, you can create the line items to exactly match the original Purchase Order(s).
-
Saveand Issuethe Purchase Order.
-
Now, navigate to theReceive tab, and click theAdd...button to re-receive your FIFO/LIFO Parts.
-
If the line items on the Purchase Order are listed in the order in which they were originally received, click theReceive All button at the bottom of the dialog. If the line items are listed in a different order, click the ReceiveAll button for the individual line items in the order in which they were originally received.
-
ClickApplyto complete the receipt.
-
Now, if we navigate back to the Stock Room, the proper On Hand quantity will display. Each of the Parts will be associated with accurate costs, and they will be ready to issue onto Work Orders in their proper FIFO or LIFO order.
To adjust the On Hand quantity upward:
The instructions to increase the On Hand quantity are given in the previous section for resetting the On Hand quantity. As soon as the FIFO/LIFO Part is received on the "dummy" Purchase Order, the On Hand quantity in the Stock Room will increment.
To adjust the On Hand quantity downward:
-
Navigate to the Work Orders module, and create a new Work Order.
-
To distinguish this as a unique Work Order for adjusting inventory, we recommend populating the Reason field with an Inventory Adjustment label, along with the Part name or ID.
-
In theType field, let's create a new Work Order type so that reports will not show this Work Order as an actual expenditure. To do this, select the dropdown arrow for theTypefield.
-
Create a new type by clicking theNew button, and input "INVADJ" as the code, and "Inventory Adjustment" as the description.
-
Ensure the INVADJ code is set as the Work Order type. When you run Work Order reports in the future, be sure to exclude Work Order types of INVADJ from your report criteria. This will ensure that this Work Order is not reported as an actual expenditure.
-
Next, select theCosts>Actualssub-tab, and click the Add... button for the Parts cost.
-
Add the FIFO/LIFO Part as an Actual Cost, andSave the Work Order. For this FIFO example, the Part cost will reflect the first Part added to the Stock Room via a Purchase Order (see the example above for resetting the On Hand quantity).
-
Now, if we navigate to the Stock Room for this Part, the On Hand quantity will have properly decreased:
Parts on work orders display a charge of $0.00
SQL for updating charge on WO actual part costs
If you've worked with FIFO/LIFO cost rules in Maintenance Connection before, you may have come across certain Parts on Work Orders displaying a Charge of $0.00. With the current FIFO/LIFO functionality, this is likely due to the fact that the FIFO/LIFO Parts added to the Work Order span more than one Purchase Order. For example: three of the same FIFO/LIFO Part have been added as an Actual Cost to a Work Order, but two of these Parts were received on one Purchase Order, and the third was received on another. This results in two separate Actual Cost records being added to the Work Order, one for each Purchase Order on which the Parts were received. Only one of these Actual Cost records will show the proper value in the Charge field, while the other will reflect a Charge of $0.00.
Should you encounter this issue, the following SQL script is provided to adjust the Issue Unit Percentage Charge that carries over from the Stock Room. Making this adjustment will result in the proper Charge displaying in the Work Order record for all the FIFO/LIFO Parts:
UPDATE WOPart with (RowLock
SET WOPart.IssueUnitChargePercentage = Partlocation.IssueUnitChargePercentage
FROM WOPart
INNER JOIN PartLocation on PartLocation.PartPK = WOPart.PartPK
and WOPart.LocationPK = PartLocation.LocationPK
WHERE WOPart.TotalCharge = 0
To run this script, On Premise customers can access their SQL Administration page, copy/paste the SQL script given above, and execute the script. Cloud Hosted customers should submit a request to our Support team for assistance in running the script.
One the script has executed, the Work Order will show the proper Charge, and the proper ordering and costs associated with the FIFO/LIFO Parts will remain intact.
As with all best practice level training, using FIFO and LIFO functionality in Maintenance Connection may require a more thorough understanding of the system. For more learning opportunities, please consider subscribing to our on-demand, premium training offered through Accruent Academy. You can also reach out to our Customer Success team to request personalized training in using Maintenance Connection.