Marketing maths for trades, on paper

Tools and guides

Marketing ROI worksheet: did last year's marketing pay?

Marketing ROI for a trades business is the gross profit from jobs a channel produced, minus what the channel cost, divided by what it cost. This worksheet takes you through it channel by channel with a worked example and blank tables.

Written by Ali Sedighi, MBAPublished: Last updated:

Marketing ROI tells you whether a marketing channel gave you back more than it took. For a trades business the honest formula is: (gross profit from jobs the channel produced − total cost of the channel) ÷ total cost of the channel. A result above zero means it paid for itself. This worksheet takes you through every channel you used last year, with an invented example and blank tables to print.

You will need: twelve months of marketing invoices and ad bills, a list of completed jobs with their source if you have one, and your gross profit per job from the job value worksheet.

The formulas on one page

Measure Formula What it tells you
Cost per lead Channel cost ÷ leads How cheaply the channel produces enquiries
Booking rate Booked jobs ÷ leads How well you turn enquiries into work
Cost per booked job Channel cost ÷ booked jobs What a paid job really costs to win
Gross profit produced Booked jobs × avg gross profit per job What the work was worth to you
ROI (Gross profit produced − channel cost) ÷ channel cost Whether the channel paid, and by how much

Notice that cost per lead is first, but ROI is last. A channel can have a cheap cost per lead and a terrible ROI if those leads rarely book or only want small jobs.

Worked example: a landscaping and hardscape company

Invented figures for a business with two crews in a mid-sized Canadian city. Average gross profit is $1,400 per job across their mix of patio, planting and maintenance contracts.

Step 1: list every channel and its full cost

Channel What's included 12-month cost
Google Ads Ad spend plus management fee $14,400
Google Business Profile and website Hosting, updates, photos $3,000
Home-show booth Booth, display, two days' crew wages $5,200
Directory listing Annual fee $2,400
Vehicle wraps Cost spread over five years $1,600

The wrap cost $8,000 and is expected to last five years, so one fifth goes on this year's sheet. Do the same for any marketing that lasts longer than a year.

Step 2: count leads and booked jobs by source

Channel Leads Booked jobs Booking rate
Google Ads 180 30 17%
Google profile and website 95 26 27%
Home show 70 6 9%
Directory 22 2 9%
Wraps and signage 15 6 40%
Referrals and repeat 40 28 70%
Unknown 30 9 30%

Referrals cost nothing in direct marketing, so they get no ROI line, but they belong in the table so you can see them.

Step 3: calculate ROI

Channel Cost Booked jobs Gross profit at $1,400 ROI
Google Ads $14,400 30 $42,000 1.92 (192%)
Profile and website $3,000 26 $36,400 11.13 (1,113%)
Home show $5,200 6 $8,400 0.62 (62%)
Directory $2,400 2 $2,800 0.17 (17%)
Wraps $1,600 6 $8,400 4.25 (425%)

Check the Google Ads line: $42,000 − $14,400 = $27,600, and $27,600 ÷ $14,400 = 1.92.

Step 4: read the table

  • The profile and website line looks spectacular because most of its cost is fixed and low. That is typical. It argues for keeping it healthy, using the local SEO checklist, rather than for cutting anything else.
  • Google Ads is solidly positive. Its weak spot is the 17% booking rate. If faster call-backs lifted that to 25%, the same spend would book about 45 jobs.
  • The home show barely clears zero once crew wages are counted. Worth asking whether those six jobs were large ones before deciding.
  • The directory returned 17%. Positive, but only just, and two jobs is too few to trust. Keep it one more year with proper tracking, or drop it.
  • The unknown line has nine jobs. That is $12,600 of gross profit nobody can credit. Tracking would sort it out.

Step 5: write down what you will change

A table nobody acts on is wasted ink. This owner wrote three lines under the table: return missed ad calls within the hour, ask for a review after every finished patio, and put the directory on a three-month trial with its own tracking number. Each change is small, cheap and measurable at the next quarterly sheet. That is the rhythm we recommend: fill in, decide, act, then fill in again three months later and compare.

Worksheet A: channel costs

Channel What's included 12-month cost
________________ ________________________ $________
________________ ________________________ $________
________________ ________________________ $________
________________ ________________________ $________
________________ ________________________ $________
________________ ________________________ $________
Total marketing cost $________

Worksheet B: leads, jobs and ROI by channel

Average gross profit per job (from the job value worksheet): $________

Channel Leads Booked jobs Booking rate Cost per booked job Gross profit produced ROI
____________ ____ ____ ____% $______ $________ ______
____________ ____ ____ ____% $______ $________ ______
____________ ____ ____ ____% $______ $________ ______
____________ ____ ____ ____% $______ $________ ______
____________ ____ ____ ____% $______ $________ ______
Referrals and repeat ____ ____ ____% n/a $________ n/a
Unknown ____ ____ ____% n/a $________ n/a

If your job types vary a lot in value, run Worksheet B once per job type instead of using a single average.

Worksheet C: decisions

For each channel, tick one box and write one reason.

Channel Keep Fix Test for 3 months Cut Reason
____________ ☐ ☐ ☐ ☐ ______________________
____________ ☐ ☐ ☐ ☐ ______________________
____________ ☐ ☐ ☐ ☐ ______________________
____________ ☐ ☐ ☐ ☐ ______________________
____________ ☐ ☐ ☐ ☐ ______________________

Mistakes that wreck an ROI sheet

  1. Using revenue. Revenue ROI makes every channel look several times better than it is.
  2. Forgetting fees and fixed costs. Management fees, software and the share of a wrap or sign belong in the cost.
  3. Counting leads as jobs. The table needs booked, completed, paid jobs.
  4. Small numbers. Two jobs is an anecdote. Do not cut or double a channel on fewer than ten jobs unless the cost is trivial.
  5. Ignoring seasons. A channel judged on three winter months may look dead when it is just early. Use twelve months or compare the same season year on year.

For context: results from our HVAC work

We use this exact framing on client work, mostly in heating and cooling. HVACDeal.ca produced 500+ leads at a 12:1 ROI, and CombiBoiler.ca reached 300% ROI. These are HVAC results, shown to illustrate the method rather than to predict a number in your trade. The results page explains what each one shows.

If your table raises more questions than it answers, our marketing ROI review fills it in with your actual records. Next, use the ad budget worksheet to plan forward. Trades.Tools is a marketing and business consulting service, not a contractor.

Frequently asked questions

What is the difference between ROI and ROAS?

ROAS (return on ad spend) is revenue divided by ad spend. ROI, as this worksheet uses it, is gross profit minus cost, divided by cost. ROAS flatters low-margin work; ROI tells you whether you actually kept money.

What ROI should a trades business aim for?

Anything above zero means the channel paid for itself in gross profit. Most owners want comfortably more than that, because gross profit still has to cover rent, office wages and the owner's pay. Set your own threshold after you see your first full table.

How do I handle jobs where I don't know the source?

Put them on their own line called unknown. Do not spread them across channels. A large unknown line is the clearest sign that tracking is the first thing to fix.

Should I include my own time spent on marketing?

If you spend real hours on social posts or quoting from a directory, yes. Put a fair hourly value on it and add it as a cost to that channel.