1. Scope
Calculates inventory turnover (COGS / average inventory) and days inventory outstanding. It is a trailing indicator and does not forecast demand or recommend re-order points.
2. Inputs and outputs
Inputs
- cogs number (currency)
Cost of goods sold for the period.
- beginningInventory number (currency)
- endingInventory number (currency)
- periodDays number default: 365
Outputs
- averageInventory
(beginning + ending) / 2.
- turnover
cogs / averageInventory.
- daysInventoryOutstanding
periodDays / turnover.
Engine source: src/lib/inventory-turnover-calculator/engine.ts
3. Formula / scoring logic
avg_inventory = (beginning + ending) / 2
turnover = cogs / avg_inventory
dio = period_days / turnover 4. Assumptions
- Average inventory = simple mean of start and end. Monthly-average is more accurate but not requested.
- COGS uses the same costing basis (FIFO, weighted average, or specific identification) as the inventory valuation.
- No adjustment for obsolete or write-down inventory.
5. Data sources
6. Known limitations
- Benchmarks differ sharply by industry. Grocers turn > 15× annually; high-end apparel may turn 3–4×.
- Seasonality masks issues: Q1 inventory totals for a Q4-heavy retailer are misleadingly low.
7. Reproducibility
Input
cogs = $1,200,000, beginning = $150,000, ending = $200,000, period = 365.
Expected output
avg_inventory = $175,000, turnover ≈ 6.86×, dio ≈ 53 days.
8. Change log
- 2026-04-24 methodology page first published.