CPG inventory management: the operator’s playbook

What inventory management in CPG actually involves: co-packer receiving, distributor sell-through, multi-temp cycle counts, and reorder math that respects a code date.

By Andres Rodriguez Rey Updated July 30, 2026 7 min read

Tuesday, 7:40am. The co-packer’s truck backs in, and the load is 40 cases short of the bill of lading. Your distributor needs a number for the fall promo by noon. And your best seller is due for a reorder — but the co-packer's minimum run is more than you can sell before it expires.

That’s what inventory management in CPG means day to day. None of it is a warehouse problem — it’s a cash problem with a warehouse attached: you pay the co-packer at the run, and the distributor pays you 30 to 60 days later, minus deductions. The cash leaks in four places: the receiving dock, the distributor relationship, the count program, and the reorder decision.

How do you handle short shipments from a co-packer?

Count every pallet against the bill of lading (BOL), note variances before the driver leaves, and log the short the same day. Then track the pattern per run: fill rate, short frequency, response time. One short is noise. A trend is a negotiation.

The dock is the only point where you still hold the cards: once the driver leaves with a signed BOL, it’s your word against their paperwork. Count physical cases against the BOL — not the PO or pallet tags — note every exception before signing, divert anything damaged or short-dated to a hold area, and log the variance the same day. Then turn those logs into a per-run scorecard.

How do you know if a distributor — or a broker — is earning their margin?

Measure sell-through, not sell-in. What a distributor orders is their forecast; what moves from their warehouse to stores is demand. A broker earns commission when the accounts they opened produce velocity you wouldn’t have won alone. Run that math per relationship, quarterly.

The gap between what a distributor orders and what they’ve sold is your risk: unsold stock comes back older and closer to its date. Plan production against what actually leaves their warehouse for stores — their depletion data — not their purchase orders. A 2,000-case order when only 240 a week are moving is a markdown you can see coming. Apply the same test to a broker: how much margin is genuinely new business they brought, versus accounts you already had? Renew on that number, not loyalty.

How often should you count inventory in a multi-temperature warehouse?

Count more often where a mistake costs the most and where counting is cheapest, not on a fixed calendar. Cooler A-items turn fast, so count them weekly. The freezer is the priciest place to count: short sessions, monthly on the A-items. Everything ambient rotates through a cycle count.

A count is a purchase: spend counting hours where an error costs most. Count at low tide, the day after a big pickup, and investigate variances the same day before a five-case gap becomes a ghost. Give every SKU a fixed pick face, oldest-date-first, and find the slow movers in cold space.

How do you calculate reorder points for products with a shelf life?

Two numbers. The classic reorder point (average daily demand × lead time, plus safety stock) tells you when to reorder. A shelf-life cap tells you how much: never more than weekly velocity × your selling window. When the co-packer’s minimum run is bigger than that cap, every run leaks cash.

The constraint that dominates a coded product is the selling window: the days you have to sell a batch before your channel stops taking it at full price. The formula is code-date life − days used before you receive it − your channel’s remaining-days floor − transit. Distributors won’t receive below that floor, so pull it from your agreement. On a shelf-stable beverage:

Worked example · order sizing with a code date (hypothetical)
LineValueWhere it comes from
Code-date window at production180 daysProduct spec
Days consumed before your receipt20 daysFrom the scorecard
Distributor’s remaining-days floor90 daysDistribution agreement
Transit to distributor7 daysYour lanes
Your selling window180 − 20 − 90 − 7 = 63 days ≈ 9 weeksDerived
Weekly velocity400 unitsDepletion data
Maximum useful order≈ 3,600 units9 weeks × 400/week
Co-packer minimum run5,000 unitsCo-packer agreement
Structural overhang per run≈ 1,400 unitsExposed to markdown every run

Read the table bottom-up: 63 days of window at 400 units a week caps the useful order at 3,600 units, but the co-packer’s floor is 5,000 — so 1,400 units every run are born exposed to markdown, priced in the day you cut the PO. Four levers, best first: negotiate the minimum down (that’s what the co-packer scorecard is for); split the run so two SKUs share a changeover; grow velocity before production; or budget the overhang as a real cost.

When is it time to move off spreadsheets?

When the sheet stops being an answer and becomes an argument: variances you can’t win because nobody timestamped a count, two people holding different numbers for one pallet, reorders built on data last touched Thursday. The upgrade isn’t about features. It’s about making the numbers self-defending.

Everything here runs on spreadsheets, and early on it should. But each section leans on a record that has to hold up under dispute, and a spreadsheet holds records without defending them: no timestamp, no history, no link to the physical case. The first real system needs four things: batch tracking from the dock; oldest-date-first picking the system enforces (FEFO), not just suggests; holds that actually stop movement; and counting at the pick face.

What should you do next?

The whole playbook as actions, whiteboard-ready.

Receiving

  • Count cases against the BOL at every receipt, annotate exceptions before the driver signs, log variances same-day.
  • Keep a per-run co-packer scorecard: fill rate, on-time, shorts, doc accuracy, shelf life at receipt, damage, response time.

Distributor & broker

  • Get depletion data from each distributor; size production to units per store per week, not to POs.
  • Before renewing a broker: which accounts they opened, the margin those accounts produce net of promo support, whether it beats commission.

Counting

  • Count cooler A-items weekly, frozen A-items monthly, ambient on rotation; count at low tide and chase variances the same day.
  • Give every SKU a fixed pick face and move stock oldest-date-first.

Reorder math

  • Pull the remaining-days floor from each distribution agreement and compute your selling window.
  • Cap every order at selling window × weekly velocity. If the co-packer minimum exceeds that cap, pick a lever: negotiate it down, split the run, grow velocity, or budget the markdown.

Tooling

  • Stay on spreadsheets until the records can’t defend themselves, then look for batch tracking, enforced FEFO, hard holds, and pick-face counting.

Frequently asked questions

What makes inventory management in CPG different?

You rent most of the supply chain. A co-packer owns the run schedule and the minimum order quantity, distributors sell most of the volume, and every case carries a code date — so the job is defending cash across three handoffs you do not control, not optimising a warehouse you do.

What should a co-packer scorecard include?

Seven fields, all capturable at your dock: fill rate, on-time delivery, short-ship frequency, document accuracy, remaining shelf life at receipt, damage on arrival, and variance response time. Review the trend quarterly.

Should I restock against distributor orders or depletion data?

Depletions. A PO is forecast plus buffer; depletions show what actually moved to stores. Size production to units-per-store-per-week, and treat a PO that outruns that velocity as a question to investigate before you scale.

If the scorecard and the window math sound like your Tuesday

Key Space is built for this operating layer: batch tracking from the dock, fail-closed FEFO, holds that actually stop movement. Forty-five days, no card.

Start your 45-day trial — no card