Dataset Card
Dataset Card — Synthetic Forge PM Work Orders
FICTIONAL / SYNTHETIC DEPLOYMENT MODEL. This dataset is 100% machine-generated.
No real customer, property, tenant, vendor, or work-order data was used. Names,
units, costs, timestamps, and descriptions are invented.
Summary
- Records: 100,000 work orders (configurable via
WO_SIM_N). - Generator:
../src/enterprise-synth.mjs(deterministic, seeded). - Seed:
20260625→ fully reproducible; a corpus fingerprint is recorded in
dataset-manifest.json and in ../verification-report.json.
- Full corpus: written to
../data/enterprise-work-orders.jsonlat run time
(git-ignored, ~60 MB). A 1,000-row sample is committed as sample-1000.jsonl.
Portfolio modeled (fictional)
42,000 units across 19 invented properties in four states: Florida (16,000), Texas (12,000), Georgia (8,000), North Carolina (6,000). States map to the ecosystem's routing regions: FL→SOUTH, GA→EAST, TX→WEST, NC→NORTH.
Schema (one JSON object per line)
| Field | Description |
|---|---|
workOrderId | Unique id, e.g. FPM-WO-1000123 |
property, propertyCode, unit, city, state, region | Location |
tradeCategory | Ground-truth trade (HVAC/PLUMBING/ELECTRICAL/ROOFING/LANDSCAPING/SECURITY/GENERAL_MAINTENANCE) |
priority | Ground-truth priority band (P1–P4) |
tenantDescription | Free-text intake string the agents classify |
submittedAt | ISO timestamp within a fictional 12-month window |
estimatedCost | Synthetic cost estimate (USD) |
slaRequirementHours | Customer-required SLA by priority (P1=4, P2=24, P3=72, P4=120) |
vendorCandidates | 2–3 ranked synthetic vendor options for the trade+region |
pattern | The generated "kind" (clean/emergency/ambiguous/highCost/duplicate/missingLoc/missingField) |
duplicateOf | Source work order id for duplicates (else null) |
missingFields | Fields intentionally omitted (location/description) |
isEmergency | True for P1 emergency cases |
expectedClassification | Answer key — trade |
expectedRoutingRegion | Answer key — region |
expectedValidation | Answer key — VALID / NEEDS_REVIEW / REJECT |
expectedDisposition | Answer key — AUTO_DISPATCH / HUMAN_EXCEPTION / REJECTED |
Generation method (how realism + difficulty are injected)
- Clean / emergency orders use single-trade templates with a non-priority trade
keyword plus an explicit priority phrase, so both trade and priority are determinable from the text.
- Ambiguous orders mix two equal-weight trade keywords → a genuine confidence
tie → a human exception.
- Duplicate orders clone an earlier clean order's text + unit with a later
timestamp inside the duplicate window → caught by the durable fingerprint query.
- highCost orders carry an estimate above the auto-approval cap → human review.
- missingLoc / missingField omit a blocking field → rejected by the validator.
Intended use
Benchmarking the Work Order Agent Ecosystem's classification, routing, validation, and safety behaviour at enterprise scale against a known answer key. Not suitable for any inference about real tenants, properties, or vendors — none exist.
Known limitations
Synthetic text is cleaner and more templated than real tenant submissions, so absolute accuracy on real intake will differ. See ../proof/LIMITATIONS.md.