Ask a shop owner how their marketing is doing and most will point to a dashboard. Cost per click is down. Cost per lead looks fine. Impressions are up. None of those numbers answer the only question that actually matters: did the money you spent on Google, on Meta, or on that mailer last month turn into a booked repair order worth more than it cost. Most local businesses are flying on instruments that measure attention, not revenue, and the gap between those two things is where ad budgets quietly bleed out for months before anyone notices.

Why spend per click is lying to you.
Spend per click tells you how cheaply you bought attention. It doesn't tell you whether that attention paid you back.
Every ad platform is built to hand you numbers that make the platform look good, and cost per click is the easiest one to hand over, because it only requires counting clicks. A $2.80 cost per click on Google or an $0.85 cost per click on Meta sounds efficient in isolation, and it is efficient, at the one job it measures: getting someone to land on your page. It says nothing about whether that visitor called, whether that call turned into an appointment, or whether that appointment turned into a repair order worth more than the ad cost to produce it.
Cost per lead is a half-step better and still misleading on its own. A lead is a phone call, a form fill, or a text, and plenty of leads never become customers. A shop running two campaigns might see Campaign A producing leads at $18 and Campaign B at $42, and conclude Campaign A is the clear winner. If Campaign A's leads are mostly tire-kickers calling to ask about hours and Campaign B's leads close at twice the rate into higher-ticket jobs, Campaign B is almost certainly the better investment, and a dashboard sorted by cost per lead would have told you to kill it first.
This is exactly the blind spot that makes old-school marketing feel deceptively comfortable by comparison. A coupon mailer or a radio spot never forces this question, because nobody expects you to track it, which lets a shop keep running it for years on a vague sense that "it brings people in" without ever having to defend the number. Direct mail, coupon mailers, radio, print, and billboards are the old playbook: untrackable, skip it as a serious channel, not because the format is inherently bad but because you can never know if it's working. Digital advertising doesn't get that excuse. Every click on Google or Meta can be traced forward to a real outcome if you build the tracking to do it, which means there's no honest reason left to judge a digital channel on anything short of the revenue it actually produced.
The metric that actually matters: spend per booked repair order.
The number that replaces cost per click and cost per lead is simple to state and only slightly more work to calculate: spend per booked job, or for a repair shop specifically, spend per booked repair order. Take the total amount spent on a channel over a period, divide it by the number of repair orders that channel actually produced, and you have a figure denominated in the only currency that matters, real booked work, not clicks or raw inquiries.
Spend per booked RO = total channel spend ÷ repair orders opened that came from that channel.
That single number does something cost per click and cost per lead never can: it lets you compare a Google Ads campaign, a Meta campaign, and a direct mail drop on genuinely equal footing, because all three get reduced to the same unit. $2,000 in Google spend that produces 13 repair orders is $154 per booked RO. $2,000 in Meta spend that produces 9 is $222 per booked RO. $2,000 in direct mail that you can't trace to a single repair order with any confidence isn't $0 per booked RO, it's an unknown, and an unknown next to two known numbers is not a channel worth defending with real budget.
Spend per booked job is the one number that puts every channel on the same scoreboard. A channel with a higher cost per click or cost per lead can still be the better channel if its leads close at a higher rate, and the only way to know that is to track all the way through to the booked job, not stop at the click.
None of this requires a complicated formula or a data science background. It requires knowing two things for every channel you run: what you spent, and how many of those dollars actually turned into a repair order on your schedule. Most shops already have the first number sitting in an ads dashboard. Almost none have the second, because almost none have built the tracking spine that connects an ad dollar to a real appointment. That spine is the actual subject of the rest of this guide.
Free Marketing ROI Audit
We'll calculate your real spend per booked job.
No guessing at which channel is actually working. We'll pull your real spend and your real booked repair orders by source and hand you the honest number, channel by channel.
Get My Free ROI Audit →Building the tracking spine, channel by channel.
Spend per booked job only works if every dollar spent can actually be traced to a real outcome. That requires a different setup for each channel, because each one hands you a different piece of the puzzle by default and leaves you to build the rest.
Google Ads. Google can tell you a click happened and, with a call extension or a call-only ad, that a call started. It cannot tell you on its own whether that call turned into a booked repair order, and it definitely can't tell you that about a call placed to your regular website phone number instead of a dedicated ad number. The fix is a call tracking number tied to your Google traffic specifically, paired with importing call conversions back into the account so Smart Bidding can actually optimize toward calls that book, not just calls that connect. We cover the detailed setup for this piece, including dynamic number insertion and the 60-second call-length threshold worth filtering on, in how to track which ads drive phone calls, so this guide won't re-walk that part step by step.
Meta Ads. Meta has an even bigger blind spot than Google, because it has no native visibility into phone calls at all. The bridge is the same call tracking number used for Google, routed separately so Meta-driven calls are distinguishable from Google-driven ones, combined with sending the actual outcome, booked or not booked, back to Meta as an offline conversion event through the Conversions API. Without that offline event, Meta's algorithm is optimizing toward whichever audience clicks the most, with zero feedback on whether those clicks ever became paying customers.
Direct mail. A unique offer code or a dedicated phone number printed on a mailer gets you a rough redemption count, and that's about the ceiling of what direct mail tracking can honestly deliver. It can't tell you who received the piece and called anyway through a different number out of habit, can't tell you who received it and never looked at it, and can't feed a conversion signal back into any system that improves targeting over time the way digital platforms do. Direct mail stays what it's always been: old playbook, untrackable, skip it as a primary channel, and if you run it at all, treat its "ROI" as a loose estimate, never as a number you'd defend with the same confidence as a digital channel's.

Laid side by side, the honest difference between these three channels is stark enough to settle most budget arguments on its own.
| Channel | Native Tracking | What You Must Add | Traceable to a Booked RO? |
|---|---|---|---|
| Google Ads | Clicks, call button taps | Call tracking number + call conversion import | Yes, reliably |
| Meta Ads | Clicks, form submissions | Call tracking + Conversions API offline events | Yes, reliably |
| Direct Mail | None | Unique offer code or dedicated number | Rough estimate at best |
A worked month, with real numbers.
Here's what this looks like applied to a single, representative month for a general repair shop running all three channels at once. The figures are illustrative, built to show the structure of the calculation, swap in your own actuals and the method stays identical.
Google Ads spend: $2,200. Repair orders traced to Google via call tracking and conversion import: 14. Spend per booked RO: $157.
Meta Ads spend: $1,400. Repair orders traced to Meta via the same call tracking setup plus offline conversions: 9. Spend per booked RO: $156.
Direct mail: $900 spent on a 5,000-piece drop with a unique offer code. Redemptions tied to the code: 4. At face value that's $225 per redemption, worse than either digital channel, and that number is still generous, since it assumes every other call that month genuinely originated from the mailer and nobody who saw it simply called the number already saved in their phone instead of using the code. The honest version of this line is closer to "unknown, likely worse than $225," which is not a number you can responsibly compare against two channels you can actually verify.

Laid next to each other, Google and Meta land within a dollar of each other at $157 and $156 per booked RO, both comfortably below a typical shop's average repair order of $300 to $400, which makes both channels profitable before you've even applied margin. Direct mail, the channel most shops have run the longest and feel the most comfortable with, is the one channel nobody can actually defend with a real number. That's not a coincidence specific to this example, it's the pattern we see nearly every time a shop finally runs this math for the first time: the newer, more trackable channels turn out to be the ones actually paying, and the familiar, comfortable channel is the one that's been getting a pass purely because nobody made it prove itself.
This same structure scales across locations, not just channels. We tag spend and booked repair orders by channel for every Network Automotive location separately, because a channel that performs at $150 per booked RO in one market can run noticeably higher in another, even on the identical campaign setup, and averaging the two together would hide a problem in the weaker-performing location behind a strong number from the other.
The tools, without hiring a data team.
None of the tracking described above requires custom software or an in-house analyst. It requires three ordinary pieces, set up once and then checked monthly.
A call tracking platform. Most local service businesses land between $40 and $150 a month depending on number count and call volume, plus small per-minute usage fees. This single piece is what makes both Google and Meta call tracking possible, and it's the one expense on this list that pays for itself the first month it reveals a channel that wasn't actually working.
A source field in whatever you already use to log repair orders. Whether that's dedicated shop management software or a basic spreadsheet, the requirement is the same: every repair order gets tagged with where the customer actually came from, Google, Meta, direct mail, walk-in, referral, at the moment it's opened, not reconstructed from memory at the end of the month. This is almost always a people problem before it's a software problem. Whoever answers the phone or greets the customer needs a simple habit of asking and logging it, and that habit matters more than which tool holds the data.
A simple monthly tally. A spreadsheet with one row per channel, spend in one column, booked repair orders in the next, and spend per booked RO calculated automatically in a third, is genuinely enough. This doesn't need a dashboard with charts nobody opens. It needs three numbers per channel, updated once a month, looked at for five minutes by whoever makes the budget decisions.
Free Marketing ROI Audit
We'll build the tracking spine for you.
Call tracking, conversion imports, source tagging, the monthly tally, we set up the whole spine so the real number shows up automatically instead of requiring a spreadsheet project every month.
Get My Free ROI Audit →What to do with the number once you have it.
The number doesn't care which channel produced it, which ad you're proud of, or which one you've run the longest. It only cares whether the math works.
Once spend per booked RO exists for every channel you run, the decisions that used to be guesswork become arithmetic. A channel sitting comfortably below your average repair order, with enough margin left over to cover parts and labor, is a channel worth funding further, and our guide to when to increase your ad spend as a local business covers the two additional gates, profit margin and real calendar capacity, worth checking before you actually raise that budget. A channel sitting close to or above your average ticket is a channel to pause, rework, or replace, not one to keep running on the theory that it might improve on its own.
The number also gives you an honest ceiling to measure against, not just a pass or fail on any single month. That ceiling is customer lifetime value, the total profit a customer is worth across every visit they ever make, not just the first one. A channel that looks marginal against a single repair order's profit can look genuinely strong once you account for the repeat visits a retained customer produces over several years, which is exactly the calculation we walk through in our guide to customer lifetime value for auto repair shops. Spend per booked job tells you what a channel costs today. Lifetime value tells you what that same customer is actually worth, and the two numbers together are what turn a budget decision from a guess into a defensible call.
Run this math for one full month before changing anything. Resist the urge to kill a channel after one slow week, the same way you'd resist judging a new ad account in its first two weeks of learning phase. Let the number settle across two or three months, then act on the trend rather than any single data point, and keep running it every month after that. A tracking spine built once and checked monthly beats a perfect audit done once a year and never looked at again, because the channels that are quietly losing money rarely announce themselves. The number is the only thing that will.
Frequently asked questions.
What is the right way to measure marketing ROI for a local business?
Spend per booked job, sometimes called spend per booked repair order for a shop, not spend per click or spend per lead. Clicks and leads measure how much attention a channel bought. Spend per booked job measures whether that attention actually turned into paying work, which is the only number that tells you if a channel is making or losing you money.
Can direct mail ever be tracked as accurately as Google Ads or Meta?
Not really. A unique offer code or a dedicated phone number on a mailer gets you a rough count of redemptions, but it can't tell you who saw the piece and didn't respond, can't separate a mailer-driven call from a customer who was going to call anyway, and can't feed a conversion back into a bidding algorithm the way digital tracking does. Direct mail stays the old playbook: untrackable, skip it as a primary channel.
Do I need expensive software to track spend per booked job?
No. A call tracking platform runs $40 to $150 a month, Meta's Conversions API is free to set up, and a single new field in whatever CRM or shop software you already use to tag each repair order's source covers the rest. The total cost is small next to a typical local ad budget, and it's the piece that tells you whether the rest of that budget is working.
How often should I recalculate spend per booked job by channel?
Monthly, and judge it on a trend across two or three months rather than any single month in isolation. A slow week or a handful of no-shows can swing one month's number without meaning anything about the channel itself, so a single data point is noise and a multi-month trend is the signal worth acting on.
What if a customer saw a Meta ad weeks ago and then called after a Google search?
Perfect multi-touch attribution isn't realistic for most local businesses and chasing it usually wastes more time than it saves. Pick one honest convention, typically last-click or last-touch before the call or form, apply it consistently across every channel, and accept that it will slightly undercount awareness-stage channels. A consistent imperfect number beats a perfect number you never actually calculate.
Related reading: how to track which ads drive phone calls, when to increase your ad spend as a local business, customer lifetime value for auto repair shops, and Google Ads for local service businesses.
Free Marketing ROI Audit
Find your real cost per booked job.
We'll calculate your actual spend per booked repair order across every channel you run. Free.
Received
Thanks. Talk soon.
We'll reach out within 24 hours with your custom 90-day roadmap.
