A work order is the smallest unit of maintenance truth: one page that authorizes a job, records what was actually done, and totals what it cost. Done right, a stack of them becomes an asset history — failure patterns, real cost of ownership, the evidence trail an auditor or insurer wants. Done wrong (or on a napkin), you learn nothing and pay for it twice. Here are the eight fields every work order needs, the five WO types, priority conventions, numbering that survives growth, and the labor-parts-tax math — with a free generator that does the arithmetic and exports CSV, Excel, and PDF.
Below those, the money: subtotal, tax (if the work is billable), grand total, and sign-offs — technician, supervisor, and received-by. Add two blank fields for cause of failure and follow-up required and the form stops being paperwork and starts being data.
| Type | Trigger | Typical response (CMMS convention) |
|---|---|---|
| Preventive (PM) | Checklist or interval schedule | Planned — next scheduled window |
| Corrective | A failure or a fault found during PM | Priority or planned, by impact |
| Predictive / condition-based | Vibration, oil analysis, sensor readings | Before the predicted failure |
| Emergency | Safety or production threat | Immediate — stabilize within hours |
| Improvement / project | Upgrade, retrofit, capital work | Backlog / shutdown window |
The program-level number most maintenance organizations manage toward: 70-80% of wrench hours in planned work, with reactive/emergency under 20-30% — a widely used KPI benchmark. You can't measure that ratio if emergencies don't get work orders too. Everything gets a number; that's the rule.
Labor amount = hours × rate. Parts amount = qty × unit cost. Subtotal = labor + parts. Tax = subtotal × rate. A real example from the generator's defaults: 3.5 hrs × $85 = $297.50 labor; parts — 2 filters × $12.99 = $25.98, 1 belt × $45.00, 4 screws × $3.75 = $15.00 — subtotal $85.98; pre-tax $383.48; tax at 7% = $26.84; grand total $410.32. Add a half hour of overtime at time-and-a-half ($127.50) and the total climbs to $478.54 — overtime is the line that quietly doubles budgets, which is why it deserves its own row.
Why bother, for internal work nobody bills? Because an hour of unrecorded labor is invisible at budget time and undeniable at review time. The asset that generates $2,000 of work orders a year is a replacement candidate; the one that generates $200 isn't. No work order totals, no such insight.
Live labor, parts, and tax math; auto WO numbering; CSV, Excel, and PDF export; and a QR code so the printed form links back to the digital one.
Open the Work Order Generator →Use one sequence with a year prefix — WO-2026-0147 — and never reuse a number, even for a canceled job. The year prefix sorts cleanly in spreadsheets and folders; the counter tells you volume at a glance. Duplicate numbers are the fastest way to destroy a maintenance history, because every report downstream joins on that key. Paper and spreadsheet fork the moment two people mint numbers; a single generator (or CMMS) keeps them married.
Paper work orders are fine for a crew of five and vanish in truck seats at fifteen. Spreadsheets carry you to roughly a hundred open work orders, then filtering, concurrent edits, and version drift eat the gains. A CMMS earns its subscription the day you want to answer a question like "what did AC-2 cost us over three years?" — if the answer takes more than a minute, the tooling has fallen behind the operation. The escape hatch at every stage: consistent fields and one numbering sequence, because data recorded consistently imports cleanly into whatever comes next.
For the billing side of the same work, pair the WO with our invoice generator (the completed WO's totals drop straight into it) and the quote estimate builder for the jobs that need approval before they need a WO. If the work is scheduled preventive maintenance, start upstream with the PM checklist builder — every completed checklist is a ready-made work order description.
A pre-formatted form with the fields a maintenance job needs: WO number, date, asset, priority, requester, task description, labor lines, parts lines, totals, and sign-offs. The template exists so every job gets recorded the same way — which is the only way the history becomes searchable data instead of a drawer of unique snowflakes.
A work request says something needs attention (anyone can submit one). A work order says the work is approved, prioritized, and assigned — it carries a number, a technician, and a plan. The request is the inbox; the work order is the commitment.
Labor hours x rate per line, parts quantity x unit cost per line, sum both for the subtotal, then apply tax if the work is billable: a job with 3.5 hours at $85, $85.98 of parts, and 7% tax totals $410.32. The precision matters less than capturing the hours and parts at all — unrecorded cost is invisible cost.
Yes, up to about a hundred open work orders; after that a spreadsheet's filtering and version control fall over and a CMMS earns its subscription. The trick either way is the WO number: one sequence, year-prefixed, never reused — that's what ties a parts receipt to an asset's history across systems.