The right ad budget for a trades business is not a percentage you read somewhere. It is the answer to a division problem: jobs you want from ads ÷ booking rate × cost per lead. This worksheet works that out for each month of your year, adjusts it for the season and stops it at the number of jobs your crews can actually do. Print it, fill it in, and you will have a budget you can defend line by line.
You need three inputs before you start. Your average gross profit per job (from the job value worksheet), your booking rate, and your recent cost per lead. If any of those is a guess, write it in pencil and mark it.
The formula, step by step
- Ad-sourced revenue target for the year, in pre-tax dollars.
- Jobs needed = revenue target ÷ average revenue per job.
- Leads needed = jobs needed ÷ booking rate.
- Annual budget = leads needed × cost per lead.
- Monthly budget = annual budget × that month's seasonal weight.
- Capacity check: if a month's jobs exceed what your crews can deliver, cap it and move the money.
- Safety check: cost per booked job (cost per lead ÷ booking rate) must stay below your average gross profit per job.
Step 7 is the one most budgets skip. It is the line between growth and buying work at a loss.
Worked example: a roofing contractor on the Prairies
Invented figures for a roofing company with three crews. Average job revenue is $14,000 and average gross profit is $4,200. Last season, ad leads cost $160 each and one in eight became a signed job.
Steps 1 to 4: the annual figure
- Revenue target from ads: $840,000
- Jobs needed: $840,000 ÷ $14,000 = 60 jobs
- Leads needed: 60 ÷ 0.125 = 480 leads
- Annual budget: 480 × $160 = $76,800
Step 7 first: is it safe?
Cost per booked job = $160 ÷ 0.125 = $1,280. Average gross profit is $4,200. Each job costs about 30% of the gross profit it brings, which leaves room. If cost per lead rose to $500, cost per job would hit $4,000 and the campaign would be working for almost nothing.
Step 5: spread it by season
Roofing on the Prairies is compressed into the warmer months. The weights below are this owner's own estimate, drawn from when signed contracts came in over the past two years. They add up to 100%.
| Month | Weight | Budget | Leads | Jobs |
|---|---|---|---|---|
| January | 2% | $1,536 | 10 | 1.2 |
| February | 3% | $2,304 | 14 | 1.8 |
| March | 7% | $5,376 | 34 | 4.2 |
| April | 12% | $9,216 | 58 | 7.2 |
| May | 15% | $11,520 | 72 | 9.0 |
| June | 15% | $11,520 | 72 | 9.0 |
| July | 13% | $9,984 | 62 | 7.8 |
| August | 12% | $9,216 | 58 | 7.2 |
| September | 10% | $7,680 | 48 | 6.0 |
| October | 7% | $5,376 | 34 | 4.2 |
| November | 3% | $2,304 | 14 | 1.8 |
| December | 1% | $768 | 5 | 0.6 |
| Total | 100% | $76,800 | 481 | 60 |
Leads are rounded, so the total lands at 481 rather than exactly 480.
Step 6: check capacity
Three crews can each finish about three roofs a month in good weather, so nine a month is the ceiling. May and June are planned at exactly nine, which is tight but workable. If the target were higher, the extra budget would go into March, April and September to fill the shoulder months, not into June when the crews are already full.
What the example owner learned
Two things surprised this roofer. First, December and January were not worth switching off entirely: a little spend kept the phone ringing for insurance claims and early quotes, and those leads were cheap because few competitors bid. Second, the real constraint was crews, not money. Once May and June were full, more budget could only help by filling March and October. That pushed the owner to ask a different question: could a fourth crew in peak season pay for itself? The worksheet does not answer that, but it is where the question came from.
Worksheet A: the annual figure
| Line | Your number |
|---|---|
| Ad-sourced revenue target (pre-tax) | $__________ |
| Average revenue per job | $__________ |
| Jobs needed (target ÷ revenue per job) | __________ |
| Booking rate (as a decimal) | __________ |
| Leads needed (jobs ÷ booking rate) | __________ |
| Cost per lead | $__________ |
| Annual ad budget (leads × cost per lead) | $__________ |
Worksheet B: the safety check
| Line | Your number |
|---|---|
| Cost per booked job (cost per lead ÷ booking rate) | $__________ |
| Average gross profit per job | $__________ |
| Cost per job as a share of gross profit | ______% |
| Is it under the share you decided on in the job value worksheet? | ☐ Yes ☐ No |
If the answer is no, do not raise the budget. Improve the booking rate or the targeting first.
Worksheet C: month by month
Crew capacity (jobs per month at full stretch): ______
| Month | Seasonal weight | Budget | Leads | Jobs | Over capacity? |
|---|---|---|---|---|---|
| Jan | ____% | $______ | ____ | ____ | ☐ |
| Feb | ____% | $______ | ____ | ____ | ☐ |
| Mar | ____% | $______ | ____ | ____ | ☐ |
| Apr | ____% | $______ | ____ | ____ | ☐ |
| May | ____% | $______ | ____ | ____ | ☐ |
| Jun | ____% | $______ | ____ | ____ | ☐ |
| Jul | ____% | $______ | ____ | ____ | ☐ |
| Aug | ____% | $______ | ____ | ____ | ☐ |
| Sep | ____% | $______ | ____ | ____ | ☐ |
| Oct | ____% | $______ | ____ | ____ | ☐ |
| Nov | ____% | $______ | ____ | ____ | ☐ |
| Dec | ____% | $______ | ____ | ____ | ☐ |
| Total | 100% | $______ | ____ | ____ |
To set your weights, count the signed jobs (not leads) in each month over the past one or two years and divide each month's count by the year's total. If you have no history, borrow the shape from a similar business in your region, and replace it with your own numbers after one year.
Mistakes that throw the budget off
- Booking rate from a good month. Use the full-year figure, or the season you are planning for.
- One budget line for all job types. A furnace replacement and a service call have different values and booking rates. Do one Worksheet A per job type if your work is varied.
- No capacity check. Leads you cannot serve still cost money and can earn you poor reviews for slow response.
- Ignoring missed calls. The worksheet assumes every lead gets a reply. If a fifth of calls go unanswered, your real booking rate is lower. Answering faster is often cheaper than spending more.
- Treating the plan as a promise. It is a forecast from your own history. Compare actuals each month and adjust.
Next steps
Once a month, compare actual leads, booked jobs and cost per booked job to the plan. If you want us to build and run it with you, see ad budget planning. To see whether last year's spend earned its keep before you plan the next one, use the ROI worksheet. The regional pages note how seasons shift the weights across Canada. Trades.Tools plans marketing; we are not a contractor.
Frequently asked questions
What percentage of revenue should a trades business spend on advertising?
Rules of thumb exist, but they ignore your margins, your booking rate and how busy your crews already are. Working back from a job target, as this worksheet does, gives a figure that fits your business instead of an industry average.
Where do I get my cost per lead if I've never tracked it?
Divide last quarter's ad spend by the calls, texts and emails those ads produced, if your ad account shows them. If it does not, start tracking now and use a cautious estimate in pencil until you have three months of data.
Should the budget be the same every month?
Almost never. Demand for most trades swings with the weather and the calendar, and your crews have limits. The seasonal weights in this worksheet spread the year's budget to match.
What happens if cost per lead rises in busy season?
Check cost per booked job against your break-even from the job value worksheet. Higher costs per click are acceptable as long as each booked job still costs less than the gross profit it brings.