Work Order Triage
Workflow purpose
Convert an incoming work order into an actioned task with the right priority, the right vendor or tech, the right cost expectation, and the right approvals. Enforce life-safety SLAs, license and insurance verification, and vendor-rotation discipline.
Trigger conditions
- Explicit: "triage work orders", "priority this WO", "daily WO review", "assign vendor to WO X".
- Implicit: new WorkOrder created; P1 item reaches acknowledgment SLA boundary; aging bucket transition; repeat WO detected for same unit + category.
- Recurring: daily P1 screen; weekly backlog review.
Inputs (required / optional)
| Input |
Type |
Required |
Notes |
| WorkOrder record(s) |
table |
required |
description, reported_ts, unit_id, category |
| Priority playbook overlay |
csv |
required |
P1–P4 definitions and SLA bands |
| Approved vendor list |
csv |
required |
by market, by trade |
| Vendor rate cards |
csv |
required |
cost estimate |
| Insurance/licensure status |
table |
required |
vendor cert tracking |
| Property staff availability |
table |
optional |
tech capacity |
| Prior WO history for unit |
table |
optional |
informs repeat detection |
Outputs
| Output |
Type |
Shape |
| Priority assignment per WO |
field |
P1/P2/P3/P4 |
| Dispatch record |
record |
vendor or tech, ETA, cost estimate |
| Resident communication (if needed) |
email_draft |
entry notice or scheduling |
| Approval request (if above threshold) |
request |
row 6 or 7 |
| Triage queue snapshot |
kpi_review |
counts by priority, aging by priority |
Required context
Asset_class, segment, form_factor, management_mode, market. Jurisdiction required if entry-notice communication will be drafted.
Process
- Classify each WO. Apply the priority playbook: P1 life-safety (gas leak, live electrical exposure, fire/smoke, no heat in cold season, no AC in hot season per overlay, flooding, lockout after hours per overlay, child-safety hazard); P2 habitability (major appliance, plumbing non-emergency, security); P3 comfort; P4 cosmetic.
- Confirm category and trade. Map category to trade (plumbing, electrical, HVAC, appliance, general, landscaping, pest). Flag licensed-trade requirement per overlay.
- Licensed-trade verification (gate). If the trade requires a license, verify the vendor's license and insurance are current. Stale or missing = refuse dispatch; escalate to maintenance_supervisor. The system does not mark any vendor preferred with stale licensure data.
- Vendor or tech selection. Prefer on-staff tech if capacity and skill match; otherwise select from approved vendor list with rotation discipline. Pull cost estimate from rate card.
- Cost gate (decision point). If estimated cost above disbursement thresholds (row 6 or 7), open
approval_request before dispatch. Contract signature triggers row 19.
- Entry-notice communication (if required). Draft resident entry notice per jurisdiction overlay;
legal_review_required if jurisdiction treats as statutory.
- Dispatch. Record ETA. P1 acknowledgment SLA is hard; miss escalates automatically.
- Track to completion. Update status; on close, compute whether WO is a repeat (same unit + category within 30 days); flag vendor if
repeat_work_order_rate exceeds overlay threshold.
- Daily queue snapshot. Counts by priority; aging distribution; vendor performance summary.
- Confidence banner. Surface reference
as_of_date and status; surface vendor certification freshness.
Metrics used
open_work_orders, work_order_aging, repeat_work_order_rate.
Reference files used
reference/normalized/work_order_priority_playbook__middle_market.csv
reference/normalized/approved_vendor_list__{market}.csv
reference/normalized/vendor_rate_cards__{market}.csv
reference/normalized/approval_threshold_defaults.csv
Escalation points
- P1 SLA breach: maintenance_supervisor -> property_manager -> regional_manager.
- Licensed-trade verification failure: maintenance_supervisor -> property_manager; vendor not dispatched.
- Disbursement above threshold: regional_manager -> asset_manager (row 6 or 7).
- Safety-critical scope change: maintenance_supervisor + property_manager + regional_manager (row 4).
Required approvals
- Disbursement above threshold (row 6 or 7).
- Vendor contract signature (row 19).
- Safety-critical scope deferral (row 4).
Failure modes
- Auto-deferring a life-safety item. Fix: P1 never deferred without approval matrix row 4.
- Dispatching to an out-of-cert vendor. Fix: licensure/insurance verification is a gate.
- Treating all WOs equally. Fix: priority playbook governs.
- Silent repeat patterns. Fix: repeat flag opens vendor scorecard review via
workflows/vendor_dispatch_sla_review.
- Sending entry notice without jurisdiction rules. Fix: overlay required; missing -> refuse entry-notice draft.
Edge cases
- After-hours emergency: P1 on-call rotation per overlay; if on-call unassigned, escalation path fires immediately.
- Resident refuses entry: workflow documents refusal; entry notice tracked; legal counsel if blocking a safety issue.
- Multiple units same issue: batch dispatch; root-cause investigation flagged.
- Warranty-covered: route to warranty vendor; do not pay; flag if warranty expired.
- Resident-caused damage: WO still completed; chargeback captured and routed through ledger via
workflows/move_out_administration or lease-violation process.
Example invocations
- "Triage the daily work-order queue for Ashford Park."
- "WO 1842 reports a gas smell — handle."
- "What does the WO backlog look like for Willow Creek this week?"
Example outputs
Output — Daily WO triage snapshot (abridged, Ashford Park)
Queue. P1 x 0, P2 x 4, P3 x 14, P4 x 5. open_work_orders within band.
P1 status. None open. Trailing week P1s acknowledged within SLA.
Dispatch this cycle.
- 2 P2 plumbing: dispatched to preferred vendor, licenses current; cost within threshold; no gate.
- 1 P2 HVAC: dispatched to preferred vendor, licenses current; estimated cost above threshold;
approval_request row 6 opened.
- 1 P2 appliance: on-staff tech assigned.
- 2 P3: scheduled for next week.
Repeat flags. One P3 in unit 204 is second in 21 days for same category; vendor flagged for scorecard review via workflows/vendor_dispatch_sla_review.
Entry notices. 3 drafted per Charlotte overlay, legal_review_required banner; PM to confirm send.
Confidence banner. approved_vendor_list__charlotte@2026-04-01, status=starter. vendor_rate_cards__charlotte@2026-04-01, status=sample. Vendor license check freshness surfaced per vendor.
1---2name: work-order-triage-23description: Classifies every incoming work order by urgency and category, assigns the right vendor or tech from the approved list, computes estimated cost and routes above-threshold disbursements for approval, verifies licensure and insurance for any licensed trade, and tracks the order through completion. Life-safety items are P1 and are never autonomously deferred.4---56# Work Order Triage78## Workflow purpose910Convert an incoming work order into an actioned task with the right priority, the right vendor or tech, the right cost expectation, and the right approvals. Enforce life-safety SLAs, license and insurance verification, and vendor-rotation discipline.1112## Trigger conditions1314- **Explicit:** "triage work orders", "priority this WO", "daily WO review", "assign vendor to WO X".15- **Implicit:** new WorkOrder created; P1 item reaches acknowledgment SLA boundary; aging bucket transition; repeat WO detected for same unit + category.16- **Recurring:** daily P1 screen; weekly backlog review.1718## Inputs (required / optional)1920| Input | Type | Required | Notes |21|---|---|---|---|22| WorkOrder record(s) | table | required | description, reported_ts, unit_id, category |23| Priority playbook overlay | csv | required | P1–P4 definitions and SLA bands |24| Approved vendor list | csv | required | by market, by trade |25| Vendor rate cards | csv | required | cost estimate |26| Insurance/licensure status | table | required | vendor cert tracking |27| Property staff availability | table | optional | tech capacity |28| Prior WO history for unit | table | optional | informs repeat detection |2930## Outputs3132| Output | Type | Shape |33|---|---|---|34| Priority assignment per WO | field | P1/P2/P3/P4 |35| Dispatch record | record | vendor or tech, ETA, cost estimate |36| Resident communication (if needed) | `email_draft` | entry notice or scheduling |37| Approval request (if above threshold) | request | row 6 or 7 |38| Triage queue snapshot | `kpi_review` | counts by priority, aging by priority |3940## Required context4142Asset_class, segment, form_factor, management_mode, market. Jurisdiction required if entry-notice communication will be drafted.4344## Process45461. **Classify each WO.** Apply the priority playbook: P1 life-safety (gas leak, live electrical exposure, fire/smoke, no heat in cold season, no AC in hot season per overlay, flooding, lockout after hours per overlay, child-safety hazard); P2 habitability (major appliance, plumbing non-emergency, security); P3 comfort; P4 cosmetic.472. **Confirm category and trade.** Map category to trade (plumbing, electrical, HVAC, appliance, general, landscaping, pest). Flag licensed-trade requirement per overlay.483. **Licensed-trade verification (gate).** If the trade requires a license, verify the vendor's license and insurance are current. Stale or missing = refuse dispatch; escalate to maintenance_supervisor. The system does not mark any vendor preferred with stale licensure data.494. **Vendor or tech selection.** Prefer on-staff tech if capacity and skill match; otherwise select from approved vendor list with rotation discipline. Pull cost estimate from rate card.505. **Cost gate (decision point).** If estimated cost above disbursement thresholds (row 6 or 7), open `approval_request` before dispatch. Contract signature triggers row 19.516. **Entry-notice communication (if required).** Draft resident entry notice per jurisdiction overlay; `legal_review_required` if jurisdiction treats as statutory.527. **Dispatch.** Record ETA. P1 acknowledgment SLA is hard; miss escalates automatically.538. **Track to completion.** Update status; on close, compute whether WO is a repeat (same unit + category within 30 days); flag vendor if `repeat_work_order_rate` exceeds overlay threshold.549. **Daily queue snapshot.** Counts by priority; aging distribution; vendor performance summary.5510. **Confidence banner.** Surface reference `as_of_date` and `status`; surface vendor certification freshness.5657## Metrics used5859`open_work_orders`, `work_order_aging`, `repeat_work_order_rate`.6061## Reference files used6263- `reference/normalized/work_order_priority_playbook__middle_market.csv`64- `reference/normalized/approved_vendor_list__{market}.csv`65- `reference/normalized/vendor_rate_cards__{market}.csv`66- `reference/normalized/approval_threshold_defaults.csv`6768## Escalation points6970- P1 SLA breach: maintenance_supervisor -> property_manager -> regional_manager.71- Licensed-trade verification failure: maintenance_supervisor -> property_manager; vendor not dispatched.72- Disbursement above threshold: regional_manager -> asset_manager (row 6 or 7).73- Safety-critical scope change: maintenance_supervisor + property_manager + regional_manager (row 4).7475## Required approvals7677- Disbursement above threshold (row 6 or 7).78- Vendor contract signature (row 19).79- Safety-critical scope deferral (row 4).8081## Failure modes82831. Auto-deferring a life-safety item. Fix: P1 never deferred without approval matrix row 4.842. Dispatching to an out-of-cert vendor. Fix: licensure/insurance verification is a gate.853. Treating all WOs equally. Fix: priority playbook governs.864. Silent repeat patterns. Fix: repeat flag opens vendor scorecard review via `workflows/vendor_dispatch_sla_review`.875. Sending entry notice without jurisdiction rules. Fix: overlay required; missing -> refuse entry-notice draft.8889## Edge cases9091- **After-hours emergency:** P1 on-call rotation per overlay; if on-call unassigned, escalation path fires immediately.92- **Resident refuses entry:** workflow documents refusal; entry notice tracked; legal counsel if blocking a safety issue.93- **Multiple units same issue:** batch dispatch; root-cause investigation flagged.94- **Warranty-covered:** route to warranty vendor; do not pay; flag if warranty expired.95- **Resident-caused damage:** WO still completed; chargeback captured and routed through ledger via `workflows/move_out_administration` or lease-violation process.9697## Example invocations98991. "Triage the daily work-order queue for Ashford Park."1002. "WO 1842 reports a gas smell — handle."1013. "What does the WO backlog look like for Willow Creek this week?"102103## Example outputs104105### Output — Daily WO triage snapshot (abridged, Ashford Park)106107**Queue.** P1 x 0, P2 x 4, P3 x 14, P4 x 5. `open_work_orders` within band.108109**P1 status.** None open. Trailing week P1s acknowledged within SLA.110111**Dispatch this cycle.**112113- 2 P2 plumbing: dispatched to preferred vendor, licenses current; cost within threshold; no gate.114- 1 P2 HVAC: dispatched to preferred vendor, licenses current; estimated cost above threshold; `approval_request` row 6 opened.115- 1 P2 appliance: on-staff tech assigned.116- 2 P3: scheduled for next week.117118**Repeat flags.** One P3 in unit 204 is second in 21 days for same category; vendor flagged for scorecard review via `workflows/vendor_dispatch_sla_review`.119120**Entry notices.** 3 drafted per Charlotte overlay, `legal_review_required` banner; PM to confirm send.121122**Confidence banner.** `approved_vendor_list__charlotte@2026-04-01, status=starter`. `vendor_rate_cards__charlotte@2026-04-01, status=sample`. Vendor license check freshness surfaced per vendor.