CPG
Food Brand Inventory Planning: A CFO's Guide
Food brands plan inventory to sellable life, not physical quantity. Healthy days on hand run 30 to 60 for perishable chilled, 40 to 90 frozen, and 90 to 150 shelf-stable. Cap safety stock at half of remaining shelf life, and never order more than you can sell before the code date.
Key Takeaways
- Food turns inventory roughly 4.5x to 20x a year (about 18 to 82 days on hand), versus near 170 days for beauty. Across six public food comps, shelf life drives almost the entire spread: Vital Farms (eggs) runs 18 days, Hain Celestial (broad ambient) runs 82.
- Eightx's working-capital benchmark puts packaged food at ~38 days of inventory vs ~168 for non-perishables. Treat 38 days as an aggressive, spoilage-constrained floor. Most DTC food operators with cold-chain or MOQ constraints land between 38 and 90.
- The $5-20M revenue band is the inventory danger zone: days on hand can creep to 120-240 when SKU count outruns planning. That is where most food-brand cash crunches start.
- Safety stock follows the standard service-level formula but gets a hard spoilage cap: never hold more than ~50% of remaining shelf life at receipt, and never let EOQ exceed demand during shelf life.
- Retailers can reject good product on the dock. The one-third / two-thirds rule means ~67%+ of shelf life must remain at receipt, so transit time eats into the inventory you can actually sell. FSMA 204 lot-level traceability is enforceable from July 20, 2028.
For most consumer brands, inventory planning is a working-capital problem. For a food brand it is a working-capital problem with a countdown timer attached. Shelf life caps how much you can safely own: you can only buy what you can sell before the code date. That single constraint is why food turns inventory roughly 4.5x to 20x a year (about 18 to 82 days on hand) while a beauty brand sits near 170 days. The whole game is sellable life, not physical quantity, and the standard CFO toolkit has to be re-tuned around that clock.
Why food inventory planning has a clock the other verticals don't
Inventory days (DIO, the average number of days a unit sits before it sells) is the single number that defines your cash cycle. In most verticals you can let it drift and the cost is trapped cash. In food, drift also means spoilage, markdowns, and product rejected at the retailer's dock. The clock is real, and it is short.
The vertical comparison makes the gap obvious. Food and beverage CPG carries far fewer days of inventory than the high-inventory consumer verticals, around 114 median days in the public comps, versus roughly 145 for apparel and 170 for beauty. Perishability forces a faster clock whether the operator likes it or not.
There are two valid "food inventory days" numbers, and they are not in conflict. The ~114-day figure is the public-company median, inflated by large ambient portfolios and global-expansion stockpiling. The ~38-day figure from Eightx's working-capital benchmark is the aggressive, spoilage-constrained operator target for packaged food, against ~168 days for non-perishables. Use 38 as the floor you steer toward and 114 as the context for where big public players actually sit. Your real target lives between them, set by your shelf-life class.
This is the thesis the rest of the post builds on: you plan to sellable life, not to physical quantity. For the full margin and turns picture behind these numbers, the food brand financial benchmark report is the pillar this guide gates on, and the cross-vertical inventory-days analysis carries the apparel, beauty and eyewear detail. If you want a second set of eyes on your buy, that is what our fractional CFO services are built for.
What "good" inventory days looks like for your shelf-life class and stage
There is no single food number. Your healthy band is set by two things: shelf-life class and revenue stage. Perishable chilled and fresh products target roughly 30 to 60 days. Frozen and short-life products run 40 to 90. Shelf-stable products can sit at 90 to 150 without the same spoilage exposure.
Revenue stage layers on top. Lean $0-5M operations commonly run 60 to 120 days. The $5-20M band is the danger zone, where days on hand can creep to 120 to 240 because SKU count outruns planning capacity. Disciplined $20-50M brands with real sales-and-operations planning pull back to 90 to 180, and scaled $50M+ food brands target around 50 to 115.
When I talk to founders running a brand in that $5-20M band, the thing they keep saying is that the SKU list grew faster than anyone's ability to plan it. Each new flavor or size felt cheap at launch, and then suddenly there are 80 SKUs, half of them slow, and the inventory balance is double what the revenue justifies. We have seen a wholesale brand scale from $30M to $80M while carrying a few million dollars stuck in a hard-to-find, heavily-discounted bucket the whole way up. That is the pattern we see again and again: the cash crunch isn't a demand problem, it's a planning-capacity problem.
The public comps prove the shelf-life-drives-turns thesis cleanly. Vital Farms (eggs and butter, short shelf life) turns inventory 20x a year at about 18 days on hand. Hain Celestial, a broad ambient portfolio, turns 4.5x at about 82 days. A sub-$50M DTC food brand won't see those exact turns, but the direction is the lesson: the shorter your shelf life, the faster your clock has to run.
| Company | Ticker | Revenue ($M) | Inventory turns | Days inventory (DIO) | Shelf-life profile |
|---|---|---|---|---|---|
| Hershey | HSY | 11,693 | 6.2x | 59 | Ambient confectionery |
| BellRing Brands | BRBR | 2,317 | 5.4x | 68 | Ambient shakes/powders |
| Simply Good Foods | SMPL | 1,451 | 6.5x | 56 | Ambient nutrition |
| Utz Brands | UTZ | 1,439 | 10.7x | 34 | Ambient snacks (faster DSD) |
| Hain Celestial | HAIN | 1,560 | 4.5x | 82 | Broad ambient portfolio |
| Vital Farms | VITL | 759 | 20.0x | 18 | Perishable (eggs/butter) |
Turn dead stock into a 90-day recovery plan.
Get our free Inventory Optimization AI: one Shopify export in, a SKU action plan out.
Check your inbox. We'll send the free Inventory Optimization AI shortly.
Safety stock and reorder points, re-tuned for perishables
Safety stock is the buffer that protects you against demand and lead-time variability. The formula food brands should start from is the standard service-level one: safety stock = z times the standard deviation of demand over lead time. The z-score is your service-level dial: 1.28 buys 90% service, 1.64 buys 95%. When both demand and lead time vary (you are co-packing, or importing an ingredient), use the combined form: SS = z times the square root of (demand-variance times lead time plus lead-time-variance times average demand squared).
Then comes the perishable adjustment that the textbook leaves out. Safety stock you can't sell before the code date isn't safety, it's pre-committed spoilage. So cap it: on core SKUs, target 90 to 97% service, but never let safety stock push days on hand above about 50% of remaining shelf life at receipt. The buffer protects revenue only up to the point where it starts guaranteeing write-offs.
The reorder point ties it together: ROP = (average daily demand times lead time) + safety stock. For short-life SKUs you recalculate it weekly, because the gap between lead time and shelf life is narrow enough that a stale ROP either stocks you out or buries you.
When we've worked through this with operators, the answer they often don't want to hear is to order more often. More rolling, weekly purchase orders are a time killer to manage, but they give you the best chance to optimize inventory in a way that you don't run out and don't over-buy. Shorter review cycles beat a better forecast model almost every time, because perishable demand is too noisy to forecast to the unit anyway. A realistic SKU-week target is 70 to 85% accuracy (roughly 20 to 30% MAPE); chasing more than that is wasted effort.
The MOQ trap: EOQ when the product can expire
Economic order quantity (EOQ) is the order size that minimizes the combined cost of ordering and holding. The standard formula is the square root of (2 times demand times order cost, divided by holding cost). It assumes one thing food brands can't: that product never goes bad.
For perishables you need a Modified Wilson's model that adds a deterioration rate, a disposal cost for unsold units, and a purchase probability that falls as product nears expiry. The practical takeaway is simpler than the math: hard-cap the order so it never exceeds demand during shelf life. If EOQ tells you to buy more than you can sell before the code date, the formula is wrong for your product and the excess is guaranteed spoilage.
This is where the MOQ trap bites. A supplier's minimum order quantity, or the price break for a bigger run, is built to lower your unit cost. But a bigger run raises your inventory balance and your write-off risk. When I talk to founders at this stage, the ones who get out of trouble are the ones who stop optimizing the wrong number. One operator put it as deciding to hell with bringing the cost down, and instead bringing the amount on hand down. He ran bi-weekly orders for an entire year and kept a super low balance of inventory. He paid more per unit and came out ahead, because the trapped cash and the binned product cost more than the price break ever saved.
The counter-move is concrete: where spoilage risk is real, bias toward smaller, more frequent purchase orders that bring the inventory balance down, even at a worse unit cost. Rank SKUs A, B and C, hold tight buffers only on the A's, and let the slow C's run lean or drop to drop-ship.
| Lever | Formula | Perishable adjustment |
|---|---|---|
| Days of inventory on hand | (Avg inventory / COGS) x 365 | Target by shelf-life class (30-60 perishable; 90-150 shelf-stable) |
| Inventory turns | COGS / Avg inventory | Keep above ~5x; spoilage risk rises below it |
| Safety stock (demand variability) | z x sigma over lead time | Cap at ~50% of remaining shelf life at receipt |
| Safety stock (demand + lead-time variability) | z x sqrt(sigma_D squared x L + sigma_L squared x D-bar squared) | Use when co-packing or importing ingredients |
| Reorder point | (Avg daily demand x lead time) + safety stock | Recalculate weekly for short-life SKUs |
| EOQ | sqrt(2DS/H) | Cap at Q <= demand during shelf life (Modified Wilson's) |
The constraints that aren't in the spreadsheet: retailer date codes and FSMA 204
Two constraints live outside your planning spreadsheet and quietly shrink the inventory you can actually sell.
The first is the retailer date code. Under the one-third / two-thirds rule, many retailers require that at least two-thirds of shelf life remains when product arrives, so roughly 67%+ of life must be left at receipt (thresholds range 65 to 90%, and the US federal GSA standard is about 85%). Perfectly good product gets rejected on the dock if it shows up too aged. That makes your effective sellable inventory a function of remaining shelf life at the customer's door, not units in your warehouse. Transit time and receiving lag have to be built into both your safety stock and your max safe order, and you should allocate first-expiry-first-out (FEFO) so the oldest sellable stock always ships first.
The second is FSMA 204, the FDA Food Traceability Rule, enforceable from July 20, 2028. If you handle Food Traceability List items (leafy greens, melons, peppers, tomatoes, cucumbers, herbs, sprouts, soft cheeses and more) you must keep traceability-lot-code, critical-tracking-event and key-data-element records retrievable within 24 hours. The inventory consequence is direct: lot-level discipline raises the carrying cost of any stock you can't cleanly tie to a lot, and commingling lots makes a recall hold expensive. Brands that hold large, poorly-tracked buffers are the ones this rule penalizes, one more reason the lean, well-tracked, frequently-replenished position wins.
Plan to sellable life, not physical quantity. Shelf life caps how much you can safely own, the one-third / two-thirds rule shrinks that cap further by the time product reaches the dock, and FSMA 204 raises the carrying cost of anything you can't trace to a lot. The food brands that stay out of trouble size every order to the window they can actually sell into, and bring the inventory balance down even when it costs a little more per unit.
How to use these benchmarks
Start with the band. Pick your shelf-life class (perishable chilled 30 to 60, frozen/short-life 40 to 90, shelf-stable 90 to 150) and sanity-check it against your revenue stage, watching hardest if you sit in the $5-20M danger zone where days on hand balloon.
Then set the two dials. Choose a service level (90 to 95% on core SKUs) and apply the spoilage cap so safety stock never exceeds about half of remaining shelf life at receipt. Where spoilage risk is real, choose order cadence over the MOQ discount: smaller, more frequent POs bring the balance down. The pattern we see again and again is that there is usually one lever capping the whole system, and it is most often turns, forecast accuracy, or SKU count. Find that lever, fix it first, and the cash follows.
If you want a second set of eyes on which lever is capping your brand, that is exactly the kind of question a fractional CFO call is built for.
Sources and methodology
The public-comp inventory figures come from the latest available fiscal-year Form 10-K filings of six food brands via SEC EDGAR: Hershey (HSY), BellRing (BRBR), Hain Celestial (HAIN), Simply Good Foods (SMPL), Utz (UTZ) and Vital Farms (VITL). Inventory turns are cost of revenue divided by inventory, and days inventory (DIO) is 365 divided by turns. Two caveats: inventory uses the most recent reported balance-sheet value (some fiscal-year-end instant values tag to the prior period in XBRL), and fiscal-year ends differ across comps, so these are latest-available-fiscal-year figures, not a uniform calendar year.
The planning bands and food-vertical inventory-days numbers draw on Eightx's internal benchmark pillars. The inventory-days-by-DTC-vertical analysis puts food and beverage CPG median DIO at 114 days (range 51 to 180) against vertical medians of 40 (eyewear/collectibles), 145 (apparel) and 170 (beauty). The spoilage-cost benchmark supplies the ~38-day packaged-food target versus ~168 days for non-perishables, plus the one-third / two-thirds rule. The food financial benchmark pillar is the M3 report this guide gates on.
The safety stock, reorder point and EOQ formulas, and their perishable adjustments, were synthesized from CPG operator and academic supply-chain sources. The service-level z-scores and combined demand-plus-lead-time safety stock formula are standard. The perishable EOQ adjustment (a Modified Wilson's model with a deterioration rate, disposal cost, and decreasing purchase probability near expiry, hard-capped at demand during shelf life) comes from peer-reviewed sources including ScienceDirect (perishable EOQ with decreasing willingness to purchase) and Springer (EOQ under uncertainty with time-dependent holding cost), via Parallel.ai deep research.
Regulatory detail (FSMA 204, the Food Traceability List, the 24-hour record-retrieval requirement, the July 20, 2028 compliance date, and the GSA minimum-remaining-shelf-life standard) comes from FDA and GSA primary sources via Perplexity. A StoreLeads category pull (2026-06-14) of 213,403 global Shopify Food & Drink stores found only ~3.0% on Shopify Plus and ~4.2% running a subscription app, a proxy for how few food brands have built the booked demand that makes perishable forecasting tractable. That count is Food & Drink-wide, so it is used only as an operationalization proxy.
Operator-voice lines here are anonymized composites from Eightx's founder-call work and the published spoilage-cost research. No client, brand or individual is named.
Frequently asked questions
how many days of inventory should a food brand hold?
It depends on shelf-life class, not a single number. Perishable chilled and fresh products run roughly 30 to 60 days, frozen and short-life around 40 to 90, and shelf-stable 90 to 150. The Eightx packaged-food benchmark of ~38 days is an aggressive, spoilage-constrained floor; most DTC food operators with cold-chain or MOQ constraints land between 38 and 90 days.
how do you calculate safety stock for perishable food products?
Start with the service-level formula: safety stock = z times the standard deviation of demand over lead time (z is 1.28 at 90% service, 1.64 at 95%). If both demand and lead time vary, use SS = z times the square root of (demand-variance times lead time plus lead-time-variance times average demand squared). Then apply the spoilage cap: never let safety stock exceed about 50% of remaining shelf life at receipt.
what is the reorder point formula for a food cpg brand?
Reorder point = (average daily demand times lead time) + safety stock. For short-life SKUs you recalculate it weekly, not quarterly, because the lead-time-versus-shelf-life math moves fast. The point is the units on hand that trigger your next purchase order while there is still enough sellable life left to clear what you already have.
should i take the moq price break or order in smaller more frequent batches?
If the product can expire, the smaller, more frequent order usually wins even at a worse unit cost. A bigger run lowers cost per unit but raises the inventory balance and the spoilage write-off risk. The founder move we see most often is bringing the inventory balance down rather than the unit cost down, because trapped cash and binned product cost more than the price break saved.
how does eoq change for products with a short shelf life?
Standard EOQ (the square root of 2 times demand times order cost, divided by holding cost) assumes product never goes bad. For perishables you switch to a Modified Wilson's model that adds a deterioration rate and disposal cost, and you hard-cap the order so it never exceeds demand during shelf life. If EOQ comes out larger than you can sell before the code date, you buy less, because the excess is guaranteed spoilage.
what is the one-third two-thirds shelf life rule and how does it affect ordering?
Many retailers require that at least two-thirds of a product's shelf life remains when it arrives at their door (thresholds run 65 to 90%; the US federal GSA standard is about 85%). That means your sellable window is shorter than total shelf life, and transit plus receiving lag eats into it. Build that lost time into your safety stock and your max safe order, or you will ship product that gets rejected on the dock.
how does inventory planning affect cash flow for a food cpg brand?
Inventory is cash you can't spend until the product sells. Every extra 30 days of inventory on a perishable SKU is working capital locked up plus a rising odds of a spoilage write-off. Pulling days on hand down toward your shelf-life band frees cash and cuts the write-off line at the same time, which is why inventory days is one of the first levers we look at on a food-brand call.
how does fsma 204 traceability affect how much inventory i can hold?
FSMA 204, the FDA Food Traceability Rule, is enforceable from July 20, 2028. If you handle Food Traceability List items (leafy greens, melons, peppers, tomatoes, cucumbers, herbs, sprouts, soft cheeses and more) you must keep lot-level records retrievable within 24 hours. That raises the carrying cost of any stock you can't cleanly tie to a lot and penalizes commingling, which makes large, poorly-tracked buffers more expensive to hold and recall.
