Track ingredients and inventory lots
Receive ingredient lots, record their quality measurements, and trace what's on hand from purchase to consumption.
Inventory in Brewstiller is built around the lot — a single received quantity of one ingredient, with its own vendor lot code, dates, and quality measurements. The lot is the unit you consume from and the anchor you trace back to, so every bag of grain, box of hops, or drum of neutral spirit you take in becomes a lot you can follow from the loading dock to the batch it went into.
There are two related screens, and the difference between them matters:
- Ingredients is your catalog — the definition of each thing you work with (its name, category, and default unit). Nothing about quantity.
- Inventory is your lots — the actual quantities you have on hand, each one received against an ingredient from that catalog.
Both are available on every plan. On a hobby workspace they live in the Records group of the left-hand navigation (alongside Cooperage, Locations, and Vendors; Equipment sits under Day to day). Records starts folded, so choose its header to open it. On a commercial workspace the group is called Inventory.
Manage your ingredients
An ingredient has to exist before you can receive a lot of it or use it in a recipe. In the navigation, choose Ingredients. The screen has two sections, in this order:
- Your ingredients — what you added to this workspace. These are the ones you can edit.
- Platform catalog — a library that ships with Brewstiller (common malts, hops, yeasts, fruits, additives, and some packaging items). These are shared across every workspace, so they're read-only: use them anywhere, but you can't change them, and they have no Edit button.
Each section lists every ingredient's Name, Category, and Default unit.
Two controls above the sections apply to both:
- Search — type part of a name (the box reads Search ingredients by name…). The search runs on the server against your whole catalog, not just the rows already on screen, so it's how you find an entry that isn't visible. Each section reports its own result, so a search that matches a catalog entry but none of yours says exactly that.
- Show platform catalog — ticked by default. Un-tick it to hide the catalog section and work with just your own entries.
Both sections load a page at a time. When a section has more to show, a Load more button appears below its table — choose it to fetch the next page, which is added below what's already on screen. This is how you reach the rest of a large platform catalog without scrolling being your only option; you can also search by name to jump straight to an entry. Your own section is read separately from the catalog, so it always lists every one of your entries, regardless of how large the catalog is or how many pages you've loaded of it.
Add an ingredient
Add your own entry when the platform catalog doesn't have what you need. Search first so you don't create a duplicate of something that already ships.
- On Ingredients, choose Add ingredient (top right). A dialog headed New ingredient opens. (The empty state under Your ingredients offers the same button.)
- Fill in the Name, choose a Category, and set the Default unit — the unit you normally measure this ingredient in. Choosing a category suggests a sensible default unit (grain → lb, hops → oz, and so on), which you can change.
- Everything else is optional and hidden behind Advanced (optional): Density (g/mL), Allergens, Organic certified, and Kosher certified.
- Choose Add ingredient to save. The new entry appears under Your ingredients.
Correct an ingredient
- On Ingredients, find the entry under Your ingredients and choose Edit on its row. Platform-catalog entries can't be changed and so have no Edit button — if what you want to fix is a catalog entry, add your own ingredient and use that instead.
- Adjust the fields and choose Save changes.
- If someone else changed the same ingredient while you had the dialog open, the save is refused with Someone else changed this ingredient while you had it open. — the form then shows their saved values, so reapply your change and save again.
If you don't have permission to manage materials, the dialog says so when you save (You don't have permission to edit ingredients.) and an admin needs to make the change.
If you have read-only access to materials, the dialog tells you so when you try to save, and an admin needs to make the change for you.
View your inventory
- In the navigation, choose Inventory. The list shows every lot with its Vendor lot code, Ingredient, On hand, Status, when it was Received, and when it Expires. The On hand amount (and, on a lot's detail page, its received amount) is shown in your workspace's preferred measurement units (see Settings → Measurement units). A lot due within 30 days, or already past its date, carries a small badge next to the Expires date — Expires soon or Expired. It only shows on a lot that still has quantity on hand and hasn't left the workspace: a consumed or transferred-out lot carries no cue no matter how old its date is, and a lot whose Status already reads Expired isn't given a second badge saying the same thing next to the date.
- Narrow the list with the controls above the table:
- Search — type part of a vendor lot code (the box reads Search lots by vendor lot code…).
- Status — All statuses, Active, Consumed, Transferred out, or Expired.
- Choose a lot's row, or the View button on that row, to open it.
- Choose Load more at the bottom to fetch the next page if there is one.
A new workspace shows No lots yet, pointing you to the Receive lot button at the top of the page. If a search or filter matches nothing, you'll see No lots match your filters instead — clear the filters to see everything again.
When a lot becomes Expired
A lot is good through its expiration date, so it stays Active for the whole of that day and only turns Expired the day after — and that changeover happens at midnight where you are, not at midnight UTC. A lot expiring today is still yours to use right up to the end of your day, and it still counts toward the Reorder point card's on-hand total on the ingredient's lot page until then.
Two things follow from this that are worth knowing:
- The date on screen and the Status column always agree. The Expires column shows the calendar day you typed when the lot was received; it is never shifted by a time zone.
- If you leave the Inventory list open overnight, refresh the page (or change a filter) after midnight to see the statuses for the new day. Brewstiller doesn't re-check the clock on a page you're not touching.
If you work with people in other time zones, each person's screen answers for their day — so a colleague further east may see a lot flip to Expired before you do. Both are correct; the lot's recorded expiration date is the same for everyone.
One exception worth knowing: the nightly low stock email is sent by a background job that has no person (and so no local day) attached to it, so it uses UTC. If a lot is on its last day, that email can call an ingredient low a few hours before the Reorder point card on your screen stops counting it. The card is the one that answers for your day.
Receive a lot
Receiving is how a new quantity of an ingredient enters your inventory.
Prerequisite: the ingredient you're receiving must exist in your ingredient catalog so you can pick it in the form (the catalog combines your workspace's ingredients with the shared platform catalog). If it isn't there yet, add it under Ingredients first — see Manage your ingredients above.
- From the Inventory list, choose Receive lot (top right). The heading changes to Receive lot.
- Under Lot receipt, fill in:
- Ingredient (required) — pick the ingredient this lot is. Leave it on Select an ingredient… until you've chosen one.
- Vendor (optional) — pick the supplier this came from, or leave it on No vendor. (Add suppliers first under Vendors — see Manage vendors.)
- Vendor lot code — the code from the supplier's paperwork (for example, CMG-2026-0042). It's optional but recommended: it's what makes lot tracing work.
- Received quantity — how much came in (a number greater than zero).
- Unit (required) — choose the unit that quantity is in from the list (pounds, ounces, kilograms, grams, U.S. gallons, liters, milliliters, or Each; your workspace's measurement system decides which come first). When you pick an ingredient, it's pre-filled with that ingredient's default unit (where it has a standard one), and you can change it.
- Received at — the date and time it arrived. Defaults to now.
- Under Price & storage, optionally add:
- Price per unit (optional) and Currency (USD, EUR, GBP, CAD, AUD, or JPY) — the cost of a single unit, which feeds ingredient costs later.
- Harvest date (optional) and Expiration date (optional).
- Storage location (optional) — a free-text note like Cold store A.
- Under Quality measurements, record any measurements that apply. The fields you see depend on the ingredient's category — for grain you'll see Moisture (%) and Protein (%); for hops, Alpha acid (%) and Beta acid (%); for yeast, Viability (%) and Cell count (billion); and so on. If you haven't chosen an ingredient yet, this section says Choose an ingredient to record category-specific quality measurements. Some categories have no standard measurements, in which case there's nothing to fill in.
- Choose Receive lot to save (or Cancel to go back without saving). On success the lot joins your inventory list. Use Back to lots to return at any time.
If you have read-only access to inventory, the form tells you so (You have read-only access to inventory. An admin can receive lots.) and an admin needs to receive the lot for you.
Open a lot's details
- From the Inventory list, open a lot with its row or View button.
- The page is headed by the lot's vendor lot code (or just Lot if it has none), a status badge, and the ingredient's name.
- Lot details shows the numbers you recorded: On hand, Received quantity, Received, Expires, Harvest date, Storage location, Vendor, and Price per unit. If the lot is due within 30 days or already past its expiration date, an Expires soon or Expired badge sits beside the Expires date (the same rule as the list — see When a lot becomes Expired above).
- Reorder point shows the low-stock threshold for this lot's ingredient and lets you set or change it — see Set a reorder point below.
- Quality measurements lists whatever measurements you captured (or No quality measurements recorded. if none).
- History lists what's happened to this lot since it was received — see See a lot's history below.
- If the lot has been transferred to another workspace, a Transfer-out card shows where it went.
Use Back to lots to return to the list. If a lot can't be found, the page shows Lot not found — it may have been removed, or you may not have access to it.
Correct a lot's on-hand quantity
Use this when a recount, a spill, or a mis-entered receipt means the recorded on-hand figure is wrong.
- On a lot's detail page, choose Correct quantity.
- In the Correct the on-hand quantity dialog, enter the Corrected quantity (in the lot's own unit) and a Reason — for example, Recount after brew day. Both are required; Brewstiller says so if you try to save without a reason (The correction is kept with its reason, so the reason can't be blank.). A note above the fields explains that the received quantity stays as you originally recorded it — only the on-hand figure changes.
- Choose Save correction, or Cancel to back out.
The corrected on-hand figure appears immediately, and the correction — with your stated reason — joins the lot's History card.
See a lot's history
The History card on a lot's detail page is its change log: every time the on-hand figure moved, and why.
Each entry shows what happened — Received, Corrected, Consumed, Transferred out, or Updated (a catch-all for a change the card doesn't have a more specific word for) — with the quantity involved, when it happened, and who did it, when Brewstiller can attribute it to a workspace member. A Corrected entry also shows the reason you gave (see Correct a lot's on-hand quantity above) — the one thing this card exists to surface: before it existed, a correction's reason was kept but never shown back to you.
Entries are listed newest first. Choose Load more at the bottom if there are more than fit on one page. A lot with nothing recorded against it yet shows No changes yet.; if the history fails to load, the card says so and offers a retry rather than showing the calm empty message (which would otherwise look like your correction was lost).
Set a reorder point
A reorder point is a low-stock warning for one ingredient — a threshold that, once your on-hand quantity falls below it, gets you a warning email. It applies to the ingredient, not to one lot, so setting it from any lot of that ingredient sets it everywhere.
- Open any lot of the ingredient (see Open a lot's details above) and find the Reorder point card. It shows Warn me below (the stored threshold, or Not set) and Stock standing (Below the reorder point, At or above the reorder point, or No low-stock check runs until a reorder point is set).
- Choose Set reorder point (or Change reorder point if one is already set).
- Tick Warn me when this ingredient runs low, then fill in Warn me below — a quantity greater than zero — and its Unit. Use the same kind of unit your lots of this ingredient are recorded in; the dialog says so, because a weight threshold checked against volume lots (or the other way round) can only be compared as plain numbers, with no unit conversion. To turn an existing threshold off instead, un-tick the checkbox — the dialog explains that no check runs while it's off, and any low-stock warning already standing for this ingredient is cleared.
- Choose Save, or Cancel to back out.
This works the same way whether the ingredient is one of yours or from the platform catalog. A platform-catalog ingredient's card adds one line explaining that the threshold you set belongs to your workspace alone — nobody else who uses that shared ingredient sees it, and it watches the lots you already have.
The daily low-stock check adds up your on-hand quantity across every active lot of the ingredient — a lot that's transferred out, past its expiration date, or already at zero doesn't count. If someone else changed the ingredient while your dialog was open, Brewstiller tells you so (This ingredient changed elsewhere.) — close the dialog, then set the reorder point again if you still want to. Setting a reorder point needs permission to manage materials; without it Brewstiller says so when you try to save (You don't have permission to change reorder points.) and an admin needs to set it for you.
Record an external purchase
Some things you buy aren't ingredient lots. A drum of neutral grain spirit bought in to make gin, a tote of juice, a pail of concentrate — you buy it once, use it, and you're done. Those are external purchases: a single, one-off receipt you can draw from on a batch stage without setting the material up as a catalog ingredient first.
You'll be sent here from the batch screen. When you record inputs on a stage and choose the External purchase source type with none recorded yet, the picker tells you "Record an external purchase in Inventory first." — this is the screen it means.
See what you've bought
- From the Inventory list, choose External purchases (top right). The list shows each purchase's Description, Quantity, Proof, Vendor, Price, and when it was Received.
- Search by description with the box above the table (Search purchases by description…).
- Choose Load more at the bottom to fetch the next page if there is one.
A new workspace shows No external purchases yet, pointing you to the Record purchase button at the top of the page. Use Back to inventory to return to your lots.
Record one
- From External purchases, choose Record purchase.
- Under What you bought, fill in:
- Description (required) — how this material shows up when you draw from it on a batch stage (for example, Neutral grain spirit, 190 proof).
- Quantity (required) — how much you bought, greater than zero.
- Unit (required) — choose the unit that quantity is in from the Volume or Weight list (for example, Litres (l) or Pounds (lb)). Every draw from this purchase is measured in the unit you pick here, so it can't be changed afterwards.
- Proof (optional) — US proof from 0 to 200 for a spirit. Leave it blank for anything that isn't one.
- Under Receipt, fill in:
- Vendor (optional) — the supplier you bought from, or No vendor. (Add suppliers first under Vendors — see Manage vendors.)
- Received at (required) — the date and time it arrived. Defaults to now.
- Purchase price (optional) and Currency — what the whole purchase cost, not a price per unit. (The lot form above asks for a price per unit; this one doesn't.) Costing applies the total in full the first time you draw from the purchase.
- Choose Record purchase to save, or Cancel to go back without saving. On success you're returned to the list with the new purchase on it — and it's immediately available as an External purchase source when you record inputs on a batch stage.
A purchase is a single immutable receipt: once recorded it can't be edited or deleted, so check the quantity and unit before you save.
The list is ordered by when you recorded each purchase, newest first — so something you just entered sits at the top even if it arrived weeks ago.