On this page
Cost per lead tells you what a contact costs. Cost per job tells you what a paying customer costs, which is what matters. To get it, add up everything a channel cost in a period and divide by the jobs it produced. A cheap lead with a low close rate often costs more per job than an expensive one, and owned channels look better once repeat work is counted.
Key takeaways
- Cost per job equals total channel spend divided by jobs booked from that channel.
- Close rate turns lead price into job cost; small changes in it swing the result a lot.
- Include memberships, subscriptions, software and the time spent chasing leads.
- Compare cost per job with gross profit per job, not the ticket price.
- Repeat business lowers the true cost of a customer you keep in your own list.
What is the difference between cost per lead and cost per job?
Cost per lead is what you pay for one contact: a call, a form, a message, a match. Lead sellers price by the lead, so it is the number you see on the bill.
Cost per job, sometimes called cost per acquisition, is what you pay to get one paying customer through that channel. It folds in how many leads you need to win a job, which depends on lead quality, competition, your speed and your sales skill.
The two can tell opposite stories. A platform that charges for every match, whether you win it or not, can look cheap per lead and still be the most expensive way you book work. Angi's own 2025 annual report, for example, treats a match fee as owed even when the pro is never hired for the job. That is fine as long as you know what each won job really cost.
How do you calculate cost per job?
Use one month or one quarter, and do it per channel.
- Total cost of the channel. Every lead charge, plus membership, subscription and software fees for that channel, minus refunds or credits actually used. For channels you own, include what you paid for the website, SEO work, printing or software, spread over the months it serves.
- Jobs booked from the channel. Completed, paid jobs whose first contact came from that source.
- Divide. Total cost ÷ jobs booked = cost per job.
Then compare it with your gross profit per job, which is revenue minus direct labor and materials. A $900 job that leaves $350 after crew wages and materials can afford a much higher acquisition cost than a $150 job that leaves $60.
A shortcut when you only know price per lead and close rate: cost per job = price per lead ÷ close rate. A $45 lead at a 20% close rate costs $225 per job.
Worked example: three channels, one month
The numbers below are hypothetical and exist only to show the method. None of them is a real price for any platform.
| Shared lead platform | Pay-per-lead ads | Website and Business Profile | |
|---|---|---|---|
| Monthly cost | $1,500 in leads + $25 membership | $1,200 in leads | $600 (site, SEO and software, spread monthly) |
| Leads received | 40 | 20 | 25 |
| Cost per lead | about $38 | $60 | $24 |
| Close rate | 12.5% | 30% | 40% |
| Jobs booked | 5 | 6 | 10 |
| Cost per job | $305 | $200 | $60 |
Read it the way you'd read a job costing sheet. The shared-lead platform has a middling cost per lead but the worst cost per job, because seven out of every eight of those leads never became a job. The ads cost more per lead and less per job. The owned channel is cheapest per job here, but notice the assumptions: a website and profile that already bring in 25 leads a month took time to build, and in their first months the cost per job would have been much higher.
That last point is honest and important. Owned channels tend to start expensive per job and get cheaper as reviews, pages and a customer list build up. Paid channels usually cost about the same per job from the first month, and that price can rise, because it is set by an auction or a platform and you buy every lead fresh.
What costs are easy to leave out?
- Memberships and subscriptions that sit outside the per-lead charges.
- Credits you never used. Angi's lead credit policy puts credits against future lead charges, and unused credits lapse after six months. Thumbtack's refund policy sends refunds to your Thumbtack balance by default. You can ask within 10 business days of approval to have one sent back to your original card, as long as your balance isn't zero or negative, but prepaid packages, promotional balances and courtesy credits can't go back to a card. Money that can only buy more leads is still spent.
- Time. Calls, texts, drive-bys and estimates for leads that went nowhere. If an estimator spends five hours a week on dead leads, that's a real cost.
- Discounting. If a channel pushes you to cut prices to compete with other bidders, the lower margin belongs in the math.
- Software and phone costs that exist only to handle that channel.
- Drive time. A platform that sends you jobs at the edge of your area costs fuel and hours that a job down the street doesn't. If one channel's jobs are consistently farther away, note it.
- Cancellations and no-shows. Count only jobs that were completed and paid. A channel whose bookings often cancel has a higher real cost per job than its booking count suggests.
Why does repeat business change the answer?
Cost per job treats each job as separate. Many service customers aren't. Lawn care, cleaning, pest control, HVAC maintenance, window cleaning and snow removal often repeat every season or every year. A customer you keep for four years might produce eight or more jobs from one acquisition cost.
That only works if the customer comes back to you. When the repeat booking flows through your own phone number, your own email list and your own CRM, the acquisition cost is paid once. When the customer finds you again through the same marketplace, you may pay again. So add one more column to your review: what share of each channel's customers rebooked directly with you?
This is why we push owned channels so hard. A customer you can reach directly next spring makes every dollar you spent getting them work longer. Our guide on winning back past customers shows how to keep that list working.
Worked example: one recurring customer over three years
Again, these numbers are made up to show the method. Picture a lawn or cleaning customer worth $300 of gross profit a year, acquired two different ways.
| Rebooks through a platform each year | Rebooks directly with you | |
|---|---|---|
| Year 1 acquisition cost | $200 | $200 |
| Year 2 cost to keep them | $200 (acquired again) | About $5 (reminder emails and texts) |
| Year 3 cost to keep them | $200 (acquired again) | About $5 |
| Total acquisition cost, 3 years | $600 | About $210 |
| Gross profit left, 3 years | $300 | About $690 |
Same customer, same work, more than twice the profit, because the relationship moved onto channels you own after the first job. Whether a platform charges again for a returning customer depends on how that customer contacts you, which is exactly why you want them saving your number, not searching the app.
How do you get these numbers from your own business?
You need two things: a source on every lead and a link from each lead to the job it became.
- Record the source when the lead arrives: platform name, website form, Business Profile call, referral, past customer, sign. Our guide to tracking lead sources covers tracking numbers, form fields and asking the customer.
- Keep leads and jobs in the same system, so a quote, a job and an invoice all point back to the original lead. A CRM built around your workflow can report cost per job by source without anyone building a spreadsheet.
- Pull spend from each platform's billing page monthly, including fees and credits.
If you'd rather not build the spreadsheet, our lead cost calculator takes the number of leads, the price per lead, your close rate and your average job value, and returns cost per job won.
What should you decide from the numbers?
- Cost per job well under gross profit per job: the channel pays. Keep it, and look for ways to raise its close rate.
- Cost per job close to gross profit: you're working for the channel. Tighten targeting, respond faster, or cut it back.
- Cost per job above gross profit: each job loses money before overhead. Stop or fix it, unless the customers reliably come back directly and their repeat work covers the gap.
Review quarterly. Channels change, prices change, and your close rate can change as your reviews and response time improve. For a second opinion on where your jobs come from and what they cost, a free system quote is a good start, and our own your leads page explains how we shift the mix toward channels you control.
Frequently asked questions
What is a good cost per job for a contractor?
One that is comfortably below your gross profit per job. There is no universal number; a high-ticket roofing job can carry a far higher acquisition cost than a single lawn visit.
How do I calculate cost per job from cost per lead?
Divide the price per lead by your close rate. A $45 lead that you close 20% of the time costs about $225 per booked job, before memberships and time.
Should I count the cost of my website in cost per job?
Yes. Spread what you paid for the site, SEO work and related software over the months it serves, and count it like any other channel cost.
Why does my cost per job differ from the platform's numbers?
Platforms report leads and clicks. Only your own records connect a lead to a paid job, so only you can calculate the real cost per job.
Sources
General information for service-business owners, not legal, tax or financial advice. Rules vary by state; check with a qualified professional for your situation.