Module 6 — Inventory, cost of goods sold and landed cost

Level: Intermediate · Duration: 5 hours · Tracks: 🔵 🟣 · Prerequisite: Module 4


1. Objectives

By the end of this module you will be able to:

  1. Calculate the landed cost of any shipment and spread it across the items using three different allocation bases.
  2. Apply both FIFO and weighted average, and measure what each one does to profit and to inventory.
  3. Tell a perpetual inventory system from a periodic one and pick the right one for the stage your store is at.
  4. Handle returns, damage, shrinkage and consignment goods with the correct entries.
  5. Calculate inventory turnover and inventory days, identify dead stock, and put a figure on the cash trapped inside it.

2. Core concepts

2.1 Landed cost — the number most founders get wrong

Landed cost = everything you spent to get the goods ready for sale in your warehouse.

Goes into the cost ✓ Stays out ✗
The purchase price from the supplier Storage cost after arrival
International freight and insurance Shipping to the customer
Customs duties Marketing costs
Clearance and port handling Payment gateway fees
Currency conversion fees on the shipment Management salaries
Inspection and repacking before sale The cost of a customer return

The dividing rule: everything spent before the goods are ready for sale where they stand = inventory cost (an asset). Everything spent after that = an operating expense.

Nuwa's example:

Item Amount
Supplier invoice (1,000 units) 60,000
International freight 6,000
Customs duties 3,000
Total landed cost 69,000
÷ 1,000 units = cost per unit 69.00

The gap between 60 and 69 is 15%. A store pricing off 60 thinks its margin is 66.9% when it is 65.3% — and worse: during a sale it sells at a loss while believing it is making money.

2.2 Allocating landed cost across several items

When a shipment holds different items, you have to choose an allocation basis:

The basis When it is used Example
By value Customs duties (they are charged on value) An item worth 40% of the shipment carries 40% of the customs
By weight Sea and road freight An item that is 60% of the weight carries 60% of the freight
By volume (CBM) Air freight and volume-constrained containers Per cubic metre

The common mistake: lazily spreading every cost on one single basis. The result: you think the light expensive item is a loser and the heavy cheap item is a winner — so you stop selling the one that actually makes money.

An allocation example: a shipment with two items, freight 8,000 and customs 5,000.

Item Value Weight Customs allocation (by value) Freight allocation (by weight)
A 30,000 (60%) 200 kg (25%) 3,000 2,000
B 20,000 (40%) 600 kg (75%) 2,000 6,000
Total 50,000 800 kg 5,000 8,000

Landed cost: A = 35,000 · B = 28,000. Had you spread everything by value, A would be 37,800 and B 25,200 — a 2,800 dirham distortion running in two opposite directions.

2.3 FIFO versus weighted average

FIFO (first in, first out) Weighted average (WAC)
The idea The oldest units are released first Every unit carries an average cost that updates with each shipment
When prices are rising Lower cost ⇒ higher profit ⇒ higher tax A middle result
Ending inventory At the latest prices (closer to reality) At a historical average
Effort Needs batch tracking Easier, one formula
Best for Goods with an expiry date or a release sequence Homogeneous, fast-moving goods

Both are acceptable under international standards. LIFO is not allowed.

The consistency rule: pick a method and stick to it. Switching between periods makes comparing your own profits meaningless, and calls for disclosure and justification.

2.4 Perpetual versus periodic

Perpetual Periodic
When cost of goods sold is recorded With every single sale Once, at the end of the period
The inventory balance Known at any moment Known only after a count
The formula Calculated directly cost of goods sold = opening inventory + purchases − closing inventory
Best for Any store with a point-of-sale system or a platform A very rudimentary store

Recommendation: any e-commerce store on a platform (Shopify/WooCommerce) already has a perpetual system inside the platform. Use it — periodic means you have no idea what your profitability is for 29 days out of every 30.

2.5 Shrinkage, damage and returns

The case The treatment
An undamaged return that can be resold Goes back into inventory at its cost: Dr Inventory / Cr Cost of Goods Sold
A damaged return that cannot be sold Does not go back into inventory; the cost stays an expense in 5020 Inventory Variances and Damage
Shrinkage found by a count (theft/loss) Dr Inventory Variances and Damage / Cr Inventory
Expected natural spoilage Charged to cost of goods sold if it is within the normal rate
Consignment goods Not your inventory — they do not appear on your balance sheet until they are sold

2.6 Inventory metrics

inventory turnover = cost of goods sold ÷ average inventory
inventory days = 365 ÷ turnover
cash trapped in dead stock = quantity of items with no movement for 90 days × their landed cost

3. Worked examples

Example 1 — Nuwa's inventory entries, January

On the sale (perpetual system) — 500 units × 69:

31 January 2026 | JE-016 | Ref: inventory movement report JAN
   Dr 5010 Cost of Goods Sold                     34,500.00
        Cr 1200 Inventory                              34,500.00
   Memo: cost of 500 units sold during January @ 69 landed cost

On the return of 20 undamaged units:

31 January 2026 | JE-017 | Ref: returns reports RET-JAN
   Dr 1200 Inventory                               1,380.00
        Cr 5010 Cost of Goods Sold                      1,380.00
   Memo: 20 undamaged units returned to inventory @ 69

The result: net cost of goods sold = 34,500 − 1,380 = 33,120 = 480 net units × 69 ✓
Inventory: 1,000 − 500 + 20 = 520 units × 69 = 35,880

Watch out: the return entry in Module 2 dealt with revenue and tax. This entry deals with cost and inventory. A return is always two entries — forgetting the second one inflates your cost and hides inventory you actually have.

Example 2 — FIFO versus weighted average

Nuwa imported a second shipment in February: 800 units at a landed cost of 74 per unit (the supplier's price and the freight both went up). February sales: 700 units. Opening inventory: 520 units @ 69.

Under FIFO:

The layer Units released Cost Total
Opening inventory 520 69 35,880
The second shipment 180 74 13,320
Cost of goods sold 700 49,200
Ending inventory 620 74 45,880

Under weighted average:

average = (520×69 + 800×74) ÷ (520 + 800)
        = (35,880 + 59,200) ÷ 1,320
        = 95,080 ÷ 1,320 = 72.03 per unit
Item Value
Cost of goods sold 700 × 72.03 = 50,421.00
Ending inventory 620 × 72.03 = 44,658.60
(the rounding difference is settled against ending inventory) 95,080 − 50,421 = 44,659.00

The comparison:

FIFO Weighted average Difference
Cost of goods sold 49,200.00 50,421.00 1,221.00
Ending inventory 45,880.00 44,659.00 1,221.00
Effect on February profit Higher by 1,221

The lesson: the difference is not real profit — it is timing. FIFO showed a higher profit in February, and it will show a lower one later, when the expensive units get sold. Over the life of the goods the total is the same. But in your first year, that timing is what decides your tax liability and your pricing decision.

Example 3 — the physical count found a shortfall

The physical count on 31 January showed 515 units instead of 520 in the books. The shrinkage is 5 units × 69 = 345:

31 January 2026 | JE-018 | Ref: physical count record PI-JAN-2026
   Dr 5020 Inventory Variances and Damage            345.00
        Cr 1200 Inventory                                 345.00
   Memo: adjustment for the physical count difference — 5 units

Watch out: shrinkage may require an input tax adjustment if it was caused by damage or theft (Module 8). And do not deal with the differences through a silent entry every month — a recurring difference is a flaw in the operation, not in the books.

4. Exercises

E6.1 — Landed cost (beginner). A shipment: 600 units at 82 per unit, sea freight 7,200, customs 5% of the value of the goods, clearance 1,500, insurance 900, warehouse storage after arrival 2,000. Calculate the landed cost per unit, and say which item you excluded and why.

E6.2 — Multi-item allocation (intermediate). A shipment with three items:

Item Quantity Unit price Total weight
A 400 50 300 kg
B 200 120 150 kg
C 300 30 550 kg

Freight is 9,000 (allocated by weight) and customs 4,800 (allocated by value). Calculate the landed cost for each item and per unit, then redo it spreading everything by value, and compare the distortion on item C specifically.

E6.3 — FIFO and average (intermediate). The movement of one item over the quarter:

Date Movement Quantity Cost
1/1 opening inventory 300 40
15/1 purchase 500 44
20/2 sale 600
5/3 purchase 400 48
25/3 sale 450

Calculate cost of goods sold and ending inventory under both methods, and say in one line which method gives the higher profit and why.

E6.4 — Returns and damage (intermediate). During April: sales of 900 units at a cost of 69, 40 units returned, of which 28 are undamaged and 12 are damaged and unsellable. Write every entry required (revenue and cost), and calculate the net cost of goods sold and the inventory added back.

E6.5 — Dead stock (intermediate→advanced). The year-end count:

Item Quantity Unit cost Last sale
A 220 69 6 days ago
B 180 74 41 days ago
C 95 130 128 days ago
D 310 45 210 days ago

Cost of goods sold for the year is 620,000 and average inventory is 88,000.
(a) Calculate turnover and inventory days. (b) Identify the dead stock (no movement > 90 days) and the cash trapped in it. (c) Propose three actions ordered by how fast they release cash. (d) Do you need to write the dead stock down? When does that become an accounting obligation?

5. Mini project — "A complete inventory system"

Deliverable: an inventory file with three linked sheets.

What is required:

  1. A shipments sheet: for each shipment, its line items, its additional costs, and the allocation basis for each cost, producing the landed cost of every item automatically.
  2. An inventory movement sheet: in/out/returns/shrinkage for each item, with a running balance in both quantity and value.
  3. A metrics sheet: turnover, inventory days, dead stock, trapped cash, and an alert for any item with no movement for > 90 days.
  4. Apply both methods to the same data in two adjacent columns, and write a paragraph: which one would you pick for your store and why — with an operational argument, not a theoretical one.
  5. Add a "physical count" test: a cell where you enter the actual count, so the file works out the difference and proposes the adjusting entry.

Acceptance criteria:
- [ ] The landed cost per unit in the Nuwa example is exactly 69.00.
- [ ] Both methods are applied and give results consistent with E6.3.
- [ ] Inventory balance in quantity × cost = value, on every row without exception.
- [ ] The dead stock alert fires when you change the last-sale date.
- [ ] The method-choice paragraph names one specific operational reason (expiry, price volatility, number of SKUs...).

6. The test

9 questions · pass 7/9.

  1. Is the cost of shipping the order to the customer included in the cost of inventory?
  2. A shipment of 500 units at 90, freight 6,000, customs 4,500. What is the landed cost per unit?
  3. Why is it wrong to spread freight and customs on a single basis for a multi-item shipment?
  4. When supplier prices are rising, which inventory costing method shows the higher accounting profit?
  5. A customer returned an undamaged product that can be resold. How many entries are needed and what are they?
  6. Book inventory is 46,000 and the physical count is 44,300. What is the correct adjusting entry?
  7. Inventory turnover is 3.2. What are the inventory days?
  8. How are consignment goods treated on your balance sheet?
  9. A store records its purchases straight into "purchases expense" and keeps no inventory account. What are the wrong outcomes?

Pass mark 7 of 9.

7. Completion standard

# The standard The evidence
1 A correct landed cost calculation with the ineligible items excluded E6.1
2 A correct multi-basis allocation for three items E6.2
3 FIFO and average applied to the same data with correct results E6.3 + the project
4 Correct and separate entries for the undamaged and the damaged return E6.4
5 An inventory file that runs automatically and detects dead stock The project file
6 The choice of method justified with an operational argument A written paragraph
7 Test score ≥ 7/9 The test sheet

Mastery level (optional): calculate the real landed cost of the last shipment you actually imported — with every item in it, including exchange rate differences and bank transfer fees. Compare it with the cost you had been pricing off. That gap, multiplied by the number of units sold, is profit you thought you made and did not.