Marketing ROI calculator for contractors
Enter your marketing spend and the revenue those campaigns generated to see your return on every dollar, then read how to track channel-level ROI live without rebuilding the math each month.
Calculator
Which marketing channel is actually making money?
Picture a roofing company spending $18,000 a month across Google Ads, a lead-aggregator, and a local radio buy. The owner knows total spend. What he does not know is how many jobs each channel generated, what those jobs were worth, and whether any of the three is operating at a loss. That is the problem a marketing ROI calculator solves: it converts spend and revenue into a single comparable number so you can stop guessing and start cutting or doubling down. Marketing ROI for contractors measures how much revenue a campaign or channel returned for every dollar invested. The formula is simple. The hard part is getting the inputs right and keeping the number current as campaigns run and jobs close. Use this calculator to run the math for one channel at a time or for your whole marketing budget. Then read the guidance below on attribution, common mistakes, and how to get to live tracking without a spreadsheet.
Info
Before you build this: attribution ground rules
Marketing ROI is only as accurate as your attribution. Count revenue from jobs that closed, not just leads that came in. Match spend and revenue to the same period and the same lead source. If a lead called in but the job closed two weeks later, decide on a consistent rule (booked date vs closed date) and apply it across every channel. For phone-tracked campaigns, call tracking tools like CallRail can tie inbound calls to specific ads so you are not guessing which number a customer dialed.
Calculate your marketing ROI
Run this once per channel for the clearest picture. Use closed-job revenue, not pipeline or quoted revenue, for the most honest result.
Marketing ROI
600.0%
At the sample inputs, $42,000 in revenue from $6,000 in spend returns an ROI of 600%. That means every dollar invested returned $7 in revenue (your original dollar plus $6 in profit). A result above 0% means the channel generated more revenue than it cost. A result below 0% means you spent more than you recovered.
Figures are illustrative. ROI targets vary by trade, season, market, campaign type, and business model. Gross revenue ROI does not account for job costs or gross margin.
Formula
Marketing ROI (%) = ((revenue - spend) / spend) x 100
Revenue is the closed-job revenue directly attributed to the channel in the same period. Spend is your total cost for that channel including ad spend, agency fees, and platform costs. A 500% ROI means you recovered $5 in revenue for every $1 spent, or a 6:1 revenue-to-spend ratio. Some operators prefer to express this as ROAS (return on ad spend), which drops the subtraction step: ROAS = revenue / spend. A 700% ROI and a 7x ROAS describe the same campaign. Choose the format your team already uses and stay consistent.
Gross revenue ROI does not account for cost of goods, labor, or overhead. For margin-adjusted ROI, replace revenue with gross profit from that channel's jobs.
Sample: marketing ROI by channel
| Channel | Monthly spend | Jobs booked | Revenue attributed | ROI |
|---|---|---|---|---|
| Google Ads (search) | $6,000 | 28 | $42,000 | 600% |
| Lead aggregator | $4,500 | 9 | $10,800 | 140% |
| Local radio | $7,500 | 6 | $11,400 | 52% |
| Blended (all three) | $18,000 | 43 | $64,200 | 257% |
Warning
Owner takeaway: the blended ROI trap
The 257% blended ROI in the table above looks healthy. But it hides a radio buy that barely returned 52 cents on the dollar before job costs are factored in. If you cut that channel and reinvested the $7,500 into Google Ads at the same 600% return, the business would recover an additional $45,000 in revenue from the same budget. A blended marketing ROI number cannot tell you that. Only channel-level math can, and that requires either manual tracking or a live dashboard that breaks out spend and revenue by source.
How to use your marketing ROI result
01 Run it per channel first
A blended ROI across all spend is a starting point, not a decision tool. Run the calculator separately for each lead source: Google Ads, lead aggregators, LSA, direct mail, radio, referrals. The channel with the lowest ROI is your first reallocation target.
02 Align your inputs to the same period
Use the same date range for spend and revenue. If you are using monthly data, count jobs that closed in that calendar month and the spend that ran in the same month. Mixing campaign-start dates with close dates creates phantom ROI. Lock in a consistent attribution rule and apply it every time.
03 Adjust for gross margin
A 600% ROI on revenue becomes very different at 40% gross margin versus 20%. If your jobs in that channel are mostly commodity service calls with thin margins, the real return is lower than the top-line number suggests. Pull gross profit from your accounting data (QuickBooks, for example) and run the same formula with profit instead of revenue for a cleaner comparison.
04 Compare trend, not snapshots
A single month of ROI data can be skewed by a large emergency job, a seasonal push, or a slow booking week. Track the same channel's ROI across three to six months before cutting it. A rising trend on a mid-performing channel may outrank a flat trend on a high-ROI one.
05 Move to live tracking
Once you are checking marketing ROI monthly, the spreadsheet stops keeping up. Revenue changes as jobs close through the month, and manual exports always lag. Connect your CRM, accounting system, and ad platforms to a dashboard so spend and attributed revenue update together as jobs close.
Reading channel-level marketing ROI signals
These signals are directional guides, not universal benchmarks. What good looks like depends on your trade, ticket size, gross margin, and market.
- Channel ROI trending up month over monthSpend is stable or rising while attributed revenue grows. Candidate for budget increase.Good
- Current
- Target
- Channel ROI between 100% and 300%Positive return, but margin may compress once job costs are applied. Verify average ticket and gross margin for jobs from this source.Watch
- Current
- Target
- Channel ROI below 100%Revenue barely exceeds spend before any job costs. Either attribution is incomplete or the channel is losing money net of labor and materials.Poor
- Current
- Target
- Blended ROI improving but one channel decliningA strong channel can mask a weak one in the blended number. Always inspect channel level before concluding the overall budget is healthy.Watch
- Current
- Target
- High ROI channel with low job volumeA small, efficient channel that cannot scale. Track whether increasing budget holds the same ROI or whether it declines as spend rises.Watch
- Current
- Target
| Metric | Current | Target | Status |
|---|---|---|---|
| Channel ROI trending up month over monthSpend is stable or rising while attributed revenue grows. Candidate for budget increase. | Good | ||
| Channel ROI between 100% and 300%Positive return, but margin may compress once job costs are applied. Verify average ticket and gross margin for jobs from this source. | Watch | ||
| Channel ROI below 100%Revenue barely exceeds spend before any job costs. Either attribution is incomplete or the channel is losing money net of labor and materials. | Poor | ||
| Blended ROI improving but one channel decliningA strong channel can mask a weak one in the blended number. Always inspect channel level before concluding the overall budget is healthy. | Watch | ||
| High ROI channel with low job volumeA small, efficient channel that cannot scale. Track whether increasing budget holds the same ROI or whether it declines as spend rises. | Watch |
Attribution: the hardest part of marketing ROI for contractors
The formula is easy. Attribution is hard. Most home-service companies run multi-channel campaigns where a customer may see a Google ad, search for reviews, and then call a phone number from a direct-mail piece. Which channel gets credit for the job?
For most operators, a practical rule is last-touch: the channel that generated the inbound call or form fill gets credit. This is not perfect, but it is consistent and defensible. Use call tracking (services like CallRail assign unique phone numbers to each campaign) to tie inbound calls to a specific ad or source. For jobs booked through a CRM like ServiceTitan, Housecall Pro, or Workiz, the lead source field records where the customer came from. Keeping that field clean is the single biggest lever on attribution accuracy.
Two common mistakes that corrupt the calculation: including field costs (technician labor, parts) in the spend input, and counting quoted or dispatched revenue instead of closed-job revenue. Spend should be media and platform costs only. Revenue should be invoiced, collected jobs.
Related template
Track marketing ROI alongside revenue, calls, and bookings
Marketing ROI is one tile on a complete operating board. The marketing attribution template pairs channel ROI with cost per booked job, booking rate by source, and revenue by lead channel so you read spend performance and operations in one view.
- Channel-level spend, booked jobs, and ROI in one board
- Cost per booked job and booking rate by lead source
- Revenue attributed to each campaign and ad platform
- Connects to Google Ads, CallRail, and your CRM
Marketing ROI calculator FAQ
Stop guessing which channel is working
A calculator tells you ROI for one period. Datacube tracks channel spend and attributed revenue live so you see which campaigns are winning while the month is still running, not after the budget is spent.
Keep exploring
Related
Go deeper
