Stop losing jobs to scheduling chaos.
RoutrIQ gives HVAC, plumbing, and electrical crews an AI dispatcher that assigns the right tech, flags SLA risk early, and reroutes on emergencies in under 5 seconds.
Built for field service from day one.
HVAC, plumbing, and electrical crews have specific scheduling problems. RoutrIQ is built around them — not bolted onto a generic platform.
Seven engines. One API. One learning loop.
Each engine is a pure TypeScript module — unit-tested, independently replaceable. No engine imports another. Composition happens at the API layer.
Assignment
Scores every technician against every job on five factors. Explainable. Weights are versioned and pinned to every decision.
Routing
Greedy insertion with time windows. Sub-second for a daily board. LRU-cached distance matrix to control map API spend.
Emergency Rerouting
Priority one job arrives. Board rebuilds in under five seconds. Displaced jobs get new owners and customers get notified.
Prediction
Rolling mean and variance per technician per skill. Falls back to skill-level prior, then job estimate. Welford's algorithm online.
SLA Risk
Flags jobs that will probably miss the window before they do. Logistic model over driving slack, day load, and technician variance.
Simulation
ProAdd a truck, shift windows, close a territory. Get the projected throughput, on-time rate, and revenue delta in seconds.
Learning
ProNightly retrain on ninety days of outcomes. Grid perturbation around current weights, bounded step size, versioned history.
Audit trail
Every assignment persists scoring inputs, predicted duration, delay risk, and weights_version. Replayable forever.
Integrations
Normalized internal job model. ServiceTitan REST, Jobber GraphQL, Housecall Pro REST. Adapters, not dependencies.
Explainable by design
Every assignment carries a reason.
Not a black box. Not a prompt. A deterministic score built from five weighted factors, with the weights version pinned to the decision. Any assignment can be replayed against the exact inputs that produced it.
See the decision trail{
"technicianId": "tech_taylor",
"score": 94.2,
"rank": 1,
"reason": {
"skill_match": 1.0,
"distance_score": 0.95,
"priority_weight": 1.0,
"performance": 0.96,
"availability": 1.0,
"predicted_duration_minutes": 88,
"delay_risk": 0.08
},
"weightsVersion": 14
}Watch it assign a full board.
Five jobs. Five technicians. Every assignment scored on skill, distance, priority, performance, and availability. The whole board in under five seconds.
| Customer | Priority | Skills | Status | Assigned tech | Score |
|---|---|---|---|---|---|
| Cedar Park School | Emergency | HVAC | unassigned | — | — |
| Westlake Residence | High | Plumbing | unassigned | — | — |
| Northside Clinic | High | Electrical | unassigned | — | — |
| South Austin Retail | Normal | HVAC | unassigned | — | — |
| Round Rock Office | Normal | Plumbing | unassigned | — | — |
Your metrics dashboard — day one
Know exactly what changed and why.
RoutrIQ tracks four operator KPIs against a rolling baseline. Every number comes from real assignment data — not estimates.
Simple, transparent pricing.
Flat monthly fee — one price covers your whole team. Cancel anytime. All plans include a 14-day free trial.
- Up to 5 technicians
- AI assignment engine — skill, distance, priority, performance
- Real-time SLA risk alerts
- One FSM integration (ServiceTitan, Jobber, or Housecall Pro)
- Audit log — 90-day retention
- Email support, business hours
- Up to 20 technicians
- Everything in Starter
- Per-org scoring model with weekly updates
- All 3 FSM integrations simultaneously
- Duration predictor with learned priors
- What-if simulation engine
- Webhook delivery to internal systems
- Audit log — 2-year retention
- Priority support, 4-hour first response
- Unlimited technicians
- Everything in Pro
- MFA enforcement (TOTP)
- Custom scoring weights — quarterly tuning with your ops team
- Named CSM, priority support, quarterly business review
Ready to look under the hood?
OpenAPI spec, security posture, and the full decision model are linked below. API keys by request.