Short answer: a maintenance work order system turns every repair request into one tracked record that moves through five stages: intake, triage, assignment, completion, and invoice match with cost posting. Each stage adds specific facts to the record. When it works, you can pick any repair and see who reported it, how urgent it was, who did it, what was approved, what it cost and which property paid.
Picture a leak in unit 4B. The tenant tells the site manager in the hallway. The manager calls a plumber from memory. Three weeks later an invoice for $640 arrives with no job reference. Nobody can say whether $640 was the agreed price, whether the leak is fixed, or which owner should carry the cost. Now repeat that across 30 buildings.
This guide walks through each stage, the fields it needs and the handoff rule that moves a job to the next stage. It ends with a simple test you can run on your own records this week.
Why informal tracking breaks down
Informal tracking breaks down because it depends on one person remembering. That works for one building with a manager who knows every tenant and contractor. It fails as soon as the portfolio grows or that person takes a week off.
The failures are predictable:
- Lost requests. A phone call or text leaves no record. If the manager forgets, the request disappears until the tenant complains again.
- No triage. A burst pipe and a squeaky door wait in the same pile.
- No agreed scope or price. When nobody wrote down what the contractor was asked to do, every invoice becomes a debate.
- Invoices that match nothing. Finance either pays on trust or spends an hour rebuilding the job.
- Costs on the wrong property. Repair spend that is not tied to a property and unit makes property level results a guess.
Stage 1: Request intake
Intake is where every request, from any source, becomes a work order with the same set of fields. Tenants may use a portal, call the office, send an email or stop a technician in the lobby. Inspectors and managers raise jobs too. The channel can vary. The record should not.
Capture these fields at intake:
- Property, and the unit or common area
- Category: plumbing, electrical, HVAC, appliance, structural or general
- What the requester says is wrong, in their words
- Requester name and contact details
- Date and time reported
- Photos, if the requester has them
- Permission to enter, and any pets or access notes
A tenant portal makes this easier. Residents submit the request, add photos and see the status without calling. Fewer "any update?" calls reach the office, and the request arrives with the property and unit already filled in.
Handoff rule: the job moves to triage once property, unit, category and description are filled in.
Stage 2: Triage and priority
Triage sets the priority, and the priority sets the response time. Keep it simple. Three or four levels are enough for most teams.
| Priority | What it covers | Example target response |
|---|---|---|
| Emergency | Risk to health, safety or the building: burst pipe, gas smell, no heat in winter, broken entry door | Same day, often within hours |
| Urgent | Affects whether the home is usable but is not an immediate hazard: no hot water, fridge failure | 24 to 48 hours |
| Routine | Comfort or function issues that can be scheduled: dripping tap, loose cabinet door | Within your standard service window |
| Preventive | Planned work: filter changes, servicing, inspections | On the planned date |
The response times above are examples. Set your own, and write them into your vendor contracts. Our guide to the vendor SLA and its three clocks shows how to turn priority levels into contract terms.
Some repairs also have legal deadlines. Many states and cities set time limits for repairs that affect health, safety or habitability, and the rules vary by location. Build those rules into your categories so a heating failure in January is flagged as an emergency automatically. Check the rules for each place you operate, and confirm with counsel where you are unsure.
Handoff rule: the job moves to assignment once it has a priority and a target date.
Stage 3: Assignment and scheduling
Assignment is where you record who will do the work, what they are allowed to do and what it should cost. Teams often skip this step, yet it is the one that makes invoice checks possible later.
The work order should show:
- The technician or vendor assigned
- The scheduled date and time
- The approved scope of work
- A quote, or a not to exceed amount
- Access instructions and the tenant contact for scheduling
Larger or planned jobs may also need a purchase order. Our post on purchase orders vs work orders explains when a PO earns its place and when the work order alone is enough.
Access causes a lot of delay. The vendor turns up and cannot get in, or the tenant was not told. Send the tenant the appointment window and give the vendor the access notes. Fewer wasted trips means fewer callout fees.
Handoff rule: the job moves to in progress once a named person has accepted it with an approved scope and price.
Stage 4: Work and completion
During the job, the status tells everyone where things stand without a phone call. Use a short list: assigned, in progress, on hold (for example, waiting for parts), completed and closed.
At completion, the technician records:
- What was found and what was done
- Who did it, and the completion date and time
- Parts used and labour time
- Before and after photos where useful
- Any follow up work needed
Keep "completed" and "closed" as separate statuses. Completed means the technician says the work is done. Closed means the record has been checked, the invoice is matched and the requester has confirmed. Our work order closeout checklist covers what a closed record should hold.
Link work orders to the unit and, where you can, to the asset. If the same water heater has been repaired three times in a year, you want to see that before the fourth call, so you can weigh one more repair against a replacement.
Handoff rule: the job moves to invoice match once the completion notes are in.
Stage 5: Invoice match and cost posting
This is where maintenance meets the books. Before paying a vendor invoice, compare three things:
- The work order: what was approved, and at what price
- The completion record: what was actually done
- The invoice: what the vendor is charging
If all three agree, approve it. If the invoice is higher than the approved amount, or covers work the completion notes do not mention, hold it and ask. This check stops overbilling and duplicate invoices, and it works because you recorded scope and price back at assignment.
Once approved, post the cost to the right property, unit and expense account. Property level repair spend is what makes budget vs actual reports and owner statements accurate. In a connected vendor management and accounts payable process, the matched invoice moves into the payment run without being typed in again.
Handoff rule: the job closes once the cost is posted and the requester has confirmed, or the confirmation window has passed.
The record, stage by stage
Here is the whole system on one page. Each stage has an owner, adds specific fields and has a clear rule for moving on.
| Stage | Usual owner | Fields added | Moves on when |
|---|---|---|---|
| 1. Intake | Requester, front desk or coordinator | Property, unit, category, description, contact, photos, access | Required fields are complete |
| 2. Triage | Maintenance coordinator | Priority, target date, legal flag if any | Priority and target date are set |
| 3. Assignment | Coordinator or property manager | Assignee, schedule, scope, quote or limit, PO if needed | Assignee accepts |
| 4. Completion | Technician or vendor | Work done, parts, labour, photos, follow up | Completion notes are entered |
| 5. Invoice and cost | Accounts payable | Invoice match result, GL account, property and unit coding | Cost posted and requester confirmed |
Test your system: the five job trace
You can check whether your current setup works in about an hour. Pick five repairs that were paid last month. Choose a mix: one emergency, one vendor job over $500, one in house job, one common area job and one that was reopened. For each, try to answer these questions from the records alone, without asking anyone:
- When was it reported, and by whom?
- What priority was it given, and was the target date met?
- Who was assigned, and what scope and price were approved?
- What did the technician record at completion?
- Does the invoice match the approved price and the work done?
- Which property, unit and expense account carry the cost?
- Did the requester confirm the fix?
Score one point for each question you can answer from the record. Five jobs give a score out of 35.
Worked example. A team traces five jobs and scores 24 out of 35. Intake and completion score well. The gaps sit in two places: the approved price was missing on three of the five jobs, and two costs were posted to the building but not the unit. The fix is narrow. Make the quote or limit a required field before a job can be assigned, and make unit coding required before an invoice can be approved. A month later they run the trace again on five new jobs to see if the score moved.
Gaps tend to cluster at one stage. Fix that stage first, then trace again.
Where RIOO fits
In RIOO, requests from the tenant portal, the office and site teams land in one queue as work orders. Work order management handles priority, assignment, mobile updates and completion notes. Because RIOO is built natively on NetSuite, the vendor bill is matched against the same work order and posts to the property, unit and GL account in the same system. There is no export from a maintenance tool into accounting.
Frequently asked questions
What is a maintenance work order system?
It is a process, usually run in software, that records every maintenance request as a work order and moves it through set stages: intake, triage, assignment, completion, and invoice match with cost posting. Each job ends tied to a property, a cost and a completion record.
What are the stages of a work order?
Five stages: request intake, triage and priority, assignment and scheduling, work and completion, then invoice match and cost posting. Many teams add a final closeout check before the status changes to closed.
How should maintenance requests be prioritized?
Use three or four levels, such as emergency, urgent, routine and preventive, each with a target response time. Build local legal repair deadlines into the categories so time sensitive jobs are flagged automatically.
What is three way matching for maintenance invoices?
It compares the work order (approved scope and price), the completion record (what was done) and the vendor invoice (what is charged). If they agree, the invoice is approved. If not, it is held for review before payment.
Why record repair costs by property and unit?
Property level costs make budget vs actual reports and owner statements accurate. Unit and asset level costs build a repair history that shows when replacement makes more sense than another repair.
How do I know if my work order process is working?
Trace five recent paid jobs from report to payment using the records alone. If you cannot answer who, what, when, how much and which property for each one, find the stage where the gaps cluster and fix that first.
Want to see a request travel from the tenant portal to a posted cost on your own NetSuite account? See how RIOO work order management works.


















