# CoolRoute Command sample data package

CoolRoute Command has 2 buyer-ready CSV template(s), 3 mapped source group(s), and 10 checks for moving from seeded demo data to a first tenant dry import.

Product: CoolRoute Command
Tenant: Evergreen Mechanical
Production domain: hvac-dispatch.ideas-realized.com
Canonical page: /demo-library/hvac-dispatch
Preview screen: Route (route) - dispatch route board and technician schedule proof
Preview URL: https://hvac-dispatch.ideas-realized.com?screen=route
JSON manifest: /demo-library/hvac-dispatch/sample-data-package.json

## Counts
- CSV templates: 2
- Sample rows: 4
- Source groups: 3
- Mapped fields: 10
- Required fields: 8
- Validation gates: 3
- Acceptance checks: 10

## Cutover
Start with a read-only job and technician import, reconcile service categories, then allow dispatchers to update pilot board status while the source platform remains system of record.

## Privacy Note
Customer contact data and appointment notes should be limited to dispatch-visible fields until message consent and retention policy are confirmed.

## Source Maps

### 1. Service jobs export
System: ServiceTitan, Housecall Pro, FieldEdge, or CSV schedule export
Owner: Dispatch manager
Cadence: Morning import plus midday refresh
Status: needs-client
Records: 40 to 160 open jobs

| Source field | Target field | Required | Validation |
| --- | --- | --- | --- |
| job_id | ServiceJob.externalId | Yes | External ID must be unique. |
| customer_name | Customer.displayName | Yes | Required for job card display. |
| service_type | ServiceJob.category | Yes | Unknown service types import as needs-triage. |
| appointment_window | ServiceJob.window | Yes | Invalid windows block route sequencing. |

### 2. Technician roster
System: Field-service platform or HR roster export
Owner: Service manager
Cadence: Weekly plus manual update for absences
Status: ready
Records: 8 to 60 technician records

| Source field | Target field | Required | Validation |
| --- | --- | --- | --- |
| technician_name | Technician.displayName | Yes | Technician name required for assignment. |
| skills | Technician.skills | Yes | Unknown skills import as pending approval. |
| home_zone | Technician.zone | No | Missing zone triggers manual route review. |

### 3. Parts holds
System: Inventory hold list or parts counter spreadsheet
Owner: Parts coordinator
Cadence: Daily during dispatch review
Status: template
Records: 10 to 80 parts-held job rows

| Source field | Target field | Required | Validation |
| --- | --- | --- | --- |
| job_id | PartsHold.jobId | Yes | Job ID must exist in current job import. |
| part_name | PartsHold.partName | Yes | Part name required. |
| eta | PartsHold.eta | No | Unknown ETA flags job as route risk. |

## CSV Templates

### 1. Work order import
Download: /demo-library/hvac-dispatch/import-templates/work-order-import
File: hvac-dispatch-work-orders.csv
Source system: Field-service platform export
Owner: Dispatch manager
Cadence: Daily pilot import

Creates dispatch board jobs, priority state, appointment windows, and customer communication context.

| Column | Required | Example | Description |
| --- | --- | --- | --- |
| job_id | Yes | WO-91642 | Stable work order identifier. |
| customer | Yes | Ridgeview Dental | Customer display name. |
| service_address | Yes | 1228 Grant Ave | Service location. |
| job_type | Yes | No cooling | Service type or work category. |
| window_start | Yes | 2026-07-01T09:00:00 | Appointment window start. |
| window_end | Yes | 2026-07-01T11:00:00 | Appointment window end. |
| priority | Yes | High | Dispatch priority. |
| assigned_tech | No | Jordan Kim | Assigned technician name or blank for unassigned. |

Sample rows:
| job_id |customer |service_address |job_type |window_start |window_end |priority |assigned_tech |
| --- |--- |--- |--- |--- |--- |--- |--- |
| WO-91642 |Ridgeview Dental |1228 Grant Ave |No cooling |2026-07-01T09:00:00 |2026-07-01T11:00:00 |High |Jordan Kim |
| WO-91657 |Marlow Foods |44 Industrial Way |Preventive maintenance |2026-07-01T13:00:00 |2026-07-01T15:00:00 |Normal | |

Acceptance checks:
- Window dates include timezone handling before route sequencing is enabled.
- Unassigned urgent jobs appear in the dispatch queue.
- Customer-facing message drafts remain approval-only during pilot.

### 2. Technician roster import
Download: /demo-library/hvac-dispatch/import-templates/technician-roster
File: hvac-dispatch-technician-roster.csv
Source system: Payroll roster or field-service user export
Owner: Service manager
Cadence: Initial import, then weekly update

Loads technician capacity, service role, territory, and next-stop visibility.

| Column | Required | Example | Description |
| --- | --- | --- | --- |
| tech_id | Yes | TECH-021 | Stable technician identifier. |
| technician_name | Yes | Jordan Kim | Technician display name. |
| role | Yes | Senior HVAC tech | Service role or skill group. |
| territory | Yes | North route | Primary dispatch territory. |
| daily_capacity | Yes | 6 | Target call count or capacity unit. |
| active | Yes | yes | Whether technician is dispatchable. |

Sample rows:
| tech_id |technician_name |role |territory |daily_capacity |active |
| --- |--- |--- |--- |--- |--- |
| TECH-021 |Jordan Kim |Senior HVAC tech |North route |6 |yes |
| TECH-034 |Priya Shah |Maintenance tech |Central route |7 |yes |

Acceptance checks:
- Only active technicians appear as dispatch candidates.
- Daily capacity is approved before utilization metrics are shown.
- Territory labels match the dispatch board route filters.

## Validation Gates
- Job ID system-of-record rule (blocking): Dispatch updates must map back to the source service job record. Resolution: Confirm external job ID and export ownership before pilot launch.
- Technician capacity review (warning): Missing skills or home zones weakens route and assignment signals. Resolution: Service manager approves skill and zone taxonomy during setup.
- Customer messaging consent (blocking): ETA message templates require approved phone/email usage rules. Resolution: Limit message previews until communication policy is confirmed.

## Acceptance Checklist
- Work order import: Window dates include timezone handling before route sequencing is enabled.
- Work order import: Unassigned urgent jobs appear in the dispatch queue.
- Work order import: Customer-facing message drafts remain approval-only during pilot.
- Technician roster import: Only active technicians appear as dispatch candidates.
- Technician roster import: Daily capacity is approved before utilization metrics are shown.
- Technician roster import: Territory labels match the dispatch board route filters.
- Job ID system-of-record rule: Confirm external job ID and export ownership before pilot launch.
- Technician capacity review: Service manager approves skill and zone taxonomy during setup.
- Customer messaging consent: Limit message previews until communication policy is confirmed.
- Open Route after dry import and verify dispatch route board and technician schedule proof.

## Handoff Routes
- Sample data package: /demo-library/hvac-dispatch/sample-data-package - Markdown handoff with CSV templates, seed rows, validation gates, and cutover notes.
- Sample data package JSON: /demo-library/hvac-dispatch/sample-data-package.json - Machine-readable sample-data manifest for implementation automation.
- Production data contract JSON: /demo-library/hvac-dispatch/data-contract.json - Entity, source, event, API-shaped route, and boundary contract for production planning.
- Implementation JSON: /demo-library/hvac-dispatch/implementation.json - Full setup spec with routes, productization fields, tenant defaults, and security notes.
- Implementation intake: /implementation-intake/hvac-dispatch-implementation-intake - Buyer source-system, domain, access, and asset collection workflow.
- Live app proof screen: https://hvac-dispatch.ideas-realized.com?screen=route - Route: dispatch route board and technician schedule proof