Find the lead source that pays you back
Divide what you spend on each source by the jobs it won, not by the leads it sent.
Lead source ROI
firmkit.co/tools/lead-source-roi-calculator/ · Oct 19, 2026
Example numbers, not yours.
Your calculation, step by step
- Google Ads$1,200 spent, 40 leads, 12 jobs. Per lead $30.00. Per job $100. Revenue 7.5x spend. Profit $2,400.
- Local Services Ads$600 spent, 18 leads, 7 jobs. Per lead $33.33. Per job $86. Revenue 8.7x spend. Profit $1,480.
- Referrals$0 spent, 15 leads, 9 jobs. Per lead $0.00. Per job $0.00, free. Profit $2,720.
- Facebook ads$400 spent, 8 leads, 1 job. Per lead $50.00. Per job $400. Revenue 1.5x spend. Profit -$160. Too few leads to compare.
- Total$2,200 spent, 81 leads, 29 jobs, revenue $21,600 x 40% margin = $8,640, less spend = $6,440.
Get the full plan by email
Opens on this page the moment you press the button. Print it, save it, or mail a copy to yourself from there.
Your table, best and worst source and total stay free above.
- A side-by-side table of every source
- A what-if: move some spend from the worst source to the best
- A printable copy for your partner or CPA
The table and plan need JavaScript, because they are built in your browser. Nothing is sent anywhere without it.
Report ready. It is the next section.
Your table and printable plan
This report uses the example numbers.
Choose how much spend the what-if moves.
A planning aid, not accounting or legal advice.
Made with firmkit.co/tools/lead-source-roi-calculator/. A planning aid, not accounting or legal advice.
How the numbers are worked out
The formula, in words
Cost per lead = spend / leads. Cost per job = spend / jobs won
Revenue / spend = revenue / spend. Profit = revenue x gross margin - spend
Totals add every row. Best and worst are the lowest and highest cost per job among rows with spend, jobs and at least 10 leads
If jobs are more than leads, jobs are capped at leads and the row says so
A source with no spend is free, so its cost per job is zero. That makes it look best, which is not a fair comparison, so the ranking skips it. A row with under 10 leads is too small to trust, so it is flagged and also left out.
What the tool cannot know
- Phone calls and word of mouth that you did not track back to a source.
- Customers who saw two sources before they called.
- Returns that shrink as you spend more on one source.
- Lifetime value. A first job understates a customer who comes back for years.
Every assumption, and who set it
| Assumption | Value | Set by |
|---|---|---|
| Spend, leads, jobs and revenue for each source | Your numbers | You |
| Gross margin | 40% as an example | You, from your books |
| Small sample line | Under 10 leads | Firmkit |
| What-if share to move | 25% | You |
Sources
- No outside statistic is used. Every figure is computed from the numbers you enter. The 10-lead line is our rule of thumb for a sample too small to trust, and a planning aid, not accounting or legal advice.
Source check
- Outside statistics. None used on this page
Questions people ask
How do I track where my leads come from?
Ask every caller how they found you and write it in one place, along with the date. Use a separate tracking number for each paid source if you can. Tag form leads with the page they came from. Count jobs won, not leads alone. Even a simple tally sheet beats guessing.
What does revenue divided by spend tell me?
It shows how many dollars of revenue each dollar of spend brought in. A source at 4 to 1 brought in four dollars of revenue for every dollar you spent. It ignores your margin, so also look at profit. A high ratio on a tiny sample can mislead, so check the leads count.
Why are phone calls hard to attribute?
A caller may have seen your ad, then your Maps listing, then called from a truck. The phone system only records that a call came in. Ask each caller how they found you, and write it down. Tracking numbers per source help. Never assume that an untracked call came from the source you pay for.
What is a sample that is too small?
A source with only a few leads can show a great or terrible cost per job by luck. One extra job swings the number. We flag a row under 10 leads as too few to compare and leave it out of best and worst. That line is our rule of thumb, and you can ignore it.
How should I treat free sources like referrals?
List them with spend of 0. They show jobs and revenue, which is useful, but their cost per job is zero, so the ranking skips them. Do not cut paid sources because a free one looks better. Free sources do not scale on demand, and your time still counts.
Related tools
Ad budget and cost per lead
Work back from the jobs you want to an ad budget and a cost per lead.
Open the tool
Customer lifetime value
What one customer is worth over the years, with and without a maintenance plan.
Open the tool
Google Business Profile score
Score your Google profile on 20 checks and see the three fixes worth the most.
Open the tool
Fix the free things first
The 60‑second audit looks at your site, your Google profile and your follow-up. Your score shows without an email.