Manufacturing
If you make things, Manufacturing turns components into finished products and tells you what to buy and when. Its documents follow the same rules as the rest of Tamra — a draft is free, confirming commits, completing moves stock and posts cost — so nothing here will feel foreign after Selling and Buying. And when something was built by mistake, Unbuild takes it back apart, stock and books together.
The dashboard
Manufacturing → Dashboard shows production at a glance, top to bottom:
- Built this month (units and their cost, against last month), On the floor (confirmed and in-progress orders), Late (on the floor past their planned date), Short of components (open orders the stock does not cover) and Unbuilt this month. Each figure opens what it counts.
- Orders by stage — Draft, Confirmed, In progress and Done this month, with their cost. Click a stage to open the orders list on it.
- Built by month over the last twelve months, By product and the work centres' queued hours.
- Needs attention — orders short of components, late orders, orders whose work orders are all done (ready to complete), paused work and drafts older than a week — and Recent production.
Everything built is counted net of what was unbuilt since: a batch of 20 with 4 unbuilt counts as 16.
Bills of materials
A bill of materials (BoM) is the recipe: the finished product, the quantity the recipe makes, and the components — each a product with a quantity and unit. A component's unit can differ from the one it is stocked in, within the same kind: 500 g of flour kept in kg costs and consumes 0.5 kg. A unit that doesn't convert (grams of something counted in pieces) is marked on the line, and completing is refused until it is fixed. A BoM can name a routing (the operations that make it) and can be marked subcontracted (below). A product can have more than one BoM; the manufacturing order picks which. Sub-assemblies are simply components that have their own BoM.
The list shows what each recipe costs per unit today — its components at their current cost in the line's unit (a gram of flour at 3.50 a kilo costs 0.0035), plus its routing's labour, plus a subcontractor's fee — and how many the stock on hand can build, with the component that limits it (hover the number). Open a BoM to see the same roll-up under its components: materials, labour, the fee, the cost per unit and what can be built now. A row's ⋮ offers Edit, New MO from this BoM, Duplicate (a copy to change and save as a new BoM) and Delete.
Routings and work centres
A work centre is a machine, a line or a team with an hourly cost and a capacity in hours a day. A routing is the ordered list of operations to make a product, each at a work centre with an expected duration. Routings make work orders possible and give capacity planning something to measure; a simple assembly business can skip them and use BoMs alone.
The routings list shows each routing's steps, its time per unit, its work centres and how many BoMs use it; Duplicate copies one to change. The work centres list shows each centre's rate, capacity, efficiency, the hours queued on it now and the account its labour is posted to.
A routing or work centre that a confirmed or running order uses can't be deleted: the message names the order — complete or cancel it first, or untick Active to stop using a work centre. Recipes and draft or finished orders that use a deleted routing are detached from it, and an order whose routing was deleted after it was confirmed still waits for its work orders and books their labour.
Manufacturing orders
A manufacturing order (MO) is the instruction to build a quantity of a product from its BoM. The (i) on the order explains its stages:
| Status | Meaning |
|---|---|
| Draft | Planned; nothing committed; still editable. |
| Confirmed | Components are reserved for this order so they aren't allocated twice; work orders are created from the routing. |
| In progress | Work has started on the shop floor. |
| Done | Complete records what actually happened: consumes the raw materials out of stock, produces the finished goods into stock, and posts the cost journal entry. |
| Unbuilt | A done order whose goods were all taken back apart (see Unbuilding). |
| Cancelled | Reservations released, and its open work orders cancelled (minutes already worked are kept). |
The list's chips show one group at a time — Draft, On the floor, Late, Confirmed, In progress, Done, Unbuilt, Cancelled — and a late order shows its planned date in amber. Each row has one ⋮ with the steps the order can take now: Preview, Open (Edit on a draft), Confirm, Complete…, Return to draft, Unbuild…, Build it again, Duplicate, and below a line, in red, Cancel MO and Delete. Clicking a row opens its preview, with the next step it is waiting for as a button.
On completion you capture the actual consumed and produced quantities, not just the plan — scrap, over-consumption and short runs are normal. Producing fewer or more than planned? Components for N under the quantity scales every component to it in one click. The finished product's cost is built from what went into it: components consumed at their own cost — the average, FIFO's oldest layers, or the standard, converted to the unit they are stocked in — plus routing time at the work centre's rate, rolled into each finished unit. The books post exactly what the components' valuation released. A finished product kept at standard cost comes into stock at its standard, and the difference from what the order actually cost goes to price variance. A finished product not kept in stock — a consumable or a service made on an order — books its cost to its own expense account (the product's, else its category's, else the company's): there is no stock to carry it. A product with serial numbers is built in whole pieces. The dialog shows each component's current cost and the stock on hand in its own unit (2 kg on hand, short 0.5 kg). A component on two lines is checked against the shelf for both together, and each line keeps its own consumed quantity and cost.
Duplicate opens a new draft with the order's product, quantity, BoM, routing and components — nothing is saved until you save it.
Who may: creating an order needs the Manufacturing orders — create right; editing, confirming, completing, returning to draft and cancelling need edit; deleting a draft needs delete. Complete pressed twice, or by two people at once, completes the order once — the second sees it is already done.
The shop floor
Shop Floor is the operator's view: the work orders of confirmed orders, one per operation, grouped by work centre, in states Waiting → Ready → Running → Paused → Done. Start, Pause, Resume and Done record the time actually spent, which feeds the product's labour cost and the capacity picture; a running order shows its timer. The work orders of a cancelled or completed order can't be started, paused, resumed or finished.
Unbuilding finished goods
Built the wrong thing, with the wrong components, or too many? Unbuild takes finished goods back apart — the way the order built them, in reverse — while they are still in stock.
To unbuild: open the done order (or its row's ⋮ → Unbuild…) and choose Unbuild. Then:
- How many — all that is left by default; you can unbuild part of an order now and more later.
- On — the date of the reversing journal: from the day the order was completed to today, and after any closed period.
- What comes back — each component's share, at the cost the order consumed it at, going back to the shelf it came from, under its own lot or serial number. A part damaged while taking the goods apart can be written off instead: lower its Back to stock, and the rest is written off to the inventory loss account. Components not kept in stock (consumables) are reversed in the books only. A part with serial numbers comes back in whole pieces: by default the whole ones of its share, the rest written off. The labour goes back to the expense account it was absorbed from.
- Why — required; pick Wrong components, Wrong quantity, Quality problem or Built by mistake, or say it in your own words. The reason stays on the record.
What happens, in one step: the finished goods leave the stock location the order put them in, at the cost the order built them for; the components come back; one journal, numbered with the unbuild (UB-…), reverses it on the date you picked. Should the goods' value in stock differ from what the order built them for (some of them came in since at another cost), the difference goes to inventory gain or loss — the dialog shows the value and any difference before you unbuild. A standard-cost product leaves at its standard, and the price variance its order booked goes back to the account the order booked it to, above or below the standard; the dialog shows that too. The last unbuild of an order takes exactly what is left of it, to the cent, and an order unbuilt in full gives every part back at exactly the value it was used at.
The goods must still be on the shelf. If some were moved to another stock location, the dialog says how many and offers Transfers — move them back first. If some were sold, delivered or used, it offers Customer returns — take them back first — or unbuild fewer. Goods reserved for orders waiting to be delivered can be unbuilt, but the dialog warns you: those deliveries may come up short.
Afterwards: the order shows how many were unbuilt (and Unbuilt once all of them are); its history lists each unbuild — what came back, what was written off, who did it and why, with its journal. Build it again opens a new draft order for the same product and quantity, linked to the one you unbuilt (each shows the other). Manufacturing → Unbuilds lists every unbuild with what left stock, the components that came back, what was written off and the labour reversed.
Unbuilding needs permission to edit manufacturing orders.
Planning (MRP)
Planning answers one question: given everything you've committed to make, do you have enough materials — and if not, what should you order or build? For each component it nets demand (what open manufacturing orders will consume) against on hand and incoming (open purchase orders and other MOs). Demand is counted in the unit the part is stocked in — a recipe's 500 g of flour kept in kilos is 0.5 kg — and a purchase order counts as incoming only for what it still has to deliver. A shortfall is flagged with a suggested action — buy for purchased parts, make for sub-assemblies — and the page totals what's short, what to purchase and what to manufacture.
You can act on it from the page: New MO on a part you make opens a new manufacturing order for the shortfall (its BoM loaded); New RFQ on a part you buy opens a request for quotation with the line on it; Buy all puts every shortage to buy on one RFQ. Nothing is saved until you save it.
Example: an open order needs 500 of a part; you hold 120 and 80 are arriving on a PO. 500 − 120 − 80 = 300 short → MRP proposes purchasing 300.
Capacity
Capacity shows each work centre's queued load against its daily hours — idle, light, moderate, heavy, overloaded — as the working days it would take to clear, so you can see a bottleneck before the shop floor does. Open a centre to see its queued work orders.
Subcontracting
When a step is done by an outside vendor — you send components (or they source their own) and they return the finished product for a per-unit fee. Mark the BoM subcontracted, name the subcontractor and the service cost; that fee becomes part of the product's cost alongside its materials. Subcontracting lists subcontracted BoMs, subcontractors, and the average service cost per unit; a row opens its BoM.
Example: a finished item uses 40 of components and the subcontractor charges 15 per unit → each unit costs 55; build 100 → 5,500.
Reports
Manufacturing → Reports: production overview, product performance, batch cost analysis, component consumption and work-centre performance. Units unbuilt later come off their batch — the reports count what still stands, at the unit cost it was built for; a batch unbuilt in full drops out.
Common questions
Do I need routings? Only if you want work orders, labour cost, or capacity planning. BoMs alone are enough to consume and produce.
The finished cost looks too low. Labour isn't included because there's no routing, or a component's cost is zero because it was received free. Moves history on the component shows.
A recipe in grams of something bought by the kilo? Fine — give the line the unit g; costs and stock are converted (500 g = 0.5 kg). Grams and kilograms convert; grams and pieces don't.
Can I build without all components in stock? Confirm reserves what exists; completion refuses to consume what isn't there. Receive first, or adjust the plan.
A sub-assembly and its parent in one go? Two orders; complete the sub-assembly first so the parent consumes it at its real cost.
I built the wrong product — do I cancel the order? A done order can't be cancelled; unbuild it. Its goods leave stock, its components come back and its journal is reversed — then Build it again if you still need the right ones.
Can I unbuild goods I already sold? Not while they are with the customer: take them back with a customer return first, then unbuild.
Some parts broke while we took it apart. Lower their Back to stock; the rest of their value is written off as an inventory loss on the same journal.
Can I undo an unbuild? No — build the goods again with Build it again, which starts from the same product, quantity and components.
If something goes wrong
- "Your role can't…" when you save a recipe, a routing or a work centre → recipes, routings and work centres need Bill of Materials create or edit (deleting a recipe, its delete right; a routing or work centre, edit or delete); orders need Manufacturing Orders create or edit, and are changed directly only while they are drafts. Work orders change only on the shop floor (Start, Pause, Resume, Done), as the person signed in. The built-in Manager and Operator roles have create and edit; Viewer only reads.
- Confirm is refused → the BoM has no components, or a component isn't a product that can be consumed.
- Complete is refused → produced or consumed quantities are blank or negative, a tracked component has no lot, a work order is still open (finish it on the shop floor), the stock doesn't cover a component in its own unit, or a line's unit doesn't convert to the unit the component is stocked in.
- MRP shows a shortage you've already ordered → the PO isn't confirmed, so it isn't incoming.
- Deleting a routing or work centre is refused → a confirmed or running order uses it, and the message names it: complete or cancel that order first, or untick Active on the work centre.
- Complete says the work centre has been deleted → its labour hours can't be costed: return the order to draft and choose a work centre, or complete it with 0 labour hours.
- Capacity shows overloaded but the floor is idle → work orders were never started or finished; the load counts planned hours until they're done.
- Unbuild says the goods are not on the shelf → they were moved (transfer them back) or sold (a customer return first) — or unbuild fewer.
- Unbuild says the books are closed → pick a date after the lock date.
- Unbuild asks for an inventory loss account → a part is being written off and no loss account is set: set one in Settings → Account Mapping, or put it all back to stock.
- Unbuild needs the 1.56.0 database update → run the update file in the Supabase SQL editor once; the Unbuilds page fills as orders are unbuilt.