Inventory Valuation

The same 500 units can be worth wildly different amounts depending on the valuation method. Since inventory is often the largest asset on a manufacturer’s balance sheet, this drives reported profit directly.

The methods

FIFO — First In, First Out

Oldest cost is consumed first.

Receipts:  100 @ 10 = 1,000
           100 @ 12 = 1,200
Issue 150:  100 @ 10 + 50 @ 12 = 1,600  → COGS
Remaining:   50 @ 12 =   600            → inventory

In rising prices: lower COGS, higher profit, higher inventory value. The default under IFRS. Matches physical flow for perishables.

Weighted Average / Moving Average (WAC / MAP)

One blended cost, recalculated on every receipt.

Receipts:  100 @ 10 = 1,000
           100 @ 12 = 1,200
Average:   200 units, 2,200 → 11.00 each
Issue 150: 150 × 11 = 1,650   → COGS
Remaining:  50 × 11 =   550   → inventory

Simple, smooths price volatility, and by far the most common in practice because it needs no layer tracking. Two flavours:

  • Moving average (perpetual) — recalculated at each receipt
  • Periodic weighted average — one average for the whole period, calculated at close

LIFO — Last In, First Out

Newest cost consumed first. In rising prices: higher COGS, lower profit, lower tax.

Permitted under US GAAP, prohibited under IFRS. US companies using LIFO must disclose the “LIFO reserve” (the difference from FIFO). If you work on a US multinational you will meet LIFO for the US entity and FIFO for everyone else — the same physical goods, two valuations.

Standard cost

A planned cost per unit, fixed for the period. All movements post at standard; differences go to variance accounts.

Standard cost: 11.50
Actual purchase: 100 @ 12.00

  Inventory              Dr 1,150   (100 × 11.50)
  Purchase price variance Dr   50
    GR/IR                   Cr 1,200

Dominant in discrete manufacturing because it makes shop-floor reporting stable and variances visible. Requires an annual (or more frequent) standard cost roll, which revalues all inventory in one large entry.

Specific identification

Track each individual unit’s actual cost. Only practical for serialised high-value items — vehicles, jewellery, aircraft parts, art.

Retail method

Value inventory at retail price, then apply a cost-to-retail ratio to get cost. Used by retailers with huge SKU counts and stable margins.

Price control: S vs V

In ERP configuration this is the single most consequential material master field:

  S — Standard price V — Moving average
Inventory value Quantity × standard price, always Quantity × current moving average
Price differences Post to variance accounts Absorbed into the price
Stability Stable, predictable Fluctuates
Best for Manufactured goods, high volume Purchased goods, trading
Reporting Variances visible and analysable Variances hidden in the price

Changing price control on a material with stock requires a revaluation. It is not a casual master data edit.

The moving average trap

Stock: 10 units @ 100 = 1,000
Receipt 1,000 units, invoice arrives at 120 (PO said 100)

If the goods were already issued before the invoice arrived,
the price difference of 20,000 cannot be absorbed into stock
(there's no stock left to absorb it) → it posts to a
price difference account instead.

Worse: with low stock quantities, a small absolute difference produces an enormous unit price swing. A classic incident is moving average price jumping to 50,000 per unit because a 5,000 invoice difference hit 0.1 units of remaining stock. Real ERPs have tolerance checks for exactly this; if you build your own, add them.

Lower of cost and net realisable value (IAS 2)

Inventory is carried at the lower of cost and NRV:

NRV = estimated selling price − costs to complete − costs to sell

Cost           1,200
Selling price  1,000
Selling costs    100
NRV              900
→ Write down 300

The write-down is per item or per group of similar items, never across the whole inventory. It’s reassessed each period, and under IFRS it can be reversed if NRV recovers (US GAAP prohibits reversal for LIFO/retail method).

What goes into inventory cost

Included:

  • Purchase price less trade discounts and rebates
  • Import duties and non-recoverable taxes
  • Freight in, handling, insurance in transit
  • Direct conversion cost — direct labour and materials
  • Allocated production overhead, based on normal capacity

Excluded (expensed as incurred):

  • Abnormal waste and spoilage
  • Storage costs (unless necessary before a further production stage)
  • Administrative overhead not related to production
  • Selling and distribution costs
  • Unallocated fixed overhead from under-utilised capacity

That last one is important and often missed: if your factory runs at 60% of normal capacity, you may only absorb 60% of fixed overhead into inventory. The rest is a period expense. Absorbing full overhead into fewer units would inflate inventory and hide the cost of idle capacity — which is exactly why the rule exists.

Landed cost

The real cost of imported goods is far more than the invoice:

Supplier invoice (FOB Shanghai)            50,000
+ Ocean freight                             3,200
+ Marine insurance                            250
+ Customs duty (8%)                         4,000
+ Port handling and demurrage                 800
+ Customs broker fee                          150
+ Inland transport to warehouse               600
────────────────────────────────────────────────
= Landed cost                              59,000     → 18% above invoice

Implementation problems:

  • Freight invoices arrive weeks after the goods
  • One freight invoice covers many POs and many materials → needs allocation by value, weight, volume, or quantity
  • Duty is per HS code, not per shipment
  • FX rate for duty may be a customs-published rate, not the market rate

Standard ERP approach: planned delivery costs on the PO (estimated at receipt), then subsequent debits when actual invoices arrive, with the difference either revaluing remaining stock or posting to price difference if the stock is gone.

Split valuation

The same material valued differently by category:

Material FABRIC-100
  ├── Valuation type DOMESTIC  — 250 units @ 42.00
  ├── Valuation type IMPORTED  — 180 units @ 58.00
  └── Header (total)           — 430 units @ 48.70 (weighted)

Used for: domestic vs imported, new vs refurbished, quality grade A/B/C, in-house vs subcontracted, different origins for trade compliance. Each valuation type has its own price and its own stock. Issues must specify which one.

Inventory valuation reporting

Standard reports you will be asked for:

  • Stock valuation by plant / material group — current value
  • Inventory ageing — value by last-movement bucket
  • Slow-moving and obsolete — provision calculation
  • Stock reconciliation — inventory subledger total = GL inventory accounts. Run this every period. A break here is a serious finding
  • Price change analysis — moving average price movements over time, to spot the anomalies described above
  • Inventory turnover by material
  • Standard cost vs moving average comparison — where standards have drifted from reality

Data model

material_valuation(
  material_id, plant_id, valuation_type,
  price_control,          -- 'S' | 'V'
  standard_price NUMERIC(19,6),
  moving_avg_price NUMERIC(19,6),
  price_unit INT,         -- price per N units (e.g. per 1000 for cheap items)
  total_stock NUMERIC(18,6),
  total_value NUMERIC(19,4),
  valuation_class VARCHAR(10),
  currency CHAR(3),
  PRIMARY KEY (material_id, plant_id, valuation_type)
);

-- FIFO/LIFO layers, if used
inventory_layer(
  id, material_id, plant_id, valuation_type,
  receipt_date, receipt_document,
  quantity_received, quantity_remaining,
  unit_cost, currency
);

price_unit matters: for cheap items (screws, buttons) a price of 0.0034 loses precision. Storing “3.40 per 1000” keeps it exact. Every serious ERP has this field; homemade ones discover the need after the first rounding complaint.

Rules

  1. Pick one method per material/plant and document it. Changing methods is a restatement, not a config change.
  2. Standard cost changes are events, not edits — they revalue inventory and hit P&L.
  3. Moving average with low stock is dangerous. Add tolerance checks and alerts.
  4. Landed cost matters more than people think — 15–25% of value on imports.
  5. Reconcile inventory to the GL every period, automatically.
  6. Never allow negative stock quantity with a positive value (or vice versa). Both are symptoms of a broken valuation.
  7. Store the valuation used on each movement, so a historic COGS figure can be explained years later.

Next