For Roofing Contractors

Which ads produced signed roofs?

Match signed and installed contracts to the leads and ads that produced them, across a sales cycle that often runs months.

No card required · Nothing to install · Cancel anytime

The blind spot

What's actually happening

Roofing leads are expensive, most inspections do not convert, and the ones that do convert are worth twenty thousand dollars or more. Judging channels on lead volume in that market is close to guessing.

Contracts, not inspections

Rank channels by contract value so a source producing few large jobs wins properly.

Long, weather-driven cycles

An inspection in spring signed after an autumn storm still matches the original ad.

Checkable lead-source claims

Only exact matches count, so a lead reseller cannot claim a homeowner it never sent.

The number you can take into a budget meeting

Not impressions, not leads, not cost per click. Closed revenue, by the channel that produced it, for a period you choose — with the portion we could not trace shown rather than quietly shared out across your paid channels.

Q3 2026
Total revenue $900,000
Attributed to a channel $540,000 60% of revenue
Average deal $17,300
Match rate 70%
ChannelSalesRevenueShare
Google Ads19$342,000
Meta Ads9$153,000
Email marketing3$45,000
Direct / Unknown21$360,000

Inspection volume is not contract volume

Free-inspection offers produce leads cheaply and convert poorly. A channel that generates a hundred inspections and four contracts is worse than one generating twenty inspections and eight, and no cost-per-lead report will tell you that.

Matching signed contracts back to their original lead source ranks channels on the only number that matters — installed contract value — and usually reorders them substantially.

Storm work breaks click attribution completely

A homeowner researches roofing in May, does nothing, then signs in October after a storm. The click is five months old, the cookie is gone, and any platform-reported attribution has expired.

Because the match is on the homeowner rather than a session, the October contract is still credited to the May lead. It also means a season that has already ended can be analysed properly, which for a weather-driven trade is the only way to compare years.

What changes when you can prove it

You stop defending the budget and start growing it

"We generated 400 leads" invites an argument. "This channel closed $186,400 last quarter, here is the reconciliation" ends one. The teams that can show closed revenue by channel are the teams that get the next increase approved, because they are asking with evidence rather than with conviction.

You can cut the wrong channel without a fight

Killing spend is politically harder than adding it, because someone always owns the channel being cut. A number that reconciles to the sales export takes the argument out of the room — you are not overruling a colleague's judgement, you are reading the same ledger they are.

Your reporting survives the finance review

Platform-reported conversions do not reconcile to revenue, and eventually someone in finance notices. Reporting built from your own closed-sales export starts from the number finance already trusts, which is why it holds up when it is checked.

You answer in an afternoon, not a quarter

Because this reconciles exports rather than tracking visitors, it works on months that have already closed. You are not instrumenting now to learn something in ninety days — you can answer for last quarter today, which is usually when the question is being asked.

What roofing contractors usually push back on

A lot of our work is door-knocking and referral.

That lands in Direct / Unknown, which is correct and worth quantifying. Crediting canvassing to your Meta budget would make the paid figures meaningless.

Insurance jobs complicate the amounts.

Export whichever figure you want to rank on — contract value, approved claim, or your own revenue. The report ranks consistently on what you provide.

We buy leads from several resellers.

Upload their exports as the source file. Matching them against signed contracts is usually the fastest way to work out which reseller is worth renewing.

Pricing

Flat monthly pricing with no per-call, per-minute or per-form fees. The number here is the number on the invoice. Most roofing contractors land on Growth.

Starter

A single business getting started

$49/mo

billed monthly

  • 1 workspace · 1 seat
  • 500 sales records / month
  • 6-month saved history
  • Phone + email matching with confidence tiers
  • Assisted column mapping
  • Your logo on every report
  • CSV export

Enterprise

One business closing at volume

$499/mo

billed monthly

  • 1 workspace · 10 seats
  • 25,000 sales records / month (+$49 per 10,000)
  • 24-month history
  • Campaign drill-down and period comparison
  • Your logo on every report
  • Roles, permissions and guided onboarding

Agency

Reporting on many clients at once

$799/mo

billed monthly

  • 10 client workspaces (+$25/mo each)
  • 10 seats
  • 10,000 sales records / month per workspace
  • 24-month history
  • White-label reports — our mark removed entirely
  • Roles, permissions and guided onboarding

Questions roofing contractors ask

Signed or installed contracts: homeowner phone or email, the contract value, and the date.

Stop guessing which ads pay off.

Upload two exports and see your real revenue by channel in minutes. Three days free, no card.

Start free