Elementary costing 3: FIFO, LIFO, UFO…

Due to fluctuations in market prices, purchase cost of goods may vary from one purchase to another. Also, you rarely just purchase goods and immediately sell them in the same quantity. What you usually do is that you purchase the goods, then let them sit in the inventory for a while, then you may sell five different purchases all at once, or you may sell goods from one purchase to five different customers.

All of these situations have different effects on your inventory value, because something else must be taken into account: cost flow. Regardless of the inventory valuation method you chose, whenever you take an item from the inventory, how do you know its cost? Without knowing its cost, you can’t know the cost of goods sold, so you better know your cost. Don’t tell me you stick the purchase price to each item, so that you can know exactly how much it cost whenever you are about to sell it, because accountants won’t subscribe to the idea.

There are five cost-flow assumptions regarding the cost of goods sold, also called costing methods:

  • FIFO: This one stands for First In First Out, and it has nothing to do with physical flow of the goods through the warehouse. FIFO assumes that any item exiting the inventory does so carrying the cost of the item which came first. Of course, it applies only to the items still in the inventory, not to the very first purchase ever made. This is a pretty common choice of most of companies, because it is pretty easy to understand, and pretty straightforward for any cost tracking. However, this method is only good for stable markets with stable costs. If the prices are rising rapidly, using FIFO method could result in very old and therefore low costs being applied against the revenue, which is high because of inflation. Inventory itself would be fine, because the most recent and therefore very high costs remain there. However, high revenue and low costs equal high reported profit, and high profit means you pay more taxes, which is something you definitely don’t need when inflation is breathing down your neck anyway. When John F. Kennedy said that you should ask not what your country can do for you, but ask what you can do for your country, he must have had in mind using FIFO in times of high inflation.
  • LIFO: You might have guessed that this one means Last In First Out. LIFO assumes that cost of the item exiting the inventory is equal to the cost of the item which came into the inventory last. Now this one is funny. If your market is unstable, and prices are on perpetual rise, by choosing LIFO you apply latest and therefore the highest costs against the revenue, therefore reporting less profit than you would normally do. Reporting less profit reads paying fewer taxes, and this is precisely why this costing method is illegal in most countries. Please check with your local tax authorities before deciding to save big bucks abusing this method.
  • Average: This one is trickier than it seems. The cost of the item exiting the inventory is equal to the weighted average purchase cost of all items in the inventory at that time. Not that there is something particularly tricky about calculating averages, but any later change in the purchase cost may affect many sales simultaneously. One of the most common misconceptions about average cost is that it is the average cost of all items ever entering the inventory, which is plain wrong. Another common misconception about average cost is that it is the average cost of the items currently sitting in the inventory, which is also plain wrong. You wouldn’t believe how many requests and complaints come from not understanding average method. There are several approaches to average, such as weighted average, perpetual average and periodic average, and I hope I get time and will to blog about average costing method alone.
  • Standard: This one works pretty well with standard inventory valuation basis. Every item that enters the inventory does so at the predetermined standard cost, untouched by the fact that the actual price paid might be somewhat different. These differences are registered as variances, and can be used to track any problems with supply chain. This method is especially useful for manufacturing companies, which normally cannot afford big fluctuations in their manufacturing costs if they want to keep their customer base happy, so they must keep a close eye on any inconsistency in their manufacturing process. For companies dancing the typical purchase-sell polka, this method may not be very useful, but might be employed successfully in case purchase prices are extraordinarily steady, in which cases variances point out any issues with logistics.
  • Specific: This one is the cleanest and the simplest of all. However it is so impractical and incurs so much extra costs to you that you will probably avoid it unless you really need it. This method assumes that every single item can be physically identified at any given time using a unique identifier, such as a serial number. When you have to track every single item physically, it doesn’t really hurt you any extra to track the cost of every single physical item separately as well, so in case you really need to track items by serial numbers, you are quite well off choosing this costing method. It is clean, because any change in cost of any acquisition, can’t affect any other costs but the sale of the same item. Simplicity at its best. Einstein would envy it.

Now that you know all of the choices you need to make, there is one more thing to understand. What kind of mumbo-jumbo is change of acquisition cost? Don’t you just know how much you paid for the goods you purchased? Err, no.

When you go to a grocery store and purchase potatoes, you pretty much know your costs. But when you do business in purchases and sales, all the costs are rarely known at the time of the purchase. Now it’s good to remember the talk about direct and indirect costs.

Purchase costs are direct costs, because you know how much you pay, and you can trace them to the item you paid for, and you can do it in a cost-effective way. The cost you paid was in direct relation to an item, therefore it is a direct cost. But there isn’t just one kind of direct cost.

Imagine you run a grocery store and purchase potatoe supplies. Your supplier ships you a truckload of potatoes occasionally, accompanied by an invoice where you get the total quantity of potatoes, and total amount due. You post the invoice, increase your inventory by specified quantity, and apply direct cost of whatever monetary amount the invoice specified directly to that quantity.

However, at the end of the month, the shipping company which delivers the potatoes gives you an invoice of their own, specifying the shipping costs of all the potatoes in one single invoice. Now, this is also direct cost, because during any given month you can easily find out how many potatoes you bought, and therefore you know that monthly shipping invoice directly applies to exactly those shipments of potatoes. Therefore you can trace these costs directly to the cost object (the potatoes) in a very cost effective way. Now imagine this was your purchases schedule:

Date Quantity Price
April 1 150 kg $300
April 4 90 kg $180
April 11 140 kg $280
April 16 95 kg $190
April 23 130 kg $260
April 29 125 kg $250

Average price per kg of potatoes is obviously $2, so you know that every sale of potatoes carries the cost of goods sold at $2 per kg. So you register all of the sales in your general ledger exactly at this cost. By doing so you know exactly how much gross profit you made, because if you sell your potatoes at $3 per kg, you are obviously making a dollar a kilo gross. Good for you. Or not exactly.

At the end of the month, you receive the transportation invoice, charging you an additional $146. This new cost applies directly and only to the potatoes you received during last month, so you must increase the purchase costs of every kilo of potatoes by additional $.2, which must reflect to the cost of goods sold, which didn’t really go at $2 per kilo as you initially thought, but at $2.2 per kilo instead. This also has to affect your profits, so you didn’t really make a $1 per kilo, but a lousy $.8. Poor you.

In order to propagate these new costs to matching sales transactions, you must do a procedure called cost adjustment. This procedure consists of finding the sales transactions which were affected by increased purchase costs, then adjusting the cost of goods sold for these transactions accordingly. If you don’t do this, you don’t have clear picture, and your inventory value, and your profit calculation as well, aren’t reflecting the actual situation.

With this, I conclude this series of elementary costing posts. There is much more to inventory costing, and I would like to explain how exactly costing works in NAV, and how this theory matches the practical solutions at work in NAV, but this is a topic of its own, and I will deal with it as such, someday maybe.


Vjeko has been writing code for living since 1995, and he has shared his knowledge and experience in presentations, articles, blogs, and elsewhere since 2002. Hopelessly curious, passionate about technology, avid language learner no matter human or computer.

This Post Has 10 Comments

  1. viborc

    Hey Vjeko, I remeber all of these abbreviations from NAV Academy and Your lessons. It’s always nice to find them explained in such simple way and with examples! But from some reason You failed to explain UFO 😉

  2. Vjeko

    Unindentified First Out 🙂


    Simple & Very good explanation about costing methods

  4. Vjeko

    Anath Tr: Thanks, I am glad to know this explanation works for you. Best regards, Vjeko.

  5. Domingo

    Great post! Used it again to prepare a explanation for a customer…

    1. Vjekoslav Babic

      Domingo: thanks, I’m now considering to start charging you! 🙂

  6. Vak

    Hello Vjekoslav
    You wrote: “There is much more to inventory costing, and I would like to explain how exactly costing works in NAV, and how this theory matches the practical solutions at work in NAV, but this is a topic of its own, and I will deal with it as such, someday maybe.”

    Is it still too early to ask you: did you explain that already (somewhere?) ?


    1. Vjekoslav Babic

      @Vak: sorry, I didn’t touch the inventory costing topic after this post. I may do so in the future (I hope to do so, as part of my NAV Functionality catalog), but when, I don’t know.

  7. Anantha

    Excellent explanation of concepts. It is possible to get the benefit of ‘specific costing’ by using lot numbers in combination with ‘fixed application’. That works fine.

    1. Vjekoslav Babic

      @Anantha: A nice concept – I haven’t tried it yet, but I’ll give it a try and maybe blog about it here. Thanks for the hint!

Leave a Reply