One module from recipe to ledger: a versioned, multi-level Bill of Materials with rollup costing, production / job costing on real double-entry WIP postings, batch and expiry tracking with full genealogy, and native job-work and ITC-04 compliance. Every production run consumes raw material, posts the cost move, and updates finished-goods stock in a single action.
BOM, costing, batch tracking, and Indian job-work compliance share one inventory and one ledger — not four bolt-on tools that drift apart.
Define a BOM per product with quantity, unit, and waste / yield per line. Components can be sub-assemblies with their own BOMs, nested up to 8 levels by default, with cycle detection. Versions move Draft -> Active -> Superseded -> Archived, and you can schedule a future version that flips live on its date.
Standard cost rolls up automatically — overhead plus, per line, quantity / output qty x unit cost x (1 + waste%). Change one input price and every dependent BOM recomputes up the tree. Diff two versions with cost deltas, and run where-used to see every parent a component feeds into.
Production posts real journal entries: Raw Materials to WIP on start, WIP to Finished Goods on completion with labour and overhead absorbed. Per-order cost is material + labour + overhead, tied exactly to the finished-goods postings. Price, usage, and absorption variance show where a job lost money.
Enable lot tracking per item with a FIFO, FEFO, or MANUAL consumption policy and shelf life in days. A daily sweep moves expired stock to an Expired warehouse and posts the write-off dated today. Trace any batch down to its inputs and up to its finished lots for recalls and audits.
Raise a Job Work OUT delivery challan and the Section 143 timer starts — challan date + 1 year for inputs, + 3 years for capital goods. A daily sweep raises the deemed-supply invoice on overdue challans. ITC-04 aggregates Tables 4, 5A, 5B, 5C into a ready-to-file Excel file; record the ARN to lock the quarter.
Insert an opt-in Goods Receipt Note step between a Purchase Order and the Bill, with a three-way match across PO, received, and billed quantity flagged exact / under / over / drift. A QC step accepts, quarantines, or rejects goods on receipt — quarantined stock stays out of available stock.
Built for thin-margin Indian manufacturing where gut-feel quoting and a guessed COGS quietly cost lakhs.
Spreadsheet BOMs break on every price change and recosting takes hours. Rollup costing recomputes the whole tree the moment an input price moves, so you quote with current cost, yield, and wastage instead of last quarter’s numbers.
Production posts double-entry WIP moves, and the finished-goods cost reconciles exactly to the ledger postings for that order. One cost number, the same across every report — no reconciling three figures that never agree.
Every production run gets its own finished-goods batch linked to the inputs it consumed. Expiry sweeps and FEFO consumption run automatically, so dead stock is written off on time and a recall traces both directions in seconds.
Section 143 timers, automated deemed-supply invoices, per-jobworker balances, and a ready-to-file ITC-04 return are built in. No bolt-on, no consultant-built Tally customisation to maintain.
Most small manufacturers run production across a stack that does not talk: a cost sheet in one spreadsheet, a stock register in another, job-work challans in a register, and the accounts in a separate package. Every price change means re-keying the cost sheet, every production run means a manual stock adjustment and a manual journal, and the ITC-04 deadline is a quarterly scramble. The numbers drift, the COGS is a guess, and a single deemed-supply miss can mean GST on goods you never sold.
ReadyBooks collapses that into one module. The BOM engine holds the recipe and its versions. Production consumes raw material against the frozen recipe, posts the WIP and finished-goods journal entries, and creates the finished-goods batch. Batch tracking carries lot numbers and expiry from input to output. Job-work challans start their own Section 143 timers and roll into the ITC-04 return. Because it is all one inventory and one ledger, the cost you quote, the cost you book, and the cost you report are the same number.
Cost visibility is permission-gated, so per-line costs, rollup totals, and margins can be hidden from staff who should not see them while the people who price the work still get the full picture. That matters when the same screen is used by an operator on the floor and an owner setting prices.
A real manufacturing BOM is rarely flat — a finished good is built from sub-assemblies, which are themselves built from raw materials. Here is the short version; the dedicated BOM page covers the depth.
In ReadyBooks, a Bill of Materials is defined per product, and each line is either a raw material or a sub-assembly carrying a quantity, a unit, and a waste / yield percentage. Because any component can itself be a sub-assembly with its own BOM, the structure nests to any depth — configurable per tenant, up to 8 levels by default. Automatic cycle detection prevents a BOM from referencing itself directly or indirectly, so you cannot accidentally build a recipe that can never resolve. Every BOM is versioned, so the active recipe can change over time while the record of what produced each past order stays intact.
Standard cost rolls up the tree automatically. For each line the engine takes quantity / output qty x component unit cost x (1 + waste%), sums the lines, and adds overhead. Raw-material lines value at weighted-average cost (WAC); sub-assembly lines resolve to the active version cost of the child BOM. The consequence is a cascade: change one raw-material price and every dependent BOM cost recomputes up the tree, so a steel price move on Monday is reflected in the cost of every assembly that uses it without anyone re-keying a cost sheet.
Two tools keep this honest over time. A version diff compares two versions of a BOM line by line, including the cost delta on each line, so you can see exactly what a revision did to the cost. A where-used lookup runs the other way — given a component or sub-assembly, it lists every parent BOM it feeds into, which is what you need before you change a shared input. Deeper mechanics live on the dedicated bill of materials software page.
Most small-business tools treat a production run as a stock adjustment. ReadyBooks treats it as an accounting event — a summary here, with the full mechanics on the job costing page.
Production posts real journal entries, not just stock moves. Starting an order moves cost from Raw Materials into Work-in-Progress. Completing the order moves WIP into Finished Goods and absorbs direct labour and manufacturing overhead into the finished cost. Cancelling or closing an order posts the correct reversals or write-offs. Per-order cost is therefore material + labour + overhead, and the finished-goods cost reconciles exactly to the finished-goods ledger postings for that order — an exact tie that is an enforced, tested invariant rather than a reconciliation you do by hand. Partial completions of the same order are tracked as a running weighted average, so finishing an order in batches keeps the unit cost correct.
On top of that sits read-only variance analysis that tells you not just that a job lost money but why. Price variance is (actual unit cost - planned unit cost) x quantity consumed, which isolates input prices moving against you. Quantity or usage variance is (actual consumption - expected consumption for the quantity produced) x planned unit cost, which isolates yield slipping or material being over-issued. Period absorption variance shows labour and overhead over- or under-absorbed for the period. A single COGS number hides all three; these three split it apart.
Scrap and rework are first-class. You can record scrap at the raw-material, WIP, or finished-goods stage; recording it posts a scrap expense and removes the stock, and you can mark scrap as reworkable to recover it. The result is a true cost and margin per job and per SKU, which is the difference between pricing on data and pricing on instinct — and on thin manufacturing margins, instinct quietly costs lakhs. The mechanics are covered in full on the job costing and variance page.
Pharma, food, chemicals, cosmetics, and nutraceuticals all need lot numbers and expiry dates by law — and FEFO done on paper does not survive an audit. The batch and expiry page goes deeper.
Batch tracking is enabled per item, only on the items that need it, and each tracked item carries a consumption policy: FIFO consumes the oldest produced batch first, FEFO consumes the earliest expiry first for perishables, and MANUAL lets the operator pick the batch. Shelf life is set in days per item. An Expiring Soon view lists every batch expiring inside a configurable horizon — 30 days by default — so you act on near-expiry stock before it becomes a write-off. A daily automatic sweep then moves expired stock into a dedicated Expired warehouse and posts the write-off, always dated today so it never back-dates into a closed accounting period.
Genealogy is the part regulated manufacturers cannot live without. Every completed production run gets its own finished-goods batch automatically, linked to the input batches consumed. From any batch you can trace down to the exact input batches it was made from and up to the finished batches it ended up in — full forward and backward traceability for a recall or an audit. Stock that fails quality control parks in a quarantine warehouse, held out of available stock until it is released or rejected, so a failed lot cannot be consumed by the next production order.
This is the layer that makes ReadyBooks usable in verticals where lot discipline is mandatory rather than optional — pharmaceuticals, food and beverage, processed and packaged food, chemicals, cosmetics, and nutraceuticals. The batch and expiry tracking page covers the genealogy graph, the quarantine flow, and the daily expiry sweep in detail.
Job work is where generic accounting tools fall short and where a missed Section 143 deadline becomes GST on goods you never sold. The job work page walks the full cycle.
When you send material to a jobworker you raise a Job Work OUT delivery challan — a document under Rule 55 of the CGST Rules that accompanies the movement of goods without a tax invoice. On issue, ReadyBooks starts the Section 143 return-due timer automatically: the due date is the challan date + 1 year for inputs and + 3 years for capital goods. Partial and multiple returns are tracked, and each inbound return challan line links back to the original outbound line, so the not-yet-returned balance per job-work order — and per jobworker — is always visible. You can track goods across many jobworkers at once.
If goods are not fully returned before the due date, GST law deems it a supply and the principal owes GST as if the goods were sold. ReadyBooks runs a daily automatic sweep that finds overdue challans and raises the deemed-supply sales invoice for you, with GST charged at the original rate and the HSN carried over from the challan — automated deemed-supply protection so a missed deadline does not turn into a surprise liability. If you are on the other side and acting as the jobworker, you record the principal’s incoming material as a Principal Material Receipt that stays off your books — no stock ledger entry, no journal entry — and is shown only for ITC-04.
The ITC-04 quarterly return aggregates the four tables — Table 4 for challans sent to jobworkers, Table 5A for returns received, Table 5B for challans flagged as deemed supply in the quarter, and Table 5C for principal material you received as a jobworker — into a ready-to-file ITC-04 Excel file. ReadyBooks auto-prepares the return and tracks the ARN; after you file on the GST portal you record the ARN to lock the quarter. A job-work delivery challan can also generate an e-way bill with the Job Work sub-supply type, and delivery-challan e-way bills do not consume your monthly e-way-bill quota. The job work and ITC-04 page walks through the whole flow.
Three Indian manufacturing scenarios the module is built for.
A multi-level BOM rolls each assembly up from raw bar stock through pressed sub-assemblies. When the steel WAC changes, every dependent BOM recomputes up the tree, so the quote that took an afternoon now reflects today’s prices in minutes. Version diffs show exactly what a design change did to the cost.
Batch tracking with FEFO consumption and per-item shelf life runs the lot discipline automatically. The daily sweep writes off expired stock dated today, and genealogy traces any finished batch back to its input lots — so a recall query is answered in seconds, not days.
Each consignment to a jobworker raises a Job Work OUT challan with its Section 143 timer; per-jobworker balances show outstanding cloth at a glance. The deemed-supply sweep protects against missed deadlines, and ITC-04 generates as a ready-to-file Excel file with the ARN recorded to lock the quarter.