How Readysell FIFO first in first out costing works in your business

Overview

There is no way to make the discussion on how we cost transactions simple or easy to understand. But I will do my best. All the ways of costing are difficult or stuff up some of the time. We had to pick one, so we picked the one that works best most of the time. We have to live with the fact that our chosen costing method is not the best choice for some transactions.

Readysell uses First in First Out or FIFO costing (FIFO) costing. Based on how our customers work, FIFO costing is very bad for some transactions like stock adjustments. FIFO costing is way better than the alternative costing methods like average cost for doing costing for things like sales that happen very day. We could make stock adjustments work better. But to do so we would have to handle sales a lot worse. On balance we picked the best option available.

There are lots of ways to do costing. All have problems in some cases. FIFO costing works best for the things our customers do, most of the time. None of the options work well all the time.

Nobody has time to individually specify how cost is calculated one transaction at a time. As a result ERP (Accounting) systems use a costing rule to work out costs. All of those rules are not ideal for some transactions. But you can't use a different rule on every transaction, as you would end up totally confused.

Readysell uses the following rules to cost stock movements. Know as First in First Out or FIFO costing. In simple terms. Readysell uses:

  • The cost of previous receipts to cost anything that REDUCES stock on hand. Examples being sales or stock adjustments that reduce stock.
  • The cost on the product supplier to cost almost any INCREASES stock on hand. Examples being sale credits or stock adjustments that increase stock.
  • Purchase invoices are a special case of costing INCREASES. Readysell uses the cost on the supplier invoice to value all INCREASES of stock on hand caused by purchase receipts/purchase invoices.


Readysell uses the following rules to cost stock movements. Know as First in First Out or FIFO costing. In simple terms. Readysell uses:

  • The cost of previous receipts to cost anything that REDUCES stock on hand. Examples being sales or stock adjustments that reduce stock.
  • The cost on the product supplier to cost almost any INCREASES stock on hand. Examples being sale credits or stock adjustments that increase stock.
  • Purchase invoices are a special case of costing INCREASES. Readysell uses the cost on the supplier invoice to value all INCREASES of stock on hand caused by purchase receipts/purchase invoices.


Why do we work this way?

Because FIFO is a real pain some of the time, but works great most of the time. It works out overall to be better for our customers than the alternatives:

  • FIFO is very good for most of the transactions dealers do. Other costing systems like Average cost are way better for stock adjustments, but way worse for day to day transactions like sales. We have to decide which is better, so picked the one that works best in most cases.
  • Dealers often sell products with serial numbers. Our understanding is legally we are required to use FIFO costing for product movements that involve serial numbers
  • Given that we are forced to use FIFO for serial numbers, it makes sense to have only one way of costing stock. So FIFO is used for all products
  • FIFO costing puts a trace between every transaction that adds stock to your system and every transaction that removes stock from your system. This complete audit trail is useful if you ever need to know precisely why a particular cost was used on any transaction
  • Accountants agree that none of the may ways of costing stock are ideal for every transaction. Average cost is often used in Australia instead of FIFO. But average cost has some weaknesses as well. For example you can't prove how any particular cost was calculated.So if you get a cost error, thats it, you can't check why you got a particular cost on a particular transaction. You can't dig into any stock variances using logs in the system. There are no links between sources and uses of stock. Average cost is not allowed for serial number products. Average cost is better than FIFO in some cases. For example when doing stock adjustments, it will use the same cost for an adjustment in and an adjustment out.
  • If we made exceptions for reversals etc, we would  break FIFO:

    • For many reasons including the original transaction may no longer be available to be allocated to the reversal. As it may have been allocated and consumed by other posted transactions such as sales. This is of critical importance. There are a lot of stock allocation transactions that happen in background to support FIFO. We allocate every stock movement. The net of movements that build about around transactions is very complex, we could not reverse the whole network of related transactions out and relink them again in order to free up the original transaction. The complexity and risk of any such set of transaction would be impractical.
    • Result in stock on hand going out of balance. If we forced the reversal to be the same as the original. Given the original was already used by other transactions. The net change to stock on hand would not add up.
    • Allocating the original against the current transaction may be a last in first out (LIFO) costing system.  The reverse button can be thought of as a convenient way of doing a stock credit. What it actually does is make a backwards purchase receipt. The backward receipt produced by the reverse purchase receipt button MUST be a CONSUMER of stock. That is anything that uses stock on hand must consume stock costs created by other transactions. As a result, it has to get the first source of cost it can, as we use FIFO. The first source of stock on hand available by date may not be the original transaction.
    • We would otherwise be at risk of not using a recognised costing system. We stick to the FIFO standard. Otherwise we would have to say we don't use a recognised costing standard, which we are required to do. We would be using the Readysell costing system. We can't just make up our own costing method, we have to stick to a standard.
    • FIFO costing has to work the same for all transactions. To do this it works as a "black box". We feed the transaction into it and it decides what to do each time. This increases consistency and removes risks of errors. But results in reversals of purchase receipts being handled like any other transaction that is using up stock.

Explanation


FIFO is an inventory costing method which assumes that the first items placed in inventory are the first sold. Readysell employs this costing method as it has a number of advantages:

  • Costs and stock holding are more accurately than the "last cost" method, as the value of existing stock is not affected by cost changes
  • Unlike the "average cost" method, costs can be traced back their original transaction and proven

There is a simple rule to determining how a product movement affects FIFO:

  • Positive product movements (those which add stock on hand) are a source of FIFO costing. There are two ways in which the system can cost a positive stock movement:
    • Cases where there is a reliable external source for the cost. For example a purchase invoice has a cost that can be validated against suppliers invoice. Readysell uses that external cost where possible. The result is the cost for purchase receipts that have been invoiced comes from the supplier invoice
    • Cases where there is no external source for the cost. For example stock adjustment, sale shipment credits and stocktake movements that increase stock on hand. In fact almost all increase in stock other than purchase receipts. In this case Readysell uses the costprice1 from the primary product supplier for the product
    • Tip. If you are doing a stock adjustment that increases stock and want to control the cost used. Just change the costprice1 on the product supplier, do the stock adjusment then turn the costprice1 back to it's origional value
  • Negative product movements (those which subtract stock on hand) are allocated FIFO cost from positive product movements

Example

Imagine you have two purchase receipts for product ABC. The first receipt was for 10 units at $5 each, the second receipt was for 10 units at $15 each. The costs allocated to the sales for these products would be as follows: 

Sale #Units SoldCostSource of Cost
18$5 eachPurchase Receipt # 1
24$10 each2 x Purchase Receipt # 1
2 x Purchase Receipt # 2 
34$15 eachPurchase Receipt # 2

Frequently Asked Questions

Why is the cost on my sale order different to the cost on the invoice that was created from that order?

The cost on the sale order should not necessarily carry through to the invoice:

  • The cost on the sale order is based on current cost at the time the order was placed:
    •  As at the time the order is placed, we don't know what the FIFO cost will be. 
    • FIFO cost will vary depending on exactly which purchase receipts have not been allocated at the time the invoice is posted.
  • The cost on the invoice is based on FIFO cost at the time the invoice was posted:
    •  When the invoice is posted, we can pick which receipts to link to the invoice lines. So we know the FIFO cost for the first time when the invoice is posted.

Example:

Product A, nil in stock.
Customer Orders 1 x Product A = 1 x Product A on back order.
Product A primary supplier cost = $10.
Prodcut A sell price on Sales Order = $20.
Dollar margin on this salline = $10.

Purchase Receipt completed for 1x Product A at $5 (not $10).
Stock in x 1 at $5.00
SALLINE margin based on FIFO is now $15 (not $10).

Why one of the strengths of FIFO costing is it lets me I trace where my costs come from?

Every transaction line that incurs a cost will have a "product movement" attached. You can see this on a tab when the transaction line is selected. If you click the "Show Product Movement Allocation" button on this tab, you will be shown the transaction lines from which your cost was calculated.

Where do my costs come from if the stock hasn't been receipted yet?

If you have "Allow Automatic Adjustments" turned on in your system (see Sites), your system will automatically create an adjustment for any stock that is not available in your system. This adjustment will be created using the last cost for each receipted product. Once you correctly receipt the stock in your system, the automatic adjustment will be removed and any affected costs will be recalculated at the actual receipted costs.

If you do not have "Allow Automatic Adjustments" turned on, you will not be able to finalise a transaction if you do not have the sufficient stock. You will need to receipt the stock before you can enter a sale, adjustment, transfer, or other stock transaction for that stock.

Why has my cost changed?

There are two primary reasons costs on a transaction change:

  1. An automatic adjustment has been replaced with the actual transaction
  2. The stock had been allocated to a receipt that was not invoiced yet, and the invoice was created at a different cost

Why is there a discrepancy between the cost on my purchase receipt and purchase invoice?

In cases where you have negative quantities on a purchase receipt (such as a reversal or credit), the price on the receipt will be allocated from FIFO. This is because a negative purchase receipt is a positive product movement (it adds to your stock on hand). The cost on your purchase invoice will not be affected. If there is a variance between your purchase receipt cost and your purchase invoice cost, this will be placed into a variance account.


Why is the cost on the reversal of a purchase receipt different to the cost on the original purchase receipt?

Original purchase receipt is a source of stock on hand, it is costed at the cost of the purchase invoice

The reversal of a purchase receipt USES UP stock. So for costing purposes it has to link to the oldest stock, not necessarily the stock and costs of the purchase receipt being reversed.

Like a sale, reversing a purchase receipt reduces the stock on hand. First in first out (FIFO) costing requires that the cost on the reversal uses the first (oldest) available stock on hand. That stock will probably have a different cost to the cost of the receipt being reversed. We can't make the cost be the same. As doing so would break the FIFO rules, may cause the general ledger to go out of balance with the stock on hand and cause other issues. FIFO costing works great for most uses but this is a situation where it does not suit as well as we would like.We have to use FIFO costing everywhere or use a different costing system everywhere. On balance FIFO gives us such good results generally, so we use FIFO costing and accept that it is not perfect for every situation.   


Why is the cost on the my Negative stock adjustment different after the stock adjustment is postedt?

All transactions that involve products start out as costed using the current cost price 1 from the products primary product supplier. This is the same on sale orders, purchase orders, stock adjustments etc. When you post transactions that change stock on hand, FIFO costing applies to all lines that reduce or use up stock on hand. As a result:

  • Stock adjustments that increase stock on hand do not change in value when they are posted. Because FIFO costing sees them as a source of stock
  • Stock adjustments that reduce stock on hand are recosted by FIFO when they are posted. The cost on the stock adjustment line is changed to be the same as oldest stock movement currently on file that has not already been used up by an earlier transaction.
  • The stock adjustment that reduces stock USES UP stock on hand. So for costing purposes it has to link to the oldest stock, not necessarily the stock and costs of the stock adjustmner being reversed.
  • Like a sale, a negative stock adjustment reduces the stock on hand. First in first out (FIFO) costing requires that the cost on the reversal uses the first (oldest) available stock on hand. That stock will probably have a different cost to the cost of the stock adjustment being reversed. We can't make the cost be the same. As doing so would break the FIFO rules, may cause the general ledger to go out of balance with the stock on hand and cause other issues. FIFO costing works great for most uses but this is a situation where it does not suit as well as we would like.We have to use FIFO costing everywhere or use a different costing system everywhere. On balance FIFO gives us such good results generally, so we use FIFO costing and accept that it is not perfect for every situation.   


Why is the cost on my transaction different after I post it?

As noted above, all transactions that involve products start out as costed using the current cost price 1 from the products primary product supplier. This is the same on sale orders, purchase orders, stock adjustments etc. When you post transactions that change stock on hand, FIFO costing applies to all lines that reduce or use up stock on hand. As a result:

  • When you enter a product transaction, the cost is always the standard cost from the primary product supplier before you post the transaction
  • After you post the transaction:
  • if the transaction is increasing stock on hand the cost will not change
  • If the transaction is using up stock, the cost will change due to FIFO allocating costs from earlier stock on hand increases to the transaction line that is reducing stock


Does FIFO costing apply to allocated purchases

Yes, FIFO costing applies equally to sales that are linked to allocated purchases. An allocated purchase is a way of controlling stock allocation. It has no effect on FIFO costing.


Why don't we use a different costing system

All the legally allowed costing systems have strengths and weaknesses. This results from the fact that they are all estimates. You never really know which individual pen is really on a sale. So you have to have some standard way of estimating cost. FIFO is the costing system with the most strengths relevant to Readysell's customers. Also you have to use FIFO for serial number stock, so why not use it for the lot instead of having a confusing mix of costing systems.

The strengths and weaknesses of costing systems is really a topic for an accounting text. But we hope the notes above give you a good start.


Why doesnt reversing a transaction fix the GP on my sales report

There a two things to take into consideration:

  • Reversing a transaction does not delete the original transaction. The product movement (source transaction) is still there and will still reflect on all reports
  • Reversals for sales are as noted above, are costed at current cost not at the cost of the source transaction being reversed
  • If you create a reversal of a transaction in error, that reversal will always be on file and cannot be removed. You can only do transactions to balance out the reversal.

    As a result of the above, reversing a sale that has an incorrect gp wont necessarily cause the sales report to show the Gp you expect.

A purchase invoice had the wrong price. So the supplier gave us a financial credit. Why can't we make this credit apply to the cost of the product?

This issue can be handled in one of two ways, both approaches have strengths and weaknesses:

  • Reverse the purchase invoice (and/or the purchase receipt. You only HAVE to reverse the purchase invoice). Then reenter the purchase invoice and adjust the value of the purchase invoice to reflect the cost price you SHOULD have paid. Put a note in the supplier reference saying this invoice includes the effect of the financial adjustment:
    • Strength: the price on the product received will be correct
    • Weakness: the supplier open items will show only one open item for the purchase invoice. There will be no seperate entry for the financial adjustment
    • Weakness: you can only do this if the financial period of the purchase receipt has not yet closed.
  • Enter the financial credit as a supplier credit transaction and dissect the general ledger effect to supplier rebates received
    • Strength: two supplier open items will appear on the supplier account. One for the origional invoice and one for the financial credit
    • Weakness: the cost on the product will permanently stay as per the incorrect cost specified on the origional purchase invoice

A contract price setup with markup from cost of zero can result in a sale with negative margin. Why can the sell be less than the cost when the contract says to sell at cost?

  • The normal approach is to use markup from cost. This creates a sell price that is based on the current replacement cost of the product. But the cost price is still based on FIFO cost for all sales. Given the cost basis used to calculate the sell price is different to the cost basis used to calculate the actual cost of the sale. The sell price from standard cost can be less than the fifo cost from past receipts. See the first line in the example below. This shows a contract price from cost price 1 on the top line. The first line in this contract will not change the sell price when sale shipments are posted. But the FIFO costing will change the cost on the line. So the cost can end up more than the sell price. But sell price stays the same.
 Show me..

  • To get around the problem above, you can make a contract be based on markup from FIFO cost. But if you do this. When the sale shipment is posted. The FIFO cost will be calculated and the SELL PRICE WILL CHANGE. Resulting in the sell changing to be different to that sell price that showed on the sale order. We normally just use this for staff. See the second line in the example below. This shows a contract price from FIFO on the second line. This contract price will never be less than cost. But since FIFO cost changes the cost of the shipment when the shipment is posted, the sell price of any shipments will probably change when the shipment is posted. The sales will not sell for less than cost, but the sell price will change when the shipment is posted.
 Show me..

Costing of stock moved between two product codes with different product units

  • Stock adjust out all the stock that is going to be changed to the other product code from the existing product. FIFO costing will cost the stock adjustment as it is consuming stock on hand
  • Make sure the cost price 1 on the product you are moving the stock too has the right each cost in it. As stock adjustments use the cost price 1 of the primary product supplier to set the cost of stock increases from stock adjustments. If necessary adjust the cost price 1 on the second product to get what ever cost you want.

How do I see how the cost was assigned at time of sale shipment/sale invoice?

On the Sale Shipment

Select the products, one by one, that have a question about costing used on the sale shipment.

Down the bottom click on the tab Movements, select the movement line, and click on the button Show Product Movement Allocation.
This is where the cost came from
On the Sale Invoice
Click on the tab Shipments, select the shipment, click on the drop-down button (if there is one), click on Show Transaction

Select the products, one by one, that have a question about costing used on the sale shipment.

Down the bottom click on the tab Movements, select the movement line, and click on the button Show Product Movement Allocation.
This is where the cost came from

See Also:

Correcting Shipments that have been receipted with incorrect costing.
Reversing a receipt when QOH is insufficient