The flow
Ribbon width is volume. Red drops are the two places demand dies: opportunities that never became a job, and jobs that canceled. The gray lane is direct & returning demand — jobs with no tracked lead source.
Momentum
By trade
Booked · completed · canceled · revenue| Trade | Booked | Completed | Canceled | Revenue |
|---|
Why jobs cancel
| Reason | Jobs |
|---|
The missed-call callback leak is real but small. Of ~9,850 LEGACY calls in 90 days, 826 were same-day re-contacts from a number that first called on another campaign — but only 234 followed a genuinely missed call. Re-crediting them would move about $10.7K (2.1% of LEGACY job revenue). The biggest single donor is Hatch AI's text-back line, which suggests tool hand-off, not lost tracking.
Lanes. Tracked opportunities = inbound calls linked to a lead or a job, plus web bookings not originating from a call. Direct & returning = jobs created with no tracked opportunity behind them — mostly existing customers.
Windows overlap at the edges. Jobs are counted by creation date, completions by completion date, revenue by invoice date — a job can be booked in one window and finish in the next, so stages are measured, not strictly nested.
Revenue is all active invoices in the window. It runs ~1% above the sum of completed-job tickets because some invoices don't tie back to a completed job in the same window.
Drill down. Rows in the trade table drill to business unit and then to individual jobs (last 90 days), and each job, customer, and invoice links straight into ServiceTitan.
Source. ServiceTitan via Peaka project fiCE9M5E — telecom.calls, crm.bookings/leads, job_planning, accounting.invoices. Queries re-run on page load.