Blog Cost per appointment means nothing without these two nu...

Cost per appointment means nothing without these two numbers first

Contractors post cost-per-appointment numbers on Reddit constantly. Someone in a painting group says they're getting appointments for $18. Someone in an HVAC forum says $90. Someone in a detailing thread says $40. The comment sections fill up with "what platform," "what agency," "what ads," as if the number itself tells you something. It doesn't. A $40 cost per appointment can be a disaster or a windfall, and without two pieces of context, you have no way to tell which one it is.

Those two pieces are ticket size and service radius. Get both of those wrong and you can run the same campaign as someone posting great numbers, spend the same budget, and lose money on every single appointment.

Why ticket size changes the math entirely

A car detailer charging $150 for a full detail and a painter charging $4,000 for an exterior repaint cannot share the same cost-per-appointment benchmark. That's obvious when you say it plainly, but it stops being obvious when you're looking at a Reddit thread or an agency pitch deck and a number catches your eye.

Here's how it breaks. If a detailer pays $40 per appointment and converts half of them, he's paying $80 per job on a $150 ticket. That's 53% of gross revenue before supplies, fuel, or labor. If a painter pays the same $40 per appointment at the same conversion rate, he's paying $80 per job on a $4,000 ticket. That's 2% of gross revenue. The same cost-per-appointment number is ruinous for one business and nearly irrelevant for the other.

This is why "what's a good cost per appointment" has no general answer. The only question worth asking is: what percentage of your average ticket can you afford to spend to acquire a job and still run a healthy margin? Figure out that number first. Then you have a ceiling. Then the comparison to anyone else's cost-per-appointment becomes useful.

Recurring service businesses add another layer. Samuel, a car detailer who came through an ASN sales call, was running monthly maintenance accounts at $100 per month after raising his rates. A $40 cost per appointment looks different if that customer stays for 18 months. It looks different again if they don't. The cost-per-appointment number doesn't tell you any of that. You have to bring the lifetime value context yourself.

Why service radius can make a low CPL worthless

The other variable that gets ignored is geography. A low cost per appointment is irrelevant if the leads aren't in the area you can actually service profitably.

Samuel's previous agency ran his Meta ads on broad targeting during a trial period. Lead volume looked good. The agency could show him the numbers. What the numbers didn't show was that most of those leads were coming in from an hour and a half away. He couldn't service them at a $150 price point and make it worth the drive. He started subcontracting the leads out for $20 a job just to do something with them. The agency's cost-per-appointment number was technically real. It was also completely useless to his business.

This is a known pattern. Agencies running short trials often deliberately set broad geographic targeting to inflate lead volume during the window when you're paying attention. The numbers look strong. Then the trial ends, or you sign a contract and pay upfront, and the leads you're getting aren't in your zip code.

Before any cost-per-appointment benchmark means anything, you need to know: what was the geographic radius? Was it set to match where you can realistically work? A $15 appointment from 90 minutes away is not better than a $50 appointment from 15 minutes away. The cost is lower. The business outcome is worse.

What made the Safe Step numbers actually useful

ASN's Safe Step case study produced 247 leads at $11 cost per lead on $2,800 in total spend. That number shows up in sales conversations and moves skeptical contractors for a specific reason: it's attached to a real business type, a real spend level, and a real result that a similar contractor can map to their own situation.

But even that number has to be read with the same filter. Rubber resurfacing has a different average ticket than window cleaning. A $11 CPL for a $3,000 job is a completely different economic situation than a $11 CPL for a $300 job. The reason the case study works isn't that $11 is universally good. It's that it's specific enough that a contractor in an adjacent trade can ask the right follow-up questions: what was the average ticket? What was the service radius? What was the close rate on those leads?

Those are the three questions that turn any cost-per-appointment number into something you can actually use. Without them, you're comparing noise.

What to actually do before you run the comparison

Before you look at anyone else's cost-per-appointment numbers, including ones from a pitch deck or a Reddit thread, work out your own math first.

Start with your average job ticket. For recurring services, use a conservative estimate of how many months a typical customer stays and what the monthly value is. From that number, decide what you're willing to spend to acquire a job at a margin you can run a business on. That's your ceiling. Write it down as a dollar figure.

Then look at your geography. What's the actual radius you can work within and still make the job worth doing? For most contractors doing jobs under $500, that's probably under 30 minutes. For higher-ticket work, it extends. Set that boundary explicitly before you talk to any agency or before you interpret anyone else's results.

Now you have something to compare against. If an agency shows you a $25 cost per appointment and your ceiling is $60 and the targeting is set to your working radius, that's a real signal. If they show you a $12 cost per appointment but the leads are coming from three counties over and your ticket is $200, the number is meaningless.

The contractors who get burned repeatedly aren't all picking bad agencies. Some of them are picking reasonable agencies and comparing their results to the wrong benchmark. They see someone else's number, think they should be hitting it, and judge their own campaign against a context that doesn't apply to them.

If you want to test what your numbers actually look like

ASN runs Meta ads for home service contractors with no setup fee and no contract. That model exists specifically so the math can be tested before any real commitment is made. If the leads coming in aren't in your radius, or the cost per appointment doesn't fit your ticket, you stop. Nothing locks you in past the week you paid for.

The Safe Step result (247 leads, $11 CPL) is one data point from one trade. If your trade and your ticket size are different, the conversation starts with your numbers, not ours. That's how the comparison becomes useful. Reach out through the contact page if you want to see what the math looks like for your specific business before you decide anything.

ASN manages advertising and early lead follow-up for home-service businesses. Scope, fees, ad spend and qualification rules are confirmed for each engagement before launch.

Discuss your service and market