For coffee roasters
One roast, every bag size, whole bean or ground.
Every bag of a roast, in every size and grind, comes from one batch, so count the batch by weight. Carboy keeps each roast as one pool: a 12 oz bag takes 12 oz from a 30 lb batch, and the 12 oz, 2 lb and 5 lb bags, whole bean and ground, are all recounted in Shopify from what is left.
Carboy is in Shopify App Store review. Leave your email and we'll write the day it's approved. Free for one pool.
- 250 g bag× 29
- 500 g bag× 14
- 1 kg bag× 7
Where coffee stock goes wrong
Three bag sizes in two grinds is six stock numbers for one batch of beans.
Grind splits the count
Grind is a variant, so the 12 oz whole bean and the 12 oz ground each get their own number. They're the same roast, yet a sale of one never lowers the other.
Roast day means recounting everything
A fresh batch means updating every size and grind by hand, on the day you have the least time for it, and a size or grind is easy to miss.
Subscriptions and cafés drain it quietly
Renewals and wholesale orders take beans from the same batch as retail bags. When the counts don't share a source, the shop keeps selling coffee that is already promised.
When to roast again
Roast too late and bags sit out of stock; roast too early and coffee waits on the shelf. Last week's sales and a guess only go so far.
How Carboy works from the roast
Size read from the name, grind left alone
“Whole bean / 12 oz” and “Ground / 12 oz” are both read as 12 oz from the same pool. The grind stays a choice for the customer; the beans stay one number for you.
For example: Whole bean / 12 oz → 340.2 g · Ground / 2 lb → 907.2 g
Every bag recounted after each order
Orders, refunds with restock and cancellations move the pool, then every size and grind gets the number of whole bags the batch can still fill.
For example: 4.35 kg left → 250 g × 17 · 500 g × 8 · 1 kg × 4
Renewals count like any order
Subscription apps that create a Shopify order for each renewal are counted, and so are café orders placed as draft orders once completed. If Shopify fails to send one, the nightly check finds it.
For example: 03:00 check · 1 missed order taken from the pool
What the open orders need
The To fill list adds up the bags waiting to ship for each coffee, so you know what to weigh out, or how much to roast, before you start.
For example: Ethiopia Guji · 6 × 12 oz · 2 × 2 lb · 8.5 lb in all
A date for the next roast
From the last four weeks of sales, Carboy estimates when each coffee runs out, and the daily email names those close to it at the hour you pick.
For example: Huila washed · 3.1 kg left · runs out in about 6 days
Three bags from a 30 lb roast
A 30 lb batch goes in, with half a pound kept back for cupping. One order buys a 12 oz whole bean, a 12 oz ground and a 5 lb whole bean.
- Order #41201 × 12 oz whole bean + 1 × 12 oz ground + 1 × 5 lb whole bean
- Takes6.5 lb
| In Shopify | Before | After | Change |
|---|---|---|---|
| Pool 0.5 lb kept back | 30.0 lb | 23.5 lb | −6.5 lb |
| 12 oz whole bean | 39 | 30 | −9 |
| 12 oz ground | 39 | 30 | −9 |
| 2 lb whole bean | 14 | 11 | −3 |
| 2 lb ground | 14 | 11 | −3 |
| 5 lb whole bean | 5 | 4 | −1 |
Each count = floor((pool − kept back) ÷ size)
Both grinds moved together because they are the same beans. The 2 lb bags lost three although none sold: 23 lb above the cupping reserve fills only eleven.
Questions roasters ask
Should the pool be green or roasted coffee?
Roasted. Carboy counts what goes into bags and doesn't convert green weight to roasted weight, so add each batch by what came out of the cooler.
Do whole bean and ground share the stock?
Yes. “Whole bean / 12 oz” and “Ground / 12 oz” both take 12 oz from the same pool, and both always show the same count.
Do subscription orders count?
Yes, when the subscription app creates a Shopify order for each renewal, as Shopify's own Subscriptions app does. Online, POS and completed draft orders all count the same way.
Can I sell before the batch is roasted?
If Shopify is set to keep selling when a variant is out of stock, yes. Sales past the end of the pool are flagged and listed in the next daily email, and the To fill list shows how much roasted coffee the waiting orders need.
What happens to my stock if I uninstall?
It stays as Carboy last set it. Nothing drops to zero, and from then on each bag goes back to Shopify's own count.
Set up your best seller before the next roast. One pool is free, with every feature.
Free · 1 poolStarter · $12 / month · 25 poolsPro · $29 / month · unlimited