Weighted average cost (WAC) — also called AVCO (average cost) or the moving average method — is an inventory costing method that assigns a single blended per-unit cost to every unit in cost of goods sold and ending inventory. Instead of tracking which specific purchase lot a unit came from (as FIFO and LIFO do), WAC divides the total cost of all available inventory by the total number of units available and uses that average figure uniformly. It is permitted under both US GAAP and IFRS, making it one of three widely accepted inventory valuation choices alongside FIFO and LIFO.
The method matters operationally because the cost assigned to each unit sold directly affects cost of goods sold, gross margin, and — when prices change between orders — both your reported income and the working capital tied up in stock. In a closed-loop procurement system — where every purchase, supplier reply, receiving event, and landed-cost addition flows through one connected record — WAC calculations stay current automatically, because each receipt updates the running cost pool without manual re-entry.
Quick answers
What is the weighted average cost formula?
WAC per unit = Total cost of goods available ÷ Total units available
Total cost of goods available = beginning inventory cost + cost of all purchases in the period.
What is the difference between periodic WAC and moving average WAC? Periodic WAC computes one average per accounting period (week, month, quarter) using all purchases and opening inventory together. Moving average WAC (also called perpetual WAC) recalculates the average after every receipt. The two methods produce different per-unit costs whenever purchases happen mid-period at different prices.
Is WAC the same as AVCO? Yes. AVCO (average cost) is the term commonly used in UK, Commonwealth, and IFRS-oriented accounting; WAC is the US GAAP convention. The formula is identical.
Is WAC permitted under IFRS? Yes. Both GAAP and IFRS permit WAC and FIFO. LIFO is permitted under US GAAP only — IFRS prohibits it.
When does WAC produce lower COGS than FIFO? In a falling-price environment — when recent purchases are cheaper than earlier ones — WAC includes some of the older, higher costs in the average, so WAC COGS can exceed FIFO COGS. In a rising-price environment, WAC COGS sits between FIFO (oldest, lowest costs first) and LIFO (newest, highest costs first). WAC smooths the extremes in both directions.
The formula in detail
Periodic WAC
Periodic WAC computes one blended rate for an entire period and applies it to all units sold during that period.
Step 1: Sum the cost of all inventory available for sale.
Goods available = Opening inventory cost + Sum of all purchase costs in the period
Step 2: Sum all units available.
Units available = Opening inventory units + Sum of all units received in the period
Step 3: Divide.
WAC per unit = Goods available (cost) ÷ Units available (units)
Step 4: Apply to units sold.
COGS = Units sold × WAC per unit
Ending inventory = Remaining units × WAC per unit
Moving average WAC (perpetual)
Moving average recalculates the unit cost after each receipt. The new average applies to all subsequent sales until the next receipt.
New WAC = (Previous stock cost + Receipt cost) ÷ (Previous stock units + Receipt units)
Each receipt resets the average. Sales reduce units and cost at the current average but do not change the average rate itself.
Worked example: periodic vs. moving average
A specialty retailer carries one SKU. Opening inventory: 200 units at $10.00 ($2,000 total). Two purchases occur during the month:
| Event | Units | Unit cost | Total cost |
|---|---|---|---|
| Opening stock | 200 | $10.00 | $2,000 |
| Purchase 1 | 150 | $11.00 | $1,650 |
| Purchase 2 | 100 | $12.50 | $1,250 |
| Available | 450 | — | $4,900 |
Sales during the month: 320 units.
Periodic WAC
WAC per unit = $4,900 ÷ 450 = $10.89 (rounded)
COGS = 320 × $10.89 = $3,484
Ending inventory = 130 × $10.89 = $1,416
Moving average WAC
The average resets after each purchase:
After Purchase 1 (before any sales assumed to clear opening stock first for this illustration):
New WAC = ($2,000 + $1,650) ÷ (200 + 150) = $3,650 ÷ 350 = $10.43
Assume 200 units sell between Purchase 1 and Purchase 2:
COGS portion = 200 × $10.43 = $2,086
Remaining: 150 units at $10.43 = $1,564 cost
After Purchase 2:
New WAC = ($1,564 + $1,250) ÷ (150 + 100) = $2,814 ÷ 250 = $11.26
Remaining 120 units sell:
COGS portion = 120 × $11.26 = $1,351
Total COGS under moving average: $2,086 + $1,351 = $3,437 Ending inventory: 130 units × $11.26 = $1,464
FIFO for comparison
FIFO draws from the oldest batch first: 200 at $10.00, then 120 of the 150 at $11.00.
COGS (FIFO) = 200 × $10.00 + 120 × $11.00
= $2,000 + $1,320 = $3,320
Ending inventory = 30 × $11.00 + 100 × $12.50 = $330 + $1,250 = $1,580
Side-by-side
| Method | COGS | Ending inventory |
|---|---|---|
| Periodic WAC | $3,484 | $1,416 |
| Moving average | $3,437 | $1,464 |
| FIFO | $3,320 | $1,580 |
In this rising-price environment, FIFO produces the lowest COGS (best reported margin) and the highest ending inventory value (closest to replacement cost). WAC sits between FIFO and a LIFO result. The methods converge when prices are stable across all purchases.
When WAC fits and when FIFO is better
WAC fits best when:
Units are fungible. If two batches of the same item are physically indistinguishable — grain, flour, cooking oil, fuel, scrap metal, chemicals in a shared tank — there is no operational meaning to "this specific lot at this specific price." WAC's pooled cost reflects this reality.
Lot-level tracking is impractical. Some businesses with high purchase frequency, small pack sizes, or continuous replenishment cannot practically tag every unit to a source lot. WAC reduces the cost-accounting burden to one recalculated number rather than a stack of cost layers.
Price volatility is low. When the price spread between sequential purchase orders is narrow (under 5%), the gap between FIFO and WAC COGS is immaterial. WAC's simplicity wins.
Multiple purchases are received simultaneously. If a single receiving event combines goods from multiple supplier invoices at slightly different prices, WAC blends them automatically without requiring per-lot allocation logic.
FIFO is generally better when:
The catalog includes perishables. Perishable inventory typically requires FEFO picking (first-expired, first-out). FEFO picking only makes physical sense when lot-level expiry dates are tracked — and if the system is tracking lots, FIFO accounting is already feasible and more accurate. See FIFO, FEFO, and LIFO for the full distinction between accounting methods and picking policies.
Purchase price variance is material. If supplier prices change significantly between orders — a scenario tracked precisely by purchase price variance — FIFO preserves cost-layer accuracy. WAC absorbs the variance into the blended rate and can obscure whether a price increase is actually flowing through COGS.
Lot traceability is required. Regulated retail (cannabis, CBD, pharmaceuticals, certain food categories) often requires lot-level receiving records for compliance audits. Once lot data exists, FIFO accounting costs nothing extra and provides a more precise per-lot COGS trail.
You need the balance sheet to approximate replacement cost. FIFO ending inventory reflects the most recent prices paid, which approximates current replacement cost in rising-price environments. WAC ending inventory blends historical and current costs, potentially understating replacement cost in inflationary periods.
How landed cost interacts with WAC
Landed cost — freight, customs duties, tariffs, insurance, and handling — changes the true per-unit cost of inventory beyond the supplier invoice price. Under WAC, every receipt should carry its full landed cost, not just the purchase price, or the blended average understates what each unit actually cost to acquire.
Effect on WAC calculation:
If Purchase 1 (150 units at $11.00) arrives with $225 in freight, the true cost per unit for that lot is:
($1,650 + $225) ÷ 150 = $12.50 per unit
The WAC pool should absorb $12.50 per unit, not $11.00. The gap compounds if multiple receipts carry freight that is never allocated — WAC per unit is systematically understated, COGS is too low, and gross margin is overstated.
This is why the carrying cost formula uses landed cost in the holding-cost calculation, and why ABC inventory analysis should classify SKUs by landed cost per unit (annual usage value based on true acquisition cost), not invoice price.
A closed-loop procurement platform that allocates freight and duties to PO line items at receiving ensures the WAC pool is built from complete costs, not invoice excerpts. Without that structured allocation, WAC calculations run on partial data regardless of which accounting system processes them.
WAC in a perpetual inventory system
Most inventory software today runs perpetual accounting — cost pools update continuously as receipts and sales happen, rather than waiting for month-end close. In perpetual WAC:
- Each receipt triggers a recalculation of the moving average
- Sales consume units at the current moving average
- The average only changes on receipts (inbound events), not on sales (outbound events)
- Returns and vendor credits that update unit cost also trigger a recalculation
The implication for operations: receiving accuracy is cost accuracy. An unrecorded receipt leaves the cost pool unchanged and the unit count understated, which means the next sale draws down against incorrect WAC. A receipt recorded at the wrong quantity inflates or deflates the pool proportionally.
This is the procurement connection. In an open-loop buying process where POs are sent and goods are received informally — quantities logged later, prices corrected by hand — WAC calculations run on whatever data someone eventually enters. In a closed-loop system, the receiving record attaches to the PO, captures actual quantities and unit costs, absorbs the supplier-confirmed prices, and pushes the update to inventory immediately. The moving average reflects what was actually received at what was actually paid, not what was estimated weeks ago.
WAC across industries: a reference
| Industry | Typical costing choice | Reason |
|---|---|---|
| Grain, feed, agricultural inputs | WAC | Fungible bulk; lot tracking impractical |
| Cooking oils, liquids | WAC | Mixed tank storage; no physical lot identity |
| Apparel and soft goods | WAC or FIFO | WAC common for basics; FIFO for collections with seasonal cost changes |
| Restaurant ingredients | FIFO + FEFO picking | Perishability and lot expiry make FEFO picking essential; FIFO cost layer accuracy helps |
| Regulated retail (cannabis, CBD) | FIFO | Lot-level COA and compliance trail require per-lot cost records |
| Electronics, durables | FIFO or specific ID | High unit prices and serial tracking make per-unit cost accuracy material |
| Commodity metals, scrap | WAC | Fungible by specification; weight-based purchasing |
The GAAP and IFRS position
Both US GAAP (ASC 330) and IFRS (IAS 2) permit WAC and FIFO. LIFO is permitted only under US GAAP and prohibited under IFRS. WAC's dual-standard acceptance matters for:
- US subsidiaries of IFRS-reporting multinationals (LIFO is unavailable; WAC or FIFO required)
- Any US SMB with cross-border customers, investors, or lenders who request IFRS-aligned statements
- Businesses preparing for acquisition where the buyer or their lenders normalize to IFRS
Switching costing methods mid-year is a change in accounting estimate that requires disclosure and may restate comparative periods. Consult your accountant before changing from FIFO to WAC or vice versa — the procurement and inventory systems must support the method consistently.
LineNow captures unit cost, quantity, and landed-cost allocation at every receipt, keeping the moving average current without manual re-entry. Start a 90-day free trial — no credit card required.
Related
- FIFO, FEFO, and LIFO: Inventory Valuation Methods and Picking Policies
- Cost of Goods Sold (COGS): Formula, Benchmarks, and Why Procurement Controls It
- Landed Cost: Formula, What It Includes, and How It Changes Your Procurement Math
- Purchase Price Variance (PPV): Formula, Causes, and Why Procurement Decides It
- ABC Inventory Analysis: Classify SKUs, Set Policy by Tier
- Carrying Cost (Holding Cost): Formula, Components, and Why Volume Discounts Lose Money