The Manufacturing module is a paid add-on (₹550/month — see Add-ons). It covers everything an Indian SMB needs to record production: define BOMs, issue raw materials to a batch, receive finished goods, run job-work flows, and report on variance and cost.
Time to read: ~14 minutes. You’ll need: the Manufacturing add-on active, at least one raw material and one finished good in your Products list — see Managing Customers, Vendors and Products.
What you get when this is done
- A clear chain from raw materials → WIP → finished goods, fully accounted at moving-average cost.
- Batches / work orders that gate negative-stock and give you per-batch variance.
- Job-work support for converting one item to another (e.g. fabric → shirt).
- Costing and Variance reports for production accountability.
Where to find the screens
From the sidebar (after the Manufacturing add-on is active):
| Page | What it does |
|---|---|
| Production → Overview | Open batches at a glance, recent vouchers. |
| Production → BOMs | Bill-of-Materials master — define what makes what. |
| Production → Issue Voucher | Issue raw materials into a batch (Dr WIP / Cr Inventory). |
| Production → Receipt Voucher | Receive finished goods from a batch (Dr Inventory / Cr WIP). |
| Production → Job Work | Same-item return or item-conversion from a job-worker. |
| Production → Reports | Variance + Costing reports. |
Step 0 — Set material roles on your products
Before you create your first BOM, tag your products so the dropdowns make sense.
- Masters → Products → edit each product.
- For products of Type = Goods, set Material role:
- Raw material — bought, never sold directly. Used in BOMs as a component.
- Semi-finished — output of one BOM, input of another. Appears in both dropdowns.
- Finished good — output of a BOM, sold to customers.
- — (none) — regular trading goods, not used in production.
This drives the dropdowns on BOM / Issue / Receipt screens so you never see “the wrong kind of item” in the picker.
Step 1 — Define a BOM
A Bill of Materials is the recipe for one finished or semi-finished product.
- Production → BOMs → click + New BOM.
- Fill in:
- BOM number — auto-generated (BOM-####) or type your own.
- Date — when this BOM came into effect.
- Product — pick the finished / semi-finished item this BOM produces.
- Notes — free text (e.g. “Cost-down BOM for Q2 — replaces BOM-0042”).
- Add component lines — one row per raw material or semi-finished input:
- Component — pick from the raw / semi dropdown.
- Quantity per unit — how much of this component is needed to produce one unit of the output.
- Click Save.
Multiple BOMs for the same product are allowed (alternative recipes, cost-down variants). Each Issue voucher picks one BOM explicitly.
Step 2 — Issue raw materials (start a batch)
When you actually start making something, issue the components from inventory to WIP.
- Production → Issue Voucher → click + New issue.
- Fill in:
- Issue number — auto-generated (ISS-####) or type your own.
- BOM — pick the recipe.
- Production qty — how many units of the output you intend to produce.
- Batch number — auto-generated (BATCH-####) or type your own. If you type a batch name that already exists and is still open, the issue extends that batch.
- Lines — Booksmor pre-fills component × qty from the BOM, scaled to the production_qty. Override any line manually (e.g. you needed extra raw material due to wastage).
- Click Post.
Booksmor:
- Posts a journal voucher: Dr WIP / Cr Inventory, valued at the moving-average cost of each component.
- Decrements stock of every component.
- Opens a Work Order internally that tracks
qty_issued, the standard cost (total_component_cost ÷ planned_qty), and the batch number.
The Work Order stays open until it’s fully closed via Receipts (next step).
Stock for components honours Settings → Allow negative stock + per-item override. If a component’s stock would go negative and negative-stock isn’t allowed, the issue is blocked.
Step 3 — Receive finished goods (close the batch)
When the batch produces output, record what came out — good units, loss, and excess separately.
- Production → Receipt Voucher → click + New receipt.
- Fill in:
- Receipt number — auto-generated (RCT-####) or type your own.
- Work order — pick the open batch from the dropdown.
- Qty good — finished output to add to stock.
- Qty loss — units that failed quality / shrinkage. Posts to Production Loss expense.
- Qty excess — extra units (beyond planned_qty) that the batch produced.
- Reason — free text (e.g. “Quality issue on heating step”).
- Click Post.
Booksmor:
- Posts a journal voucher: Dr Inventory (qty_good × WO standard cost) + Dr Production Loss (qty_loss × WO standard cost) / Cr WIP.
- Increments stock of the output by qty_good (excess included if you set it).
- Auto-closes the batch when qty_good + qty_loss ≥ planned_qty.
If a batch produces output in installments (e.g. quality testing in waves), post multiple Receipt vouchers against the same Work Order until it’s closed.
Step 4 — Job Work (optional)
For when you send raw material to an external job-worker who returns either:
- The same item (e.g. you sent steel rods, they polish and return polished rods), OR
- A converted item (e.g. you sent fabric, they tailor and return shirts).
Both cases are handled on the Production → Job Work page. You record:
- The Input components sent out + quantity.
- The Output received + quantity.
- For conversion, the output cost stretches over
qty_goodfor value-preserving conversion (your fabric’s value transfers to the shirts).
The job-work flow closes when input-equivalent quantities are accounted for (return + loss).
Job-work doesn’t track the job-worker as a vendor in the production module — record the job-worker’s invoice as a normal Purchase voucher (for the service fee), and reference the job-work voucher number in its narration.
Costs and accounting under the hood
A common SMB question: “where do the rupees flow?”
| Step | Journal entry | What it represents |
|---|---|---|
| Issue | Dr WIP / Cr Inventory | Cost of components moves from stock to in-progress. |
| Receipt — good | Dr Inventory (output) / Cr WIP | Cost flows from in-progress to finished goods. |
| Receipt — loss | Dr Production Loss expense / Cr WIP | Cost of failed output hits P&L immediately. |
| Receipt — excess | (extra Inventory debit at the same standard cost) | Extra output gets stock at the planned-rate cost. |
Moving-average cost is recomputed for every input component on every Purchase voucher, and for finished goods on every Receipt. So if your raw material cost changes month-to-month, your finished-goods cost adjusts gradually.
Reports
Production → Reports has two tabs:
Variance
Per-batch loss percentage:
| Batch | Planned qty | Good qty | Loss qty | Loss % | Reason |
|---|---|---|---|---|---|
| BATCH-0001 | 100 | 95 | 5 | 5% | Quality issue |
Spot consistently-high-loss batches → investigate processes or component quality.
Costing
Per-batch financials:
| Batch | Material issued ₹ | Good output value ₹ | WIP residual ₹ |
|---|
A WIP residual greater than 0 on a closed batch indicates the cost didn’t fully flow out — usually rounding from the standard-cost vs actual-cost gap. Small residuals are normal; large ones warrant a look.
Common questions
Why use a BOM at all? Can’t I just adjust stock manually? Manual stock adjustments don’t tell you the cost of what you produced. BOMs + Issue + Receipt vouchers give you:
- Stock movements with proper cost accounting (moving-average).
- A clean audit trail (what was issued, what came out, when, by whom).
- Variance reports (how much loss per batch).
- Closed batches with frozen WO standard cost.
Can I have multiple BOMs for the same product? Yes — useful for alternative recipes (cost-down variant, alternative supplier for a component, etc.). Each Issue voucher specifies which BOM to use. The Variance/Costing reports show which BOM each batch used.
What if my actual production differs from the BOM (e.g. I used more or less of a component)? Override the line on the Issue voucher before posting. The BOM is the suggested recipe; the Issue voucher is what actually happened.
My batches typically run for days/weeks. When do I post the Receipt? When you have finished output ready to put back in stock. You can post multiple Receipt vouchers against the same batch as output trickles in. The batch auto-closes when qty_good + qty_loss ≥ planned_qty.
What happens to leftover material at end of batch? If you over-issued raw material at the start, leftover sits as a WIP residual. To return unused material to stock, post a reverse Issue (negative qty) or close the batch with a manual WIP adjustment journal.
Can I track labour cost as part of WIP? Not natively. Labour is currently an expense (Salary Expense) posted via Payroll, not allocated to specific batches. For batch-level labour costing, you’d add a Journal voucher per batch (Dr WIP / Cr Salary Expense) for the labour portion. Labour-in-WIP is on the roadmap.
How do I handle outsourced job work? Use the Job Work page. Send-out is recorded as an Issue (to the job-worker’s “WIP”); receive-back as a Receipt. The job-worker’s service fee is a separate Purchase voucher.
Where do production losses show on my P&L? Under the Production Loss expense account (lazy-created on first Receipt with loss > 0). It’s a normal P&L expense — visible on the Profit & Loss report.
Troubleshooting
Issue voucher blocked: “negative stock not allowed”.
A component’s stock would go below 0. Either you don’t have enough on hand (buy more before issuing), or enable Allow negative stock in Settings → Cash & bank controls (only for items where it’s appropriate — see the per-item allow_negative_stock flag on the product).
Receipt voucher won’t post: “no open work order”. The Work Order is already closed (qty_good + qty_loss ≥ planned_qty). Open a new Issue voucher to start a fresh batch, or extend the closed batch by entering its name on a new Issue.
Stock for finished good isn’t increasing after Receipt. Check that qty_good is > 0 on the receipt. qty_excess also increments stock but at the same cost (excess + good both go to inventory).
Variance % shows ≫ 100 for a batch. Either the planned_qty on the original Issue was too low, or qty_loss was entered larger than planned. Open the batch’s receipts and verify.
Need more help? Email support@booksmor.com with the batch number and what’s misbehaving.