ABQ PHC · Marketing

Campaign ROI

What each tracked campaign costs and what it brings back. Tracked spend is tiny — most campaigns are unpaid tracking numbers — so read revenue as attribution, not as return on ad dollars.

Loading campaigns…

Where the money works

Top 12 campaigns by attributed revenue. Tracked cost is roughly a thousandth of revenue — a cost bar would be invisible at this scale, so where a campaign has spend it is written into the label instead.

All campaigns

CampaignCategory CostCallsCPL JobsCompleted RevenueROAS
Reading this honestly

LEGACY is not a marketing win. It is the main phone line — returning customers who already know the company. It carries 45% of all jobs, so its revenue measures the brand annuity, not any campaign's performance. Judge marketing on the lines below it.

The missed-call callback leak is real but small. In the last 90 days, 826 LEGACY calls were same-day re-contacts from numbers that first dialed another campaign — but only 234 followed a truly missed call. Re-crediting those would move about $10.7K, roughly 2.1% of LEGACY job revenue. The biggest single donor is Hatch AI's own text-back line, which points at tool hand-off, not lost tracking.

39% of jobs carry campaign ids with no name in marketing.campaigns — they show up here as raw ids. Fixing campaign hygiene in ServiceTitan is the single biggest attribution win available; no spend required.

Cost comes from marketing.costs, recorded monthly. A month's cost is attributed whole to any window containing it — no pro-rating at the edges.

Windows. Last 90 days and trailing 12 months, by job and invoice dates as in the funnel page. Campaigns capped at the top 40 per window by revenue.

Source. ServiceTitan via Peaka project fiCE9M5E — marketing.campaigns, marketing.costs, telecom.calls, job_planning, accounting.invoices.

Drill-down. Click any campaign row or bar to open business-unit and job-level detail (last 90 days) with direct links into ServiceTitan.