ClearStock is live on the Shopify App Store.Install free →

← All blogs

Guides11 min read

Coffee roaster inventory: green beans, roast loss, and freshness clocks

A roastery runs on two clocks: green beans that age in months and roasted stock that peaks in weeks. Roast-loss math, freshness dating, a weekly ledger.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

The scale is the first and last stop of every roasting day. You charge 12.0 kg of green into the drum and drop 10.1 kg of roasted beans twelve minutes later, and the 1.9 kg that vanished is not a rounding error — it is the gap between what you paid for and what you can sell, it repeats on every batch, and a roastery that never weighs it is pricing coffee on vibes.

Coffee runs two clocks at once. Green beans age in months and get bought in lots; roasted beans peak in weeks and get remade from scratch every roast day. The fix is a two-ledger habit: track green and roasted separately, weigh every batch so loss stops being a guess, and date every bag so freshness becomes a schedule instead of a hope. This guide walks through each with worked numbers you can copy into a spreadsheet. If you also sell packaged food at retail — sauces, jars, snacks — the general food-and-beverage mechanics live in the food and beverage inventory guide; this piece stays inside the roastery.

Green and roasted are two different inventories

Green coffee Roasted coffee
You acquire it by 30–69 kg bags or boxes, bought by lot and harvest year Making it, weekly or daily
It ages in Months to about a year, stored dry and sealed Weeks at peak — a window you set and enforce
Unit of measure Kilograms per lot Bags and tins per SKU
Cost basis Price per kg, freight and duty on top Green cost ÷ roasted yield, plus packaging
Count cadence On arrival, then quarterly Weekly — it's the shelf that moves
Where it leaks Lots aging past crop year Bags aging past your window; stale shelf

Green is procurement: lots, samples, import lead times. Roasted is retail: velocity, dating, shelf turns. Roasteries that treat them as one inventory reorder bags when the bin looks low and green when the importer mentions new crop — both triggers arrive after you needed them, and both fail without an alarm.

Roast loss, worked with your own ratio

Every batch shrinks between charge and drop, almost entirely water leaving the bean — roasting physics, not supplier variance. The percentage shifts with roast degree and profile, which is exactly why you measure it per profile instead of borrowing a number. The measurement is two weigh-ins per batch.

Worked example with illustrative numbers:

Charge: 12.0 kg green. Drop: 10.14 kg roasted. Loss = (12.0 − 10.14) ÷ 12.0 = 15.5% Green cost $9.00/kg (illustrative) → batch cost = 12.0 × 9.00 = $108.00 Cost per roasted kg = 108.00 ÷ 10.14 = $10.65/kg Packing 250 g bags: 10.14 ÷ 0.25 = 40 bags (10.0 kg), leaving 140 g for cupping samples Green cost per bag = 10.65 × 0.25 ≈ $2.66 (illustrative, before packaging and labor)

Two decisions feed on this number:

  • Pricing. There's $2.66 of coffee in a bag that also carries packaging, labor, and margin. If the ratio is a guess, the price floor is too.
  • Reordering green. Flip the math when planning a roast week. If you plan to pack 400 × 250 g bags, that's 100 kg of roasted output, and green required = 100 ÷ (1 − 0.155) = 118.3 kg. Order 100 kg of green against a 100 kg roast plan and you come up short every week — the missing 18 kg is the loss you didn't carry.

Weigh charge and drop on the same scale, write both on the batch card, and compute the ratio per profile — light, medium, and dark profiles will land at different losses. Ten batches per profile gives you a real number; until then, budget roughly 15–18% (illustrative) rather than assuming zero.

The freshness clock: dating and aging out bags

Print the roast date on every bag, where the customer can see it. Best-by is then a policy decision, not an industry fact you can look up: set the window from your own cupping, write it down, and enforce it the same way every week. A window you don't enforce is worse than none, because it trains everyone to ignore dates.

  • Stamp and face the shelf. Roast date forward-facing. Customers who read dates reward the freshest shelf, and your staff can pull without asking.
  • Count with dates in hand. During the weekly roasted count, separate bags by roast week. Anything past the window leaves the front shelf that day.
  • Give aged stock a destination. Cupping room, staff bags, a wholesale account that doesn't mind a slightly older roast, a discount bin — a bag with a plan is inventory, a bag without one is waste. The general playbook for moving it lives in the dead stock clearing guide.

The clock also changes what velocity means. A bag selling 3/day on week-old stock may crawl at 0.5/day at week nine — the slowdown is the product aging, not demand dying. Read roasted velocity against roast age, or you will mis-order twice over: panic-roasting a shelf that was about to move, and under-roasting a blend that never got its fresh drop.

A weekly roasting ledger

One sheet, one row per batch. This is the whole template, with one filled illustrative row:

Batch Roast date Green lot Charge kg Drop kg Loss % Bags packed Shelf destination Notes
MON-1141 Nov 2 ETH-GUJI-25-11 12.0 10.14 15.5% 40 × 250 g Front shelf FC 9:40, first batch off new lot

The Friday ritual takes about 30 minutes: count the roasted shelf by SKU, separate by roast week, then compare bags packed this week against bags sold plus bags pulled for aging. Whatever the equation doesn't account for is your waste — damaged bags, cupping room use, and the ones that walked out in a tote. A roastery that tracks packed versus sold can tell spoilage from sales; one that doesn't just watches a number go down without knowing why.

The ledger also sets your ordering clock. Watch shelf depth in days of cover rather than raw bag counts, because 90 bags means nothing without the rate — the arithmetic is the same as any retail SKU and lives in the days-of-cover guide. Roasted stock with four days of cover and a twice-weekly roast schedule is fine; the same four days on a Monday-only roast plan is a Thursday problem.

Blends are recipes, not SKUs

A house blend doesn't exist in the drum — it exists in a ratio. If the blend is 60% lot A and 40% lot B, the real inventory is lots A and B, and the blend SKU is just what the customer buys. Keep the two layers separate on purpose:

  • Order green by component lot, never by blend velocity. A blend that "sells 20 bags a day" is actually a claim on 12 kg of one lot and 8 kg of another — and those lots run out in different weeks.
  • Record the recipe once per batch size and do the component math at roasting time, not at reorder time.
  • Count components physically on the same weekly cadence as roasted bags. Shopify counts will keep the blend SKU's units accurate — what they can't do is turn a blend sale into decrements across two green lots, which is what your ledger is for.

This is also why a surprise lot change deserves attention: the new lot won't roast at the old loss ratio, and the first batch off it is your chance to re-measure before forty bags go to the shelf at a stale cost.

Buying green: bags, lots, and lead times

Green buying runs on a slower calendar than retail, by an order of magnitude. The habits that keep it from sneaking up:

  • Order by lot, with samples. Coffee varies harvest to harvest, so cup the sample before the container arrives, not after. Keep a per-lot record: origin, producer, lot number, arrival date, and moisture if you measure it.
  • Carry the full import lead time. Green arrives on shipping schedules measured in weeks; reordering when the drum gets thin starts the clock too late. Set the trigger from lead time and burn rate using the trigger-line arithmetic, exactly as you would for any stocked good.
  • Split the exposure. One 60+ kg bag of a single origin is a commitment; two lots keep a bad crop or a delayed container from taking your flagship blend off the menu for a month.
  • Watch the crop calendar. New-crop arrivals and origin-year transitions are the two moments when your usual lot stops existing. The importer's email is your cue to plan the transition and re-baseline your ratios, not your cue to panic-order. Harvest calendars run the same season-window math other verticals plan around — snow and water windows in sporting goods being the loudest example (the sporting goods inventory guide works that clock from the shop side).

What Shopify handles for a roastery, plainly

As of November 2026, Shopify's native inventory counts units — bags, tins, cases — not kilograms and not roast dates. Unit-price display per kilogram exists on product pages, but charging by weight does not — the workarounds (fixed-weight variants, weight bands, weighing outside Shopify) are compared in the weight-based products guide — so the practical pattern is bag-based SKUs roasted to stock (Shopify Help Center, accessed November 2026). Two platform facts worth putting to work:

  • Counts are native; scheduling is yours. Native counts carry a planned date, so a recurring weekly count on the roasted shelf is a calendar entry you own. The count workflow that doesn't interrupt sales is covered in the Shopify inventory counts guide.
  • Dating is a tagging habit, not a feature. Roast dates and aging windows live in tags, metafields, or the batch card. Enforce them by ritual — no native report chases a bag past its window for you.

Packaged roasted coffee sold at retail also carries standard food-labeling duties — statement of identity, net weight, and an ingredient list on flavored blends — under FDA labeling rules (FDA guidance, accessed November 2026). Confirm your own jurisdiction's requirements before printing run.

Common questions

How much weight does coffee lose in roasting? Measure your own ratio rather than borrowing one — the typical range runs roughly 14–18% (illustrative) depending on roast degree, with dark profiles shedding more than light. The measurement is two weigh-ins per batch: charge weight, drop weight, then (charge − drop) ÷ charge. Ten batches per profile gives you a number you can price and order against.

How do I calculate green coffee needed for a roast plan? Divide the roasted target by (1 − loss ratio). For 100 kg of roasted output at a 15.5% loss: 100 ÷ 0.845 ≈ 118 kg of green. Ordering green equal to your roasted target shortchanges every batch by the loss, so the shortage surfaces as an unplanned mid-week roast or a blend you can't finish.

What shelf life should I print on roasted bags? There is no shared industry number to copy — set the window from your own cupping and print it as policy. Whole-bean windows of a few weeks to a couple of months are common practice (illustrative), and espresso blends often carry a little longer. What matters is enforcement: date every bag, face dates forward, and pull aged stock on schedule.

Should I count green and roasted coffee separately? Yes, on different cadences. Green moves slowly and gets counted on arrival plus quarterly; roasted moves weekly and gets counted every week, separated by roast date so aging bags get pulled on time. One blended inventory hides both leaks — lots aging past crop year and bags aging past your window.

How often should a small roastery reorder green? From lead time and burn rate, not shelf appearance. Green arrives on import schedules measured in weeks, so set a reorder point per lot: expected weekly green use times lead time, plus a buffer for crop transitions. Reordering when the drum looks thin starts the clock after you already needed it.

Next step

Tomorrow, weigh one batch at charge and at drop and compute the loss ratio. Then run the reorder math for your top blend — planned bags × bag weight ÷ (1 − ratio) gives the green kilograms you actually need, and the gap between that and what you normally order is money already leaking. Put both numbers on the batch card, set reorder triggers per lot with the reorder-point method, and start tracking shelf depth in days of cover per lot instead of raw bag counts.