What is in the template
One row per production run. The sample covers a completed run with one unit scrapped, a run in progress against a named customer order, a planned subassembly run that feeds two future orders, and a run on hold waiting for a component that has not arrived.
Those four statuses are the whole point of the sheet. A list of everything you intend to build is a wish list; a list that distinguishes released from blocked from finished is a schedule someone can work from on a Monday morning.
Columns explained
| Work_Order | Unique reference for the run. Everything else on the shop floor hangs off this number. |
| Status | Planned, In progress, On hold, or Complete. Filtering on this is what turns the sheet into a board. |
| Priority | Which run gets the bench when two are due the same day. |
| Product_SKU | What is being built, matching the parent SKU on the bill of materials. |
| Quantity_Planned | What the run was released to make. |
| Quantity_Completed | Good units actually produced and accepted. |
| Quantity_Scrapped | Units started and lost. Planned minus completed minus scrapped is what is still in progress. |
| BOM_Reference | Which bill of materials, and which revision, this run was built against. |
| Start_Date | When work is meant to begin, not when the order was written. |
| Due_Date | When the finished units are needed, usually driven by a customer order or a stock target. |
| Assigned_To | Who owns the run. Blank on a planned order is fine; blank on an in-progress one is a warning. |
| Work_Centre | Where it happens: assembly, fabrication, finishing. This is what capacity is measured against. |
| Lot_Number | The lot the output is tagged with, so finished units can be traced back to this run and its components. |
| Notes | Blockers, customer references, substitutions. The column that explains why a run is on hold. |
Releasing a run rather than just listing it
A work order should only move to In progress when the components it needs are actually available. Releasing a run whose material is still on order is how a bench ends up half-built and blocked, occupying space and holding partially consumed material that is now unavailable to anything else.
The check is simple enough to do by hand for a handful of runs: for each component on the BOM, multiply quantity per unit by the planned quantity and compare against stock on hand, remembering to account for other released runs already claiming the same parts. It stops being simple somewhere around the fifth concurrent run, which is usually when a shop moves off the spreadsheet.
Where a work order spreadsheet breaks down
It cannot see material. Nothing in the file knows whether the steel tube for WO-2026-0420 has arrived, so the on-hold status is only accurate for as long as somebody keeps checking and updating it.
It cannot consume material either. Completing a run should reduce every component on the bill of materials and increase finished goods; in a spreadsheet both halves are manual, and the second half tends to get done because it affects what you can sell while the first quietly does not.
In StockFlow, the Production module turns bills of materials into work orders on a planning board, records builds with component consumption, tracks lots through the run and reports expected against actual yield. It is included on Professional and above, or available as a $4/month add-on.
Related resources
Trusted by small businesses
What our customers say
“Super Kind! Quick replies from their support and very easy fixes, changed the dashboard a bit and customized it. Also gave me 450 items extra on the free plan just for me. Highly recommend and again great service!”
“Best customer service! Stockflow's customer support is fast and extremely helpful. They assisted me with customization of the software to improve my experience as a user.”