1. Introduction and Objectives
When price levels fluctuate due to inflation or market dynamics, assigning a cost to materials issued to production and units remaining in stock directly alters the cost of goods sold (COGS) and net income. This lesson contrasts the structural mechanics of FIFO and Weighted Average under continuous systems.
2. Valuation Methodologies
  • First-In, First-Out (FIFO): Assumes that the earliest batches of materials purchased are the first ones issued to production.
    • Balance Sheet Impact: Ending inventory is valued at the most recent market prices, reflecting current replacement costs accurately.
    • Income Statement Impact: In inflationary environments, older, lower costs are matched against current high revenues, resulting in artificially high “paper profits” and increased tax liabilities.

  • Weighted Average Cost (WAC): Computes a new average unit cost after each incoming purchase, smoothing out short-term price spikes.
    • Formula:

      Average Unit Cost = Total Cost of Inventory on Hand / Total Units on Hand
    • Regulatory Note: IFRS explicitly bans LIFO (Last-In, First-Out) due to potential profit manipulation. While US GAAP permits LIFO for tax-matching purposes, global standards heavily favor FIFO and WAC for cross-border consistency.

3. Computational Ledger Simulation
A manufacturing business reports the following inventory events:
  • Oct 1: Opening Inventory of 100 units at $10.00/unit.
  • Oct 5: Purchased 150 units at $12.00/unit.
  • Oct 12: Issued 180 units to the production assembly line.
Execution:
Using Python to track and calculate the exact valuation under both methods:
python
# Raw Data Setup
opening_units = 100
opening_rate = 10.00
purchase_units = 150
purchase_rate = 12.00
issued_units = 180

# 1. FIFO Calculation
# 180 units issued: 100 from opening stock, 80 from Oct 5 purchase
fifo_cogs = (opening_units * opening_rate) + (80 * purchase_rate)
fifo_ending_units = (opening_units + purchase_units) - issued_units
fifo_ending_val = fifo_ending_units * purchase_rate

# 2. Weighted Average Calculation
total_cost_before_issue = (opening_units * opening_rate) + (purchase_units * purchase_rate)
total_units_before_issue = opening_units + purchase_units
wac_rate = total_cost_before_issue / total_units_before_issue

wac_cogs = issued_units * wac_rate
wac_ending_val = (total_units_before_issue - issued_units) * wac_rate

print(f"FIFO COGS: ${fifo_cogs:.2f} | Ending Inventory: ${fifo_ending_val:.2f}")
print(f"WAC Rate: ${wac_rate:.4f} per unit")
print(f"WAC COGS: ${wac_cogs:.2f} | Ending Inventory: ${wac_ending_val:.2f}")
 

 

Evaluating the calculations reveals:
  • FIFO Output: COGS = (100 × $10) + (80 × $12) = $1,960. Ending Inventory = 70 × $12 = $840.

    WAC Output: Moving Average Rate = ($1,000 + $1,800) / 250 = $11.20 per unit. COGS = 180 × $11.20 = $2,016. Ending Inventory = 70 × $11.20 = $784


Â