Finished goods, BOMs, routings, work orders, scheduling, and what a part really costs.
A finished good is something your shop manufactures and sells — different from the raw materials and consumables that live in regular inventory. The Finished Goods page is the catalog: each row shows On Hand, In Prod (units on open work orders), the Reorder Pt, whether an active BOM exists, and a Readiness bar. Cards at the top count totals, parts with an active BOM, units in production, and Low Stock (on hand at or below the reorder point).
Click New Finished Good. Only SKU and Product Name are required, but the other fields matter: the Selling Price box shows your computed cost per part, a confidence badge, a suggested price for your Target margin (with a use button), and your actual margin. The Production Capacity section — Hours Per Unit, plus optional hours-per-day, workers, and work-day overrides — calculates a units-per-day rate that drives delivery forecasts.
On the edit page a Production Readiness checklist tracks the setup steps a part needs before it can be produced and costed properly — details, an active BOM, material costs, routing, a capable machine for every operation, a production rate, a computed and locked cost, and a price above cost. Click any unfinished step to jump straight to the fix.
The page also has stock cards (On Hand, Reserved, Available, In Production), a Quick Adjust box, a Create Work Order button, file Attachments, and a full Stock History. Finished goods are never deleted — Archive hides them and Reactivate brings them back. An Import button appears if you have the import permission.
A Bill of Materials (BOM) is the recipe for one finished good: which raw materials it uses and how much of each. Production orders use the BOM to calculate material requirements, and the cost engine uses it to price the materials in a part. Build one from BOM → New BOM, or from the Create BOM button on the finished good itself.
The builder shows your Raw Materials Catalog (regular inventory products) on the right — drag a material across or click +. Quantities are entered as a Material Ratio: use this many, to make this many parts. That handles both directions naturally — 3 screws to make 1 part, or 1 drill bit to make 500 parts (0.002 per unit). Each line can also carry a unit of measure and a Waste % for expected scrap; the effective quantity and estimated material cost update automatically.
A BOM has a Revision label and one of three statuses: Active, Draft, or Obsolete. Only one BOM per product can be Active — clicking Set Active on another revision automatically marks the old one Obsolete, so your history is preserved instead of overwritten. Draft BOMs are the only ones that can be deleted. Production and costing always use the Active revision.
If you have a spreadsheet of BOM lines, the Import button (visible with the import permission) loads them in bulk.
A BOM says what goes into a part; a routing says how it is made — the ordered steps through your machines. Routings drive two big things: the auto-scheduler (which machine does what, when) and the labor and machine cost in the part-cost engine.
On Operations you define each kind of work once — for example CNC Mill, Deburr, Inspect. For each operation you tick the capable machines (the stations that can perform it) and optionally the tooling consumed — cutting-tool assemblies whose cost per part (unit cost divided by tool life) folds into the part cost. An operation with no capable machine shows a red warning, because the scheduler will have nowhere to route it.
On Routing, pick a finished good and add steps: a Seq number for the order, the Operation, the run time per unit in hours, any setup hours, and how many workers the step needs. Every routing reuses the operations you defined, so capable machines and tooling come along automatically.
Accurate run times here pay off twice: the auto-scheduler can predict whether orders will finish on time, and the cost engine can price labor and machine time from routing data instead of rough estimates. Both pages have an Import button for bulk loading, shown with the import permission.
A production order (work order) is an instruction to build a quantity of a finished good by a date. Create one from Production Schedule → New Production Order: pick the finished good (a warning appears if it has no active BOM), set Qty to Produce, a Due Date, and a Priority of Low, Normal, High, or Urgent. Orders can also be generated automatically from confirmed sales orders.
Orders move through Planned → Scheduled → In progress → Completed, with Cancelled available before completion (a cancelled order can go back to Planned). Use the Change Status buttons on the order — overdue open orders are highlighted in red on the list.
The Material Requirements table explodes the active BOM by your quantity and compares it with stock: gross required, on hand, on order, and the Net Need. Shortages are highlighted with a link to the Auto-PO Generator, which drafts purchase orders for whatever is missing — see Auto-generating POs from the production schedule.
Each day, use Record Daily Production: enter the Total Made (good + scrap), any Qty Scrapped with a scrap reason, and optionally the material Heat # for traceability. Recording adds the good parts to finished-goods stock and auto-allocates them to a linked sales order. A Forecast vs Actual chart then shows whether you are ahead of or behind the pace needed to hit the due date.
Once production orders exist, scheduling answers who runs what, on which machine, on which day. There are two ways to build the plan.
The Auto Setup Schedule page lists your open production orders. Tick the ones to plan (orders without a routing are greyed out — fix that first, see Operations and routings — how a part gets made) and click Auto Setup Schedule. The system routes each order through its operations and capable machines and shows the result: On time or Will miss due date with the predicted finish, step-by-step machine and worker assignments, machine and employee utilization bars, and a bottleneck hint when one machine is the constraint. Nothing is saved until you click Apply Schedule.
After applying, the Production Gantt draws the committed plan: one row per machine, one colored bar per operation, with badges for orders running late, hatching for machine downtime, and a cube icon for material shortages. It is the quickest way to see the whole floor for the next couple of weeks.
The Scheduling & Work Logging page lets you add individual planned entries (order, worker, station, hours, date) and — just as important — log the actual hours worked. Logged hours are what turn estimated labor cost into measured cost on the part, so a plan without logs only gets you halfway. The Daily Close-Out — finish the day clean page chases anything left unlogged.
The Daily Close-Out page is an end-of-day checklist that finds everything that should have been recorded but was not. Costing, forecasting, and maintenance all depend on daily data, and this page keeps the gaps from piling up silently.
It scans the chosen date and shows a section for each kind of gap it finds:
Every row also has a Nothing to log button for days when an item genuinely has nothing to report — dismissals apply to that date only, and Undismiss all for this day brings them back. Work each section until the status chip reads All clear, and the day is closed with confidence.
The Cost Per Part page computes a live cost for every active finished good and — just as important — tells you how much to trust it. Each part shows a Cost / Part, a Confidence percentage, and a level badge: Rough, Fair, Good, Solid, or Locked-ready. Confidence climbs as estimates are replaced with real recorded data.
Open a part and the cost breaks into six components: Materials, Labor, Machine / Station, Tooling, Maintenance & Consumables, and Scrap / Yield Loss. Each one shows where its number came from — Measured (real records), From routing, Estimated, or No data. A Time per part table compares estimated machine and labor hours against actuals, and a Level up the confidence list spells out the specific next steps: add missing material costs, log worker hours, record scrap, link cutting tools, and so on.
Until you lock it, the cost is live — it recalculates as data changes, and pages like quotes and the floor hub show it with a small live badge. When the number is solid, click Lock as Standard Cost. That freezes the figure (with its confidence) as the official standard cost used for margins on the finished good and in quoting. You can re-lock later after the data improves.
The Margin column compares cost against each part’s selling price, so anything you are selling at or below cost stands out immediately.
Most finished goods ship straight to customers, but sometimes you want them inside the inventory system — to vend them like any other part, or to hold a customer’s finished goods on consignment. The IMS / Inventory Bridge card on each finished good handles this.
Click Send to IMS, enter a quantity, and choose a destination: IMS stock (as a part) or Customer finished good (consignment). The quantity leaves finished-goods stock immediately and a movement is created to track it. Movements carry a status: staged, loaded, received, shipped, or cancelled. Stock movements go staged → Load into an approved cabinet → loaded; customer movements go staged → Receive → Mark Shipped. Cancelling a staged movement puts the quantity back.
A staged movement creates a pick ticket — technically a tool list — that tells the floor what to physically move; the Pick Tickets page lists them all, plus any customer consignment currently sitting in the IMS. See Tool lists: pre-built picking lists for how lists are issued.
The FG → IMS Settings page controls the behavior: Convert mode (Pick ticket — stage, then load vs One-click — auto-load to stock, which only auto-loads when an approved load cabinet exists), Pick fulfillment (manual or auto-vend), the Sales-order ship mode (counter vs IMS pick), the shipping department location where customer goods auto-assign, and which vend locations may hold finished goods.