Financial Strategy
Average Inventory Days (DIO) by Vertical, 2026
Average inventory days (DIO) vary sharply by category: food and grocery turn in about 26 days, pet consumables 36, value apparel and footwear 70 to 80, home and furniture 118, performance apparel 122, and beauty CPG 168 or more. Your category sets the floor, and every day above it ties up cash.
Key Takeaways
- Category sets the floor. Public-company DIO ranges from 26 days (Sprouts, food/grocery) to 168 days (e.l.f., beauty CPG). Same metric, a 6x spread. Knowing your vertical's realistic floor is step one. Source: SEC EDGAR 10-K filings, FY2024/FY2025.
- Beauty and slow-turn soft goods carry the most idle cash. e.l.f. Beauty ran 168 days (FY2026) and Lululemon 122-129 days, because high gross margins reduce the pressure to turn fast. The capital is still sitting idle. Source: ELF 10-K FY2026, LULU 10-K FY2025.
- Channel mix can move DIO more than category. Shopify-only sub-$10M brands carry roughly 17 days of inventory, Amazon FBA brands about 39, multi-channel plus wholesale around 60. The same SKU has a different optimal DIO depending on how you sell it.
- Every extra inventory day has a price. At 50% COGS, one day above target ties up about $13,700 at $10M revenue, $68,500 at $50M, and $137,000 at $100M. Thirty days over costs a $50M brand roughly $2M in trapped cash.
- Public comps are the ceiling, not your target. Every company here is far larger than a $5-50M DTC brand and carries depth a focused brand does not need. A lean private brand should usually run below its public-comp benchmark, not at it.
Most operators obsess over CAC and contribution margin while a six-figure pile of cash sits in a warehouse counting ceiling tiles. Days inventory outstanding (DIO) is the metric that measures that pile, and it is the most underrated cash lever in ecommerce. DIO tells you how many days of stock you are holding before it sells, and it explains why some profitable-looking brands still run out of cash. This post maps DIO by vertical using public-company 10-K data, then puts a dollar figure on every day you sit above your category's floor.
What DIO actually measures (and why it is a cash lever)
Days inventory outstanding answers one question: if you stopped buying today, how many days would it take to sell through what you already own? The formula is simple. DIO equals period-end inventory divided by annual cost of goods sold (COGS), times 365. A brand holding $1M of inventory against $5M of annual COGS is running 73 days.
The number matters because inventory is cash that has changed form. You paid your supplier, the money left your account, and now it is sitting on a shelf instead of funding ads, payroll, or your next product drop. Every day that cash stays frozen is a day it cannot do anything else. That is why DIO is not an operational nuisance for the ops team to worry about. It is a balance-sheet decision that determines whether your P&L profit ever shows up as actual money in the bank, and it sits at the center of your cash conversion cycle.
When I talk to founders running brands in the $5M to $50M range, the disconnect I see most often, the gap a fractional CFO gets hired to close, is a healthy income statement sitting on top of an empty bank account. The profit is real. It is just trapped in stock. One founder I worked with had built a genuinely profitable jewelry brand, yet kept scrambling for cash every month. The first thing that jumped out was the inventory balance: roughly 250 days of stock, which is extraordinarily high for the category. The P&L looked fine. The cash conversion cycle was the problem, and DIO was the entire story.
The rest of this piece is about knowing where your category's floor sits, why two brands in the same category can land 80 days apart, and what each day above target actually costs.
The DIO benchmark map: from 26 to 168 days
Here is the spread across ten public retail and consumer brands, pulled from their most recent 10-K filings. The pattern is clean: perishability and replenishment frequency set the fast end, while gross-margin tolerance and SKU complexity set the slow end.
Food and grocery anchor the fast end. Sprouts Farmers Market ran 26 days in FY2024, because perishable goods, thin margins, and high-frequency replenishment structurally force fast turns. Pet consumables sit just behind: Chewy ran 36 days, helped by an autoship subscription base (roughly 80% of revenue) that makes demand predictable enough to replenish lean.
The middle band is where most apparel and footwear live. American Eagle ran 73 days on its trend-sensitive, fast-sell-through assortment; Crocs ran 77; and beauty specialty retail (Ulta, estimated) lands near 74, because a multi-brand retailer behaves more like a high-velocity aggregator than a single brand.
The slow end is soft goods and beauty CPG. Williams-Sonoma ran 118 days in home and furniture, Lululemon 122 on long-lead-time technical fabrics, Dick's Sporting Goods 142 as it built depth for its larger-format stores, and e.l.f. Beauty topped the list at 168 days (FY2026). High gross margins (60%+ in beauty) reduce the pressure to turn inventory fast, so the capital simply sits longer.
| Vertical | Company | Inventory ($M) | COGS ($M) | DIO (days) |
|---|---|---|---|---|
| Food/Grocery | Sprouts Farmers Market | 343 | 4,778 | 26 |
| Pet consumables | Chewy | 837 | 8,394 | 36 |
| Value apparel | American Eagle Outfitters | 702 | 3,522 | 73 |
| Beauty specialty retail | Ulta Beauty (est.) | ~1,400 | ~6,908 | ~74 |
| Footwear (branded) | Crocs | 356 | 1,692 | 77 |
| Mid-market apparel | Abercrombie & Fitch | 469 | ~1,587 | ~108 |
| Home/furniture | Williams-Sonoma | 1,332 | 4,129 | 118 |
| Performance apparel | Lululemon | 1,442 | 4,317 | 122 |
| Sporting goods | Dick's Sporting Goods | 3,350 | 8,617 | 142 |
| Beauty CPG/DTC | e.l.f. Beauty | 220 | 479 | 168 |
Returns are quietly eating your margin. See by how much.
Get our Real Cost of Returns calculator: plug in your numbers, see the true hit per return.
Check your inbox. We'll send the Real Cost of Returns calculator shortly.
Why the same category produces different DIOs
Category sets the floor, but it does not set your number. Two brands selling the same product can land 80 days apart depending on how they operate. The drivers that move DIO inside a vertical are the model (DTC versus wholesale), assortment breadth, owned inventory versus drop-ship, subscription versus single purchase, and the geography of the supply chain.
Chewy is the cleanest example. At 36 days, it runs roughly a third of the inventory days a typical owned-inventory pet accessories brand would carry (often 90 to 120 days), purely because autoship subscriptions make demand predictable enough to replenish on a tight cycle. Compare that to a slow-turn vertical that keeps building depth, and the divergence is stark.
Dick's DIO climbed from about 107 days in FY2022 to 142 in FY2025 as it added inventory depth for its new larger-format concept stores. Chewy held flat at 33 to 36 across the same four years. Same economy, same period, opposite trajectories, and the difference is structural rather than seasonal.
Lead time is usually the root cause when DIO runs hot in smaller brands. When I review a home-goods or apparel brand carrying too many inventory days, the diagnosis is almost always the same: long supplier lead times and a buying process anchored to last year's peak instead of rolling demand. One home-goods founder I sat with was effectively pre-funding four to six months of inventory before the first dollar of revenue arrived, because the lead time was four to six months and orders were sized to the optimistic forecast. The fix is rarely "buy less of everything." It is capping purchase orders against rolling demand and shortening the lead time you are forced to pre-fund.
Channel mix can override category entirely for smaller brands. Shopify-only brands under $10M tend to carry roughly 17 days of inventory, Amazon FBA brands average about 39, and multi-channel plus wholesale brands land near 60 (Eightx operating estimates from client benchmarking, not 10-K data). The same SKU has a different optimal DIO depending on how you sell it, which means for a sub-$10M brand, staying Shopify-first may move your inventory days more than any change in product category would.
What one extra day of inventory actually costs
This is where DIO stops being a ratio and becomes a dollar figure. The cash tied up by one extra inventory day is roughly your annual COGS divided by 365. Run the math across revenue bands and the lever becomes impossible to ignore.
At 50% COGS, a $10M brand freezes about $13,700 for every day it holds above target. A $50M brand freezes $68,500 a day. A $100M brand, $137,000. None of that is a one-time hit; it is the standing cash cost of being overbought, paid every single day until you sell through.
| Brand revenue | Annual COGS (50%) | Cash per extra DIO day | Cash if 30 days over target |
|---|---|---|---|
| $10M | $5M | ~$13,700 | ~$411,000 |
| $25M | $12.5M | ~$34,200 | ~$1,027,000 |
| $50M | $25M | ~$68,500 | ~$2,055,000 |
| $100M | $50M | ~$137,000 | ~$4,110,000 |
Look at the right-hand column. A $50M brand sitting 30 days above its category floor has roughly $2M of cash locked in stock. That is not a rounding error. It is a hire, a quarter of ad budget, or the buffer that keeps you off an expensive line of credit. Put another way, every 30 days of DIO improvement releases about 8% of annual COGS back into cash.
The inventory balance does not just cost you opportunity. It can cap your financing too. When I have worked with brands on an asset-based lending facility, the number the lender fixates on is inventory months on hand. One brand was carrying about six months of COGS in stock, and the question on the table was simply: what if it were three? The inventory balance directly drove how much the lender would advance. Six months of stock reads as a risk signal, not as a strength, no matter how good the revenue line looks.
Setting a DIO target for your brand
Start from your category floor, then adjust down for your channel mix and up for genuine lead-time constraints. Do not target the public-company average. Every brand in the benchmark table is far larger and carries more breadth than a focused private brand needs, so the public number is your ceiling, not your goal. Pair the day count with your inventory carrying cost so you are pricing the storage, capital, and obsolescence drag, not just the days.
Targets should also flex with the season. For most categories, DIO naturally rises into the back half of the year as you build for peak, then falls as you sell through. The right target is a curve, not a single number.
| Quarter | Typical DIO target band | What is happening |
|---|---|---|
| Q1 | 20-35 days | Post-holiday selldown; lean inventory |
| Q2 | 30-45 days | Replenish core; early seasonal builds |
| Q3 | 40-60 days | Pre-peak inventory build begins |
| Q4 | 60-90 days | Full peak depth in place for holiday |
The practical playbook is surgical, not wholesale. The pattern we see again and again is founders who try to fix DIO by slashing every order, which starves their bestsellers and tanks revenue. The better move is to rank SKUs A, B, and C by volume and margin. The C tail is where the dead cash hides: drop-ship those if you can, or clear them. Hold the B's to maybe eight weeks of cover, and the A's to twelve. You free liquidity without touching the products that actually drive the business.
Then set trigger rules and follow them. A SKU with no movement for 90 days is a markdown candidate. A SKU sitting at 180 days with no movement is a write-off conversation, not a "maybe it will sell" hope. Blended DIO hides both, because your fast movers average out the dead stock. Watch SKU age underneath the headline number.
DIO is not an operational footnote. It is the line that explains why a profitable brand can still run out of cash. Find your category's floor, price every day you sit above it, and treat the gap as exactly what it is: your own money, frozen, waiting for you to free it.
Sources and methodology
Primary data from SEC EDGAR 10-K filings. All DIO figures were calculated from audited annual reports using the formula DIO = (period-end inventory / annual COGS) x 365, with both line items taken from each company's most recent 10-K. Filings are publicly available through SEC EDGAR, including Chewy (CIK 1766502), Dick's Sporting Goods (CIK 1089063), and e.l.f. Beauty (CIK 1600033).
Ulta Beauty inventory is estimated. The SEC XBRL API did not return a standard inventory tag for Ulta, so inventory of roughly $1.4B was estimated from current-assets composition and COGS was derived as revenue minus gross profit. The ~74-day DIO for Ulta should be read as directional, not as a primary-source figure. Verify against Ulta's printed 10-K balance sheet before citing the exact number.
COGS definitions vary by filer. Lululemon reports cost of goods sold under a broader tag that includes occupancy and distribution costs, which inflates COGS slightly versus a pure product-cost basis and would make its product-only DIO somewhat higher. Abercrombie's recent filings did not tag a standalone COGS line, so its figure was derived from gross margin. These do not change the relative positioning across verticals.
Dick's Sporting Goods FY2022 trajectory point. The trajectory chart shows Dick's at approximately 107 days in FY2022. The pure EDGAR XBRL calculation for that period (inventory $2,297.6M / COGS ~$8,083.6M x 365) yields approximately 103.8 days; the 107-day figure used in the chart incorporates a blended estimate cross-checked against Perplexity/Finbox secondary sources and should be treated as directional for the trend line, not as a primary-source data point.
Period-end versus average inventory. These calculations use period-end inventory, not a trailing average. For filers with January or February fiscal year-ends (Chewy, Sprouts, American Eagle), year-end often coincides with a post-holiday inventory low, which can modestly understate DIO versus an average-inventory method.
Formula and cash-cost references. The DIO formula and the cash-per-day calculation follow standard working-capital methodology, cross-checked against the Wall Street Prep DIO reference and category-band context from eFulfillment Service's days-inventory benchmarks. The 50% COGS assumption is a midpoint of the 40-60% range typical for ecommerce brands.
Frequently asked questions
what is a good days inventory outstanding for an ecommerce brand?
It depends entirely on your category and channel. Fast-turn consumables (food, pet) should run 25-45 days; mid-turn categories (apparel, footwear, beauty retail) land in the 60-120 range; slow-turn soft goods and beauty CPG run 120-180. A Shopify-only sub-$10M brand can run as lean as 15-40 days. Use your vertical's floor as the target, not the public-company average.
how do i calculate days inventory outstanding?
DIO = (period-end inventory / annual cost of goods sold) x 365. So a brand holding $1M of inventory against $5M in annual COGS runs (1,000,000 / 5,000,000) x 365 = 73 days. Use ending inventory for a snapshot, or average inventory if your stock swings hard with the seasons.
why does beauty have such high inventory days?
Two reasons. Beauty CPG brands carry high gross margins (60%+), which lowers the financial pressure to turn fast, so a lot of capital just sits. And the category runs broad SKU assortments with shade and formula variants that each need depth. The result is brands like e.l.f. running 168 days (FY2026), the slowest of any major vertical.
how much does one extra day of inventory cost my business?
Roughly your annual COGS divided by 365. At 50% COGS, that is about $13,700 per day for a $10M brand, $68,500 for a $50M brand, and $137,000 for a $100M brand. Being 30 days over your target ties up 30 times that figure in cash you cannot spend.
what's the difference between DIO and inventory turnover?
They measure the same thing from opposite ends. Inventory turnover is how many times you sell through your stock in a year (COGS / average inventory). DIO converts that into days: 365 / turnover. A brand with 5x turns runs 73 days of inventory. Turnover is the ratio; DIO is the calendar version.
do public company benchmarks apply to my smaller brand?
Treat them as a ceiling, not a target. Every public company runs more SKU breadth and supply-chain complexity than a focused $5-50M brand needs, so they carry higher DIO. A lean private brand should usually beat its public-comp benchmark. If you are matching or exceeding the public number, you are almost certainly overbought.
at what DIO should i start marking down slow stock?
Use SKU age, not just blended DIO. A SKU with zero movement for 90 days is a markdown candidate; 180 days with no movement is a write-off conversation. Blended DIO hides this, because your bestsellers mask the dead stock. Rank SKUs A, B, and C and act on the C tail first.
