# Construction Marketing ROI: Measure It in 6 Steps

> Measure marketing ROI as gross profit per marketing dollar, not revenue per dollar. Total every marketing cost including your own hours, tag each lead by the month it arrived, give that cohort 90 days to close, then divide the gross profit those jobs produced by what you spent to get them. Below 1:1 you are losing money.

- Canonical URL: https://www.pavadotech.com/blog/how-to-measure-roi-on-contractor-marketing
- Author: Om Patel
- Published: 2026-09-06 | Updated: 2026-09-25
- Topic: Lead Generation

Construction marketing ROI is **gross profit per marketing dollar**, not revenue per marketing dollar. Total every marketing cost including your own hours, tag each lead by the month it arrived, give that group 90 days to close, then divide the gross profit those jobs produced by what you spent to get them. Almost every number an agency puts in front of a contractor skips at least two of those four steps, which is why the 300 percent figures in benchmark reports tell you so little about your own [job profit margins](https://www.pavadotech.com/blog/how-much-profit-should-a-contracting-job-make).

That gap is not academic. It is the difference between a channel you should double and a channel that is quietly eating your year.

- **Revenue ROI hides losses at trade margins.** A 3:1 revenue return on 20 percent gross margin work returns 60 cents of gross profit per dollar spent. You are down 40 cents and the report says you won.
- **Your break-even revenue multiple is 1 divided by your gross margin.** At 20 percent margin that is 5:1. At 45 percent it is 2.2:1. A single blended benchmark is useless across trades.
- **A monthly read is structurally wrong.** SearchLight Digital found home services revenue matures over 30 to 90 days, and a 30-day read understates revenue by roughly half.
- **Cost per lead inverts the ranking.** Built on Tenth's math puts a $65 exclusive lead at $125 per booked job and a $38 shared lead at $261.
- **82 percent of leads arrive by phone and 100 percent of closed revenue came through a call** in SearchLight's 2026 home services cohort. A form-fill dashboard measures almost none of your business.
- **Your own hours are marketing cost.** So are truck signs, job signs, crew shirts and the website build, amortized.
- **Small shops cannot read a single month.** At 8 leads per channel, one job swings your measured booking rate by 25 points.

## Why the number your agency reports is the wrong number

Start with the arithmetic that nobody puts in the monthly report.

Marketing advice aimed at contractors converges on revenue multiples. Estes Media tells contractors to target 3:1 on overall marketing spend and 5:1 on paid ads. Coalmarch's 2026 benchmark report puts a healthy home service PPC return at 7 to 9 times ad spend and SEO around 19 times, and adds that anything under 4 times usually means broken tracking rather than broken ads. These are all revenue-to-spend ratios.

Revenue is not yours. Gross profit is.

BusinessDojo's 2026 analysis of residential renovation work puts gross margins at 15 to 25 percent and net margins at 4.7 to 8.7 percent. Run a 3:1 revenue return through a 20 percent gross margin and you get 60 cents of gross profit for every dollar you spent to generate it. You lost money, and the dashboard congratulated you.

The formula worth memorizing:

**Break-even revenue multiple = 1 divided by your gross margin.**

| Gross margin | Revenue needed per $1 of marketing just to break even |
|---|---|
| 15% | 6.7:1 |
| 20% | 5.0:1 |
| 30% | 3.3:1 |
| 45% | 2.2:1 |
| 55% | 1.8:1 |

A general contractor at 20 percent and an HVAC service shop at 45 percent cannot use the same benchmark, which is exactly what every generic "aim for 3:1" article asks them to do. Once you know your own break-even multiple, the target is straightforward: aim for at least **2:1 on gross profit**, meaning two dollars of gross profit per marketing dollar. Below 1:1 you are strictly losing money. Between 1:1 and 2:1 marketing is paying for itself but not for the overhead sitting behind it.

An owner running a residential cleaning business posted his numbers on r/smallbusiness after ten years and $300,000 in stagnant revenue: "I've spent over $100,000 on SEO 'agencies' that were essentially BS" and "I've spent $20k on GAds in the last 6 months and made about $10k from those ads." That second line is a measured 0.5:1 revenue return. At any gross margin a cleaning business can achieve, it is a catastrophic gross profit return, and it ran for six months.

## What is a good construction marketing ROI?

A good construction marketing ROI is at least 2:1 on gross profit, meaning two dollars of gross profit back for every marketing dollar, all costs counted. The 280 to 350 percent averages quoted in benchmark reports are revenue figures, and at construction margins many of them are break-even or worse.

The figures that dominate this search come from agency reports. [Siana Marketing's 2026 construction ROI report](https://www.sianamarketing.com/resources/construction-marketing-roi-2026-report), which compiles numbers from other agencies and publishers, puts the industry average at 280 to 350 percent, small residential builders (1 to 5 projects a year, $25,000 to $45,000 marketing budgets) at 320 to 350 percent, and enterprise commercial builders at 380 to 420 percent. By channel it lists SEO at 681 percent, referral programs at 480 to 520 percent, paid search at 250 to 300 percent and social ads at 180 to 220 percent.

Run those through the standard formula and the problem shows up immediately. The textbook version is **(return minus investment) divided by investment, times 100**. A 300 percent ROI therefore means $4 of revenue for every $1 spent. Now apply a margin:

| Reported ROI | Revenue per $1 | Gross profit per $1 at 20% margin | Gross profit per $1 at 45% margin |
|---|---|---|---|
| 200% (social ads, low end) | $3.00 | $0.60 | $1.35 |
| 300% (industry average) | $4.00 | $0.80 | $1.80 |
| 350% (small builder, high end) | $4.50 | $0.90 | $2.03 |
| 500% (referral programs) | $6.00 | $1.20 | $2.70 |

A remodeler or general contractor running at 20 percent gross margin needs roughly a 400 percent revenue ROI just to get its marketing dollar back, and about 900 percent to hit 2:1 on gross profit. A 45 percent margin service trade clears 2:1 at around 350 percent. The same "average" ROI is a win for one and a loss for the other.

So use the benchmark tables for one thing only: ranking channels against each other. The absolute number that matters is your own gross profit per dollar, calculated with the formula at the top of this article and your actual [cost per lead](https://www.pavadotech.com/blog/what-is-a-good-cost-per-lead-for-contractors) inputs.

The better swap for the textbook formula: **(gross profit from attributed jobs minus total marketing cost) divided by total marketing cost.** Same shape, one word changed, and it stops the report from counting materials and subcontractor costs as marketing return.

## Step 1: Build the real denominator

Most cost-per-lead math uses ad spend as the denominator. That is the smallest part of what you actually spend.

Michael Stone of Markup and Profit, who has coached contractors on pricing for decades, is direct about this. Contractors tell him "we don't advertise, we work by referrals," and then he lists what they are already paying for: signs on the trucks, business cards, crew T-shirts, job site signs on every project, company name on the tools, letterhead and envelopes. All advertising. He adds the items owners never count: hours you or your staff spend on marketing valued at your rate, graphic design, printing, social media management, jobsite photography and video, and the website build amortized over about five years plus hosting.

His worked example: 110 leads in a year against $13,640 in total marketing cost gives a cost per lead of $124. If that contractor had counted ad spend alone, the number would have been a fraction of it, and every downstream decision would have been made on a fantasy.

Pull twelve months and total it honestly. The number will be larger than you expect, and it is the only denominator worth using.

## Step 2: Define a lead once, then never move the definition

Stone's second point matters more than it sounds. Before counting leads, decide what a lead is.

He counts a lead as any sales call you actually go on. The homeowner who called for a ballpark square foot price and hung up is not a lead. The person who has already collected five bids and wants a sixth is not a lead. Both would show up in a call-tracking dashboard as conversions.

Pick a definition that matches how you sell. The only rule Stone insists on is consistency: "The important thing is to not change the parameters once they're set." A cost per lead that moves because your counting rule moved tells you nothing about your marketing.

Worth noting his warning on the other side of the funnel too. If you are closing 7 or 8 of every 10 leads, that is usually not sales skill. It usually means your prices are too low. He puts a healthy sales-to-lead ratio at roughly 1 in 3 to 1 in 4.

## Step 3: Tag the lead at the door, because it arrives by phone

Here is the finding that should reorganize most contractor dashboards.

SearchLight Digital, reporting on a portfolio of 500 plus home services accounts across HVAC, plumbing and electrical in 2026, broke down how leads actually arrive: **82 percent came in as tracked phone calls, 15 percent as web forms, and 100 percent of closed revenue came through a call.** No web form submission had closed at time of measurement.

If your measurement is a Google Analytics goal counting form submissions, you are measuring the channel that produced none of your revenue.

The fix is unglamorous and cheap. A distinct tracking number per channel, forwarding to your main line, so the source is logged automatically. The [call tracking tools built for contractors](https://www.pavadotech.com/blog/best-call-tracking-software-for-contractors) all do this. CallRail runs from about $50 a month and is the only call tracking provider currently in the ServiceTitan marketplace, sending inbound calls in with marketing source, medium, campaign and keyword attached. On an $8,000 monthly ad budget that is well under one percent of spend.

Then the part that is actually hard: a **lead source field filled in on every single job** in your CRM, the same habit behind [tracking where your leads come from](https://www.pavadotech.com/blog/how-to-track-where-your-leads-come-from). Open your last 20 completed jobs. If they do not all carry a source, you cannot calculate booking rate by channel, and everything after this step is guesswork. This is the same discipline behind [responding to a lead fast enough to win it](https://www.pavadotech.com/blog/how-fast-should-you-respond-to-a-lead), and it fails for the same reason: nobody owns the field.

An owner running an online services business laid out the failure mode precisely on r/smallbusiness: "We spend ~$80/month on Meta ads and genuinely cannot tell you whether it works. Leads convert without anyone updating the CRM, so attribution is broken." The spend was trivial. The blindness was not, and it scales to any budget.

If your leads arrive without a source attached, no amount of reporting will fix it downstream. [Our lead generation work](https://www.pavadotech.com/) is built around a dedicated conversion page, a qualifying form that arrives with the answers already attached, and lead-to-sale tracking, so the cohort math below is something you can run every quarter instead of reconstructing from memory.

## Step 4: Measure by cohort, not by calendar month

This is the step almost nobody does, and it is the reason good channels get cut.

A contractor sale is not instant. PipelineOn puts the realistic reporting windows at two to four weeks for click and lead data, and 60 to 90 days for booked-job and revenue data, because the sales cycle runs through estimate, follow-up and scheduling before any money moves.

SearchLight Digital quantified what happens when you ignore that. Measuring two consecutive months at the same data pull, they found the more recent month always looks worse simply because it has had less time to close. Their conclusion, on their own data: **"A 30-day read understates revenue by roughly half."** The same channel showed a $1,906 average ticket in the mature month and $900 in the month measured a month early. Nothing about the channel changed.

So the standard monthly agency report is not just incomplete, it is systematically biased against whatever you started most recently.

Do this instead. Tag every lead with **the month it arrived**, not the month it closed. Wait a full 90 days. Then run the numbers on that arrival cohort:

1. What did we spend on this channel during the arrival month?
2. How many leads did that channel produce that month?
3. Of those specific leads, how many became completed, invoiced jobs by day 90?
4. What gross profit did those jobs produce?
5. Gross profit divided by spend equals your real return.

You are always reporting on a quarter that ended 90 days ago. That feels slow. It is the only version of the number that is true, and you can still watch cost per lead weekly for the operational signal.

## Step 5: Convert to cost per booked job, then to gross profit

Cost per lead ranks channels wrong. Built on Tenth's formula fixes it:

**Cost per booked job = cost per lead divided by (contact rate x booking rate on contacted leads)**

Their worked comparison is the cleanest illustration of why this matters. A [Google Local Services](https://www.pavadotech.com/blog/google-local-services-ads-for-contractors) lead at $65 is exclusive, so contact rate runs 84 percent and booking on contacted leads 62 percent, giving **$125 per booked job**. An Angi lead at $38 is shared with up to three contractors, so contact rate falls to 52 percent and booking to 28 percent, giving **$261 per booked job**. The lead that costs 71 percent more produces jobs at less than half the cost.

The same inversion shows up across channels. PipelineOn cites a roofer who tracked door knockers against Google Ads using unique tracking numbers and QR codes on yard signs: door knockers came in at $340 per booked job, Google Ads at $510, and the yard signs that "felt like a waste" at $90.

Set the threshold before you look at the answer. Built on Tenth's rule: cost per booked job should stay under **10 percent of the average ticket for the job type that channel produces**. A $380 emergency repair supports $38. A $2,800 replacement supports $280. A $9,500 full system change-out supports $950. Judge each channel against the ticket it actually generates, not one blended company average.

Then take the last step nobody takes: multiply the revenue those jobs produced by your gross margin, and divide by spend. That is the number in Step 1's terms, and it is the one that decides whether the channel stays.

Two of the three inputs are free to improve. Built on Tenth's math shows a 10-point gain in contact rate cuts cost per booked job by roughly 13 percent on every channel at once, and a 10-point gain in booking rate does the same. Fixing your phone before raising your budget is usually the higher-return move, which is also the argument in [what to do when the phone stops ringing](https://www.pavadotech.com/blog/what-to-do-when-the-phone-stops-ringing).

## Step 6: Know when your numbers are too small to read

This is the honest caveat that benchmark articles leave out, and it protects you from the most expensive mistake in the list: acting confidently on noise.

Run the arithmetic. Say you generate 40 leads a month and spread them across five channels. That is 8 leads per channel. At a 25 percent booking rate you expect 2 booked jobs from each. One job landing differently moves your measured booking rate from 12.5 percent to 37.5 percent, a 25-point swing driven entirely by which homeowner happened to answer the phone.

At that volume a monthly per-channel comparison is not a measurement. It is a coin flip with a spreadsheet around it.

Two ways out, and you should use both:

- **Pool a full quarter per channel** before you compare. Three months of 8 leads is 24, which is still thin but readable.
- **Run fewer channels.** Five channels at 8 leads each tells you nothing. Two channels at 20 leads each tells you something. Concentration is a measurement strategy, not just a budget strategy.

For context on what the industry converts at: PipelineOn puts the home services average lead-to-job rate around 7.8 percent across all sources, while SearchLight's non-branded paid search data shows a 37.6 percent book rate at an $804 cost per paying customer, against Performance Max at 32.2 percent and $447. The spread between sources is enormous, which is precisely why you need enough volume per source to see it.

## Measuring construction marketing ROI on bid and commercial work

For bid-based and commercial construction, measure ROI per won contract and per relationship source, over a window as long as your sales cycle. Call tracking and a 90-day cohort work for residential service calls. They undercount work that arrives through a GC's bid list, a property manager or a repeat client.

The split is how owners describe it themselves. In an [r/Construction thread from an owner deciding where to spend on leads](https://reddit.com/r/Construction/comments/1rxadpj/before_i_waste_money_what_actually_works_for_leads/), the top reply was: "commercial work is all about reputation and word of mouth. Residential is all about visibility." The owner, running a commercial electrical firm with a new renovation arm, named the measurement problem in his own words: "if I get 10-20 leads come in the door but are not in our price range not ready to order works and are just shopping it seems like dead money to me."

Three adjustments make the method in this article work for that kind of pipeline:

1. **Stretch the cohort window to match the cycle.** Urban Element, writing about construction and engineering marketing, notes it [can take months, even years, from initial contact to securing a contract](https://www.urbanelement.com/insights/real-roi-of-digital-marketing-for-construction). If your average bid-to-award time is five months, a 90-day cohort reads every commercial lead as a failure. Use your own median time to award plus a month.
2. **Count bid invitations as the lead, and awarded contracts as the job.** For [work that comes from general contractors](https://www.pavadotech.com/blog/how-to-get-work-from-general-contractors), the useful ratios are cost per bid invitation and bid-to-award rate by source, not cost per phone call. A prequalification packet, a trade show booth or a lunch with an estimator all belong in the denominator.
3. **Tag the relationship, not just the channel.** When a repeat client sends a new project, record which original channel brought that client in. Otherwise referral and repeat work absorb all the credit and the channel that started the relationship looks worthless. This matters more if you run both sides of the business, since [residential and commercial work](https://www.pavadotech.com/blog/residential-vs-commercial-which-is-more-profitable) carry different margins and different break-even multiples.

The gross profit step does not change. Say a $400,000 tenant improvement is won off a $6,000 marketing effort. It looks spectacular as revenue ROI and still needs the job's real margin, after subs and materials, before it counts as a return. That is only possible if [job costing in QuickBooks](https://www.pavadotech.com/blog/quickbooks-job-costing-for-contractors) or your CRM carries the lead source through to the closed job.

## Do not cut a channel on last-click data

One guardrail before you start reallocating.

PipelineOn's attribution analysis found that **last-click overvalues Google Ads by 40 to 60 percent**, because the average homeowner hits 7 to 12 touchpoints before booking. A homeowner sees the truck wrap in March, checks reviews in April, and in May searches your company name and clicks the ad. Last-click hands Google Ads all the credit and the truck wrap none.

The observable consequence: when contractors cut a "low performing" upper-funnel channel on last-click data, branded search volume typically drops 60 to 90 days later. The dollar saved on yard signs costs three dollars of lead flow that nothing in the dashboard traces back.

Same reason branded and non-branded search should never be reported as one line. SearchLight's January 2026 dataset covering $14.9 million in HVAC and plumbing Google Ads spend across 816 contractors and 8,077 campaigns put blended cost per lead at $104, hiding branded search at $34 and non-branded at $149. A 4.4x difference sitting inside a single "Google Ads" row on your P&L.

The test for an upper-funnel channel is not its own conversion count. Pause it for a full quarter and watch **total** lead flow.

A one-man plumbing business in the North Carolina Piedmont Triad posted an inventory of everything that failed on r/smallbusiness: BBB, Yelp, Google page, Facebook ads, [door hangers](https://www.pavadotech.com/blog/are-door-hangers-worth-it-for-contractors), car flyers, door to door, private marketing firms and paid SEO, each recorded as bringing "no leads." His conclusion after four years: "Pay per lead is the only route and I have spent more than most people make in a year in 2 years just on pay per leads." Nothing in the post indicates a single one of those channels was measured to a booked job. That is not an argument that the channels do not work. It is an argument that he never found out.

## The 30-minute quarterly scorecard

You do not need software beyond call tracking and your CRM. Once a quarter, for each channel, fill in eight cells:

| # | Field | Where it comes from |
|---|---|---|
| 1 | Total spend, arrival quarter | Ad platform plus fees plus your hours |
| 2 | Leads generated | Call tracking plus forms, deduplicated |
| 3 | Cost per lead | Row 1 divided by row 2 |
| 4 | Contact rate | Answered or reached, out of row 2 |
| 5 | Booking rate on contacted | Completed jobs out of row 4 |
| 6 | Cost per booked job | Row 3 divided by (row 4 x row 5) |
| 7 | Threshold | 10 percent of average ticket for that job type |
| 8 | Gross profit per dollar | Job revenue x gross margin, divided by row 1 |

Row 6 against row 7 tells you whether the channel is defensible. Row 8 tells you whether it is profitable. Any channel below 1:1 on row 8 gets restructured or cut this quarter, and an agency that cannot fill the table is a candidate for [firing your marketing agency](https://www.pavadotech.com/blog/how-to-fire-a-marketing-agency). Anything above 2:1 gets more budget.

PipelineOn reports that contractors who make this shift typically find **20 to 30 percent of marketing spend going to sources that produce leads but not jobs**, and that reallocating it lowers blended cost per lead by double digits within 90 days. Broader context from Coalmarch's 2026 report: 83 percent of marketing leaders now rank proving ROI as their top priority, up from 68 percent five years ago. The measurement gap is closing across the industry, which means the operators who close it first buy leads their competitors have mispriced.

## The cost of never running the numbers

Two industry voices make the stakes plain. Chris Lollini, a marketing advisor to HVAC contractors, in an ACHR News analysis: "Cost per lead is often misleading in HVAC. Cost per booked job tells the real story. Clicks, impressions, and rankings are inputs. Revenue is the outcome contractors should evaluate." Chris Hunter, principal industry advisor at ServiceTitan: "A $30 lead that never books is expensive. A $150 lead that turns into a replacement, a membership, and five-star reviews is profitable."

The agency side says the same when it is being honest. As Builder's Authority explains in [We Rescued a Contractor's Website at Midnight](https://www.youtube.com/watch?v=HjA7xMbyyLo), "If your agency can't tell you your cost per booked job, it's a massive red flag." The contractor in that video was spending about $10,000 a month on Facebook ads plus a $2,100 management fee, described it as working great, and on inspection was paying almost $1,000 per qualified lead. At a 30 percent close rate that is over $3,000 to acquire one customer. The fix the agency proposed was to cut ad spend roughly in half until there was a baseline to measure against, which is the same logic as Step 6. If your agency reports clicks and impressions instead, the checklist for [telling whether your agency is ripping you off](https://www.pavadotech.com/blog/how-to-tell-if-my-marketing-agency-is-ripping-me-off) is the next read.

And one owner's version of the same lesson, from r/Contractor. Fifteen months in, $325,000 gross and $70,000 net, then seven months of decline: "work has dried up despite doubling the ad budget, reworking ads with the marketing folks, and even asking old clients for new work. Door hangers didn't work and neither did door knocking." He was posting to ask how to close the business gracefully.

Doubling an ad budget is the correct move when you know your cost per booked job and your gross profit per marketing dollar. It is the most expensive possible move when you do not, because you are scaling a ratio you have never measured. The six steps above take an afternoon to set up and thirty minutes a quarter to run. That is the entire price of knowing which of those two situations you are in.

If you want the same discipline applied upstream, [how much a contractor should spend on marketing](https://www.pavadotech.com/blog/how-much-should-a-contractor-spend-on-marketing) sets the budget, and [what to pay a marketing agency](https://www.pavadotech.com/blog/what-should-i-pay-a-marketing-agency-as-a-contractor) prices the help.

## FAQ

### How do you measure ROI on contractor marketing?

Divide the gross profit from jobs a channel produced by everything you spent on that channel, including your own hours. Tag each lead by the month it arrived, give the group 90 days to close, then run the math on that group. Revenue divided by spend is the number most agencies report, and at trade margins it flatters a channel that is actually losing you money.

### What is a good ROAS for a home service business?

Coalmarch's 2026 benchmarks put a healthy home service PPC return at 7 to 9 times ad spend, with SEO closer to 19 times, and note that anything under 4 times usually means broken tracking rather than broken ads. Treat those as revenue multiples. The number that decides whether you keep the channel is gross profit per dollar, which is the revenue multiple times your gross margin.

### Why does my marketing look worse than it is when I check it monthly?

Because the jobs have not closed yet. SearchLight Digital, measuring 500 plus home service accounts in 2026, found home services revenue matures over 30 to 90 days and that a 30-day read understates revenue by roughly half. In their data the same channel showed a $1,906 average ticket once mature and $900 when measured a month early.

### What is the difference between cost per lead and cost per booked job?

Cost per lead is what you pay for a conversation. Cost per booked job is what you pay for revenue: cost per lead divided by your contact rate times your booking rate. Built on Tenth's worked example puts a $65 Google Local Services lead at $125 per booked job and a $38 Angi lead at $261, because the cheaper lead is shared and converts far worse.

### How do I track which marketing channel my leads come from?

Use a separate tracking phone number per channel and a lead source field on every job in your CRM. This matters more than most owners expect. In SearchLight Digital's 2026 home services data, 82 percent of leads arrived as phone calls and 100 percent of closed revenue came through a call, with no web form submission closed at time of measurement. A dashboard counting form fills is measuring a small minority of your business.

### Should I count referrals and truck wraps as marketing cost?

Yes. Michael Stone of Markup and Profit is blunt about it: signs on trucks, job site signs, crew shirts, business cards, letterhead and the hours you spend on marketing are all advertising. Leaving them out shrinks the denominator and makes your cost per lead look better than it is. Amortize your website build over about five years and include hosting.

### How many leads do I need before the numbers actually mean something?

More than one month of a small shop usually produces. At 40 leads a month split across five channels you have 8 leads per channel, and at a 25 percent booking rate that is 2 jobs. A single job either way swings the measured booking rate from 12.5 percent to 37.5 percent. Pool a full quarter per channel, or run fewer channels, before you act on a difference.

### What is a reasonable cost per booked job for a contractor?

Built on Tenth's rule is that cost per booked job should stay under 10 percent of the average ticket for the job type that channel produces. At a $2,800 average replacement that is $280. At a $380 emergency repair it is $38. Set the threshold for each channel before you look at the result, so you are testing a number rather than rationalizing one.

### Should I cut a channel that shows no direct conversions?

Not on last-click data alone. PipelineOn's analysis found last-click attribution overvalues Google Ads by 40 to 60 percent because the average homeowner touches 7 to 12 points before booking, and branded search volume typically drops 60 to 90 days after an upper-funnel channel is cut. Test by pausing the channel for a full quarter and watching total lead flow, not that channel's own conversion count.

### How do you calculate construction marketing ROI?

Divide gross profit produced by a channel by what that channel cost, not revenue by spend. Construction marketing ROI gets misreported constantly because contractors compare revenue against ad spend and ignore both job cost and the leads that never closed. The workable formula is gross profit from jobs attributed to the channel, minus the channel cost, divided by the channel cost. That requires tagging lead source at intake and carrying it through to the invoice, which is the step most shops skip and the reason their numbers cannot be trusted.

### What is the average marketing ROI for construction companies?

Agency benchmark reports usually quote 280 to 350 percent. Siana Marketing's 2026 construction report, which compiles other agencies' figures, puts small residential builders at 320 to 350 percent and enterprise commercial builders at 380 to 420 percent. Those are revenue-based returns. A 300 percent ROI means $4 of revenue per $1 spent, and at a 20 percent gross margin that is 80 cents of gross profit, which is a loss.

### How long does construction marketing take to pay back?

Longer than a monthly report can show. Siana Marketing's 2026 compilation puts break-even at roughly 2 to 3 months for referral programs, 4 to 6 months for paid search and about 5 months for SEO. For bid-based and commercial work the sales cycle alone can run months, so measure each lead group from the month it arrived and give it at least 90 days before judging the channel.
