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:
- Calculate the landed cost of any shipment and spread it across the items using three different allocation bases.
- Apply both FIFO and weighted average, and measure what each one does to profit and to inventory.
- Tell a perpetual inventory system from a periodic one and pick the right one for the stage your store is at.
- Handle returns, damage, shrinkage and consignment goods with the correct entries.
- 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:
- 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.
- An inventory movement sheet: in/out/returns/shrinkage for each item, with a running balance in both quantity and value.
- A metrics sheet: turnover, inventory days, dead stock, trapped cash, and an alert for any item with no movement for > 90 days.
- 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.
- 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.
-
Is the cost of shipping the order to the customer included in the cost of inventory?The dividing rule: everything spent before the goods are ready for sale in your warehouse is inventory cost, and everything spent after that is an operating expense. Shipping to the customer always falls after readiness.
-
A shipment of 500 units at 90, freight 6,000, customs 4,500. What is the landed cost per unit?Landed cost = (45,000 + 6,000 + 4,500) ÷ 500 = 55,500 ÷ 500 = 111.00. Dropping the customs, the freight, or both is what makes you believe your margin is higher than it is — the same 60 versus 69 gap Nuwa had.
-
Why is it wrong to spread freight and customs on a single basis for a multi-item shipment?In the module's example, spreading everything by value gives A = 37,800 and B = 25,200 instead of 35,000 and 28,000 — a 2,800 dirham distortion running in two opposite directions, which can push you into dropping the item that actually makes money.
-
When supplier prices are rising, which inventory costing method shows the higher accounting profit?In February, FIFO gave a cost of goods sold of 49,200 against 50,421 on weighted average — profit higher by 1,221. That is a timing difference, not real extra profit, and LIFO is not allowed in the first place.
-
A customer returned an undamaged product that can be resold. How many entries are needed and what are they?A return is always two entries: Module 2 handled the revenue and the tax, and this module handles the cost and the inventory. In Nuwa, 20 units × 69 = 1,380 goes back into inventory; forgetting the second entry inflates your cost and hides inventory you actually have.
-
Book inventory is 46,000 and the physical count is 44,300. What is the correct adjusting entry?The difference of 46,000 − 44,300 = 1,700 is a real shortfall, so inventory is reduced and the loss is charged to
5020 Inventory Variances and Damagerather than to cost of goods sold, so it stays visible instead of disappearing inside the cost of selling. -
Inventory turnover is 3.2. What are the inventory days?Inventory days = 365 ÷ turnover = 365 ÷ 3.2 = 114.06 days; your cash is locked inside goods for close to four months before it comes back. Multiplying instead of dividing, or using 12 months instead of 365 days, are the two common slips.
-
How are consignment goods treated on your balance sheet?Inventory is recognised on ownership and risk, not on where the goods physically sit. Consignment goods are in your warehouse but they belong to the consignor, and including them inflates your assets, your inventory and your turnover all at once.
-
A store records its purchases straight into "purchases expense" and keeps no inventory account. What are the wrong outcomes?Buying inventory swaps one asset for another; expensing it the moment you buy breaks the matching of the cost with the revenue it earned, understates your assets, and wipes out the unit margin your pricing decision rests on. Even the periodic system keeps an inventory account and closes it at period end.
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.