Per-item lot numbers and expiry dates for pharma, food, and chemical manufacturers. Set FIFO, FEFO, or manual consumption per item; sweep expired stock out automatically every day; and trace any batch up and down its family tree when a recall lands.
Lot numbers, shelf life, FEFO, quarantine, and recall genealogy — switched on for the items that need it, left off for the items that do not.
Turn on batch tracking only for the items that need lot numbers — medicines, edible goods, chemicals. Each batch carries its own lot number and expiry date, and shows up in the Inventory Batches view with its genealogy graph.
Choose a consumption policy on each item. FIFO moves the oldest produced batch first; FEFO moves the earliest-expiry batch first, the right rule for perishables; MANUAL lets the operator pick the exact batch. Set shelf life in days and the expiry date is derived for you.
A standing list of every batch expiring inside a horizon you configure — 30 days by default. See near-expiry stock while there is still time to sell, discount, or move it, instead of discovering the loss at stock-take.
Once a day the system finds expired batches, moves them into a dedicated Expired warehouse so they can never be picked or sold, and posts the write-off. The entry is always dated today — never back-dated into a closed accounting period.
Stock that fails quality control parks in a quarantine warehouse, kept out of available stock so it cannot be picked for a sale or a production run. A QC decision then releases the batch into normal stock or rejects it.
Trace any batch in both directions: DOWN to the exact input batches it was made from, and UP to the finished batches it ended up in. The complete forward-and-backward trail an auditor or a recall team needs, assembled from your production history.
Expiry and recall exposure is where pharma, food, and chemical businesses lose money quietly — and where an auditor looks first.
When the item policy is FEFO, the earliest-expiry batch is always proposed first. The stock closest to its expiry date moves out the door before it ages, so write-offs from expired stock drop without anyone tracking dates by hand.
The daily sweep recognises the loss the moment a batch expires and stamps the entry with today’s date. Expired stock leaves the books in the current open period — your past GST filings and closed months stay untouched.
If a raw-material lot is flagged, trace up to find every finished batch that used it and exactly where each one went. You recall the affected lots, not your whole catalogue, and you produce the trail on demand.
The quarantine warehouse separates "received and counted" from "approved to use." Stock awaiting a QC decision exists on paper but is blocked from sale, which is exactly the control a pharma or food inspector expects to see.
For a pharma, food, or chemical manufacturer, a batch is not an accounting nicety — it is a legal unit. Two runs of the same SKU are different products the moment they carry different expiry dates, and the day a supplier flags a contaminated lot, your ability to find every place it went decides whether the recall costs you a few cartons or your whole inventory. Most small manufacturers still run this on paper: a register of lot numbers, a FEFO rule someone is supposed to follow, and an expiry write-off that surfaces months after the stock actually died.
ReadyBooks.ai moves all of that into the same system that runs your production and your books. Lot numbers and expiry dates are switched on per item, so only the goods that need traceability carry it. Consumption follows the policy you set — FIFO, FEFO, or manual — instead of an operator’s memory. A daily sweep clears expired stock out of circulation and writes it off in the current period, and the genealogy graph is assembled automatically from every production run so the recall trail is always there when you need it.
Because lot numbers, expiry dates, the consumption policy, and the genealogy graph all live on the same item record and the same production runs, the recall trail and the audit answer are a by-product of normal operation — not a separate compliance project you assemble after the fact. The day an inspector asks or a supplier flags a lot, the answer is already in the system.
FEFO — first expiry, first out — is the consumption rule that matters for anything with a shelf life. The principle is simple: always issue the batch that expires soonest, regardless of when it arrived or was produced. It diverges from FIFO precisely where it counts. A batch manufactured later can carry an earlier expiry date — a shorter-life formulation, a closer best-before, a lot already part-way through its life when it came in. FIFO would leave that batch on the shelf because it was produced more recently, and it would expire unsold. FEFO catches it.
In ReadyBooks.ai, FEFO is a per-item setting, not a global mode. You open the item, turn on batch tracking, set the consumption policy to FEFO, and set the shelf life in days. From then on, whenever that item is consumed — in a sale or pulled into a production run — the system proposes the batch with the earliest expiry date first. A stable item sitting next to it can stay on FIFO, and a high-value item where the operator must choose the lot deliberately can be set to MANUAL. The rule travels with the item, so a single warehouse can run three different consumption disciplines at once without confusing the floor.
The payoff is that expiry stops being a manual vigil. Nobody has to scan a register every morning to work out which lot to ship; the earliest-expiry batch is simply the one the system offers. Combined with the Expiring Soon view, which lists everything inside your configured horizon, FEFO turns near-expiry stock from a discovery at stock-take into a queue you work down in the ordinary course of business.
Expired stock is both a physical problem and an accounting problem. Physically, it must not be picked or sold. On the books, its value has to come off — but how you date that write-off matters. ReadyBooks.ai handles both with a sweep that runs automatically once a day. It scans for every batch whose expiry date has passed, moves that quantity into a dedicated Expired warehouse so it drops out of available stock, and posts the write-off entry.
The detail that protects your filings is the date on that entry. The write-off is always dated today — the day the sweep runs — and never back-dated to the actual expiry date. A batch that expired last month is still written off with today’s date. This is deliberate: back-dating a write-off into a month you have already filed or closed would alter a finalised period and corrupt numbers you have already reported. By recognising the loss in the current open period, the sweep keeps your past filings exactly as you left them while still removing the dead stock from circulation the moment it expires.
Because the sweep is automatic and daily, expired stock never lingers as phantom inventory that inflates your stock value. And because the Expiring Soon view runs ahead of it, most batches should be sold, discounted, or moved before the sweep ever has to touch them — the sweep is the backstop, not the primary control.
Genealogy is the part of batch tracking that earns its keep on the worst day. Every finished-goods batch in ReadyBooks.ai is created automatically when a production run completes, and it is linked to the exact input batches that run consumed. Because the link is recorded at the moment of production, the family tree of every lot is always current — there is no separate traceability spreadsheet that someone has to remember to reconcile.
From any batch you trace in two directions. Trace DOWN and you see the precise input batches a finished lot was built from — useful when a customer complaint points at a specific finished lot and you need to know which raw materials went into it. Trace UP and you see every finished lot a given input batch ended up in — the direction you run when a supplier flags a contaminated raw-material lot and you must find every product that used it. Full forward and backward traceability, on demand, from the same graph.
For a recall, this is the difference between surgical and catastrophic. Instead of pulling every product you make on suspicion, you trace up from the flagged input lot to the precise finished batches affected and pull only those. For an audit, the same graph answers an inspector’s question — "show me the complete trail for this lot" — in seconds rather than days of digging through registers. The discipline that makes a recall survivable is the discipline an auditor wants to see in normal times.
Not all stock that physically exists is stock you are allowed to sell. A batch may need a quality check before release — a lab result, a visual inspection, a certificate. Until that check clears, the stock must be unsellable but still accounted for. ReadyBooks.ai handles this with a dedicated quarantine warehouse. Stock that fails or awaits quality control parks there, and while it sits in quarantine it is kept out of available stock, so it cannot be picked for a sale or pulled into a production run by mistake.
The QC decision is what moves it on. Release the batch and it flows into normal available stock; reject it and it stays blocked. This gives you a clean, provable line between "received and counted" and "approved to use" — physical inventory that is visible on paper yet demonstrably fenced off from sale until someone signs off. For regulated verticals that separation is not optional; an inspector expects to see that stock pending QC cannot leak into a customer order.
Quarantine sits alongside the Batches and Expiring Soon views under Inventory, so the same lot you hold for QC is the lot you later track for expiry and trace for a recall — one record carried through its whole life, rather than a quality system and an inventory system that disagree.
Pharma, food, and chemical businesses where lot numbers and expiry dates are not optional.
Batch tracking is on for every formulation, each finished batch is linked automatically to the raw-material lots it used, and consumption runs on FEFO. When a raw-material lot is flagged, they trace up to the exact finished batches that used it and recall only those — not the whole catalogue.
Each SKU is set to FEFO with its shelf life in days, so the earliest-expiry batch always ships first. The Expiring Soon view flags anything inside 30 days, and the daily sweep clears whatever does expire and writes it off in the current period — dead stock is now a managed cost, not a year-end surprise.
Batches pending QC sit in the quarantine warehouse, out of available stock, so the floor cannot consume them until the lab signs off. Released batches flow into normal stock; rejected ones stay blocked — and the full genealogy is on hand for the next audit.