A Marketing Teardown of the 31 Auto Repair Locations We Manage
We run marketing for 31 automotive service locations, instrumented from ad click to repair order. The portfolio generates roughly 12,900 unique inbound callers per month. Here is what the data actually shows, including where industry-standard attribution silently fails.
Most writing about multi-location marketing is produced by people selling software to operators. This paper is built on primary data instead. We manage marketing for 31 automotive service locations: single shops, and multi-location operator groups of up to four stores, run on shared infrastructure, shared instrumentation, and one operating cadence. That book is the size of a mid-market MSO's footprint, and it produces the telemetry below.
Client identities are anonymized throughout; every figure comes from live production systems.
The portfolio at a glance
| Metric | Value | Measurement basis |
|---|---|---|
| Locations under management | 31 | Ads accounts + per-location campaign map, verified monthly |
| Unique inbound callers | ~12,900 / month | Call tracking, deduplicated by caller ID across two platforms, on the call-tracked stores |
| Ad accounts under daily pacing | 25 | Automated daily budget-pace monitor |
| Interaction records analyzed for this paper | 1.45M | Full-history export across 13 call/messaging workspaces covering 20 locations |
| Attribution join audited | Click to call to repair order | Per-location instrumentation audit |
The call volume alone, roughly 155,000 unique inbound callers a year, is the top of a funnel most operators never measure past the first touch.
The uncomfortable finding: standard attribution is broken at the join
Every multi-location marketing deck shows the same diagram: ad click, phone call, booked job, revenue. The industry assumption is that call tracking plus a shop management system gives you that chain.
We audited the chain across the book. Two findings:
1. The click ID almost never survives the call. In one call-tracking account covering multiple locations, we examined 11,867 tracked calls. The number that carried a Google click ID (gclid) through to the call record: zero. Not low. Zero. The tracking configuration was industry-standard; the join everyone assumes exists simply wasn't being written.
2. The interaction-to-revenue link is effectively 0% by default. Across 1.45 million call and message interaction records from 13 workspaces covering 20 of the locations, the share of interactions programmatically linked to a repair order rounded to zero. The data to make the link existed on both sides; nothing in the default stack made the join.
The implication for any multi-location operator: your marketing ROAS reporting is almost certainly modeled, not measured. This holds regardless of what your vendors' dashboards imply. The dashboards report clicks and calls. The revenue attribution beneath them is usually inference.
What measured, rather than modeled, return looks like
Because the default join is broken, we built it manually: caller-ID-level matching between call tracking records and repair orders, with hashed phone/email identity used to route around the missing click ID (the same primitive Google's enhanced conversions for leads uses).
Two results from that work:
| Case | Window | Measured result |
|---|---|---|
| Single location, call-conversion join | Trailing period | 7.1x ROAS, ad spend to matched repair-order revenue |
| Single location, click/call to RO bridge audit | Audit window | $86,000 in repair-order revenue traced to paid search |
Two things are worth noting about these figures. First, they are floors, not estimates: every dollar is a matched repair order, and unmatched revenue (cash customers, household members booking under a different number) is excluded rather than modeled in. Second, they took engineering to produce. The measured 7.1x and the unmeasurable default coexist in the same book, on the same software stack. The difference is entirely in the join.
The operating model that makes 31 locations manageable
The book runs on an automation-first cadence rather than headcount:
- Daily budget pacing across all 25 ad accounts, generated automatically every morning: spend pace vs. calendar pace, per account, with variances flagged. No account waits for a monthly review to discover it underspent by 40%.
- Per-location budget governance inside shared accounts. Where one ad account covers several stores, each location has its own campaigns and caps, so budget cannot silently migrate between sibling stores.
- Weekly automated capture of call detail that ad platforms purge after roughly 60 days. This is the raw material for the revenue joins above. If you are not archiving this, your attribution ceiling is set by a vendor's retention policy.
- Closed-loop conversion feeds, now being piloted: matched repair-order revenue pushed back into the ad platform as offline conversions, so bidding optimizes toward revenue rather than call volume.
The labor model this implies is the subject of a companion paper. The short version is that contribution per marketing FTE falls as location count grows unless the instrumentation above exists, which is the opposite of what most consolidation models assume.
What this means if you operate multiple locations
- Audit the join before trusting any ROAS number. Ask one question of your stack: "Show me ten repair orders and the specific ad interactions that produced them." If the answer involves the word "typically," the join doesn't exist.
- Archive call detail now. The platforms purge it; your future attribution depends on it.
- Treat measured ROAS as a floor and manage to it. A verified 7.1x floor is worth more than a modeled 12x that no one can defend in a board meeting.
- Budget pacing is an automation problem, not a staffing problem. At 25 accounts, humans checking dashboards is how underspends hide for months.
Methodology note: all figures are drawn from live production systems in the book described (call tracking platforms, shop management systems, and ad platform APIs) over 2025-2026. Location count is as of August 2026. Locations and operators are anonymized. Matching is deterministic (caller ID, hashed phone/email), not probabilistic modeling.