A roofer we spoke with had a number in his head: 500 dollars a month for ads. That felt safe. Responsible, even.
He was doing about a million dollars a year in revenue.
So he was betting the growth of a million-dollar company on the cost of one nice dinner a week — and then wondering why the leads trickled in and the good months felt like luck. The budget wasn't cautious. It was too small to work, aimed at nothing in particular, and measured against the wrong number. Let's fix all three.
How much should a roofing company spend on marketing?
Start with a percentage of revenue, not a gut feeling. The U.S. Small Business Administration's general guidance for small businesses is to put 7-8% of gross revenue toward marketing — more if you're pushing hard for growth.
Two honest caveats. First, that's a cross-industry rule, not a roofing number pulled from roofing data — so use it as a starting frame, not gospel. Second, it covers everything, not just ads: your website, your follow-up tools, and the media spend together. But it does one useful thing immediately — it turns "500 a month feels fine" into real math. A roofing company at a million in revenue lands around 70,000 to 80,000 dollars a year, roughly 6,000 to 7,000 a month across the whole marketing operation. That's the floor to reason from. Now the real question isn't the percentage. It's what each dollar brings back.
What number should you actually chase?
Not cost per lead. Cost per signed job.
This is the single most expensive mistake we see roofers make. They shop for cheap leads, celebrate a low cost per lead, and never notice that most of those leads never sign. Here's why that number lies: two roofers can pay the exact same per lead, but if one closes a third of them and the other closes a tenth, their real cost is worlds apart. Leads don't pay your crew. Signed roofs do. Cost per signed job — total spend divided by jobs actually booked — is the number that survives all the ways cost per lead flatters you. Chase that one and everything clarifies: which channel works, which follow-up works, which "cheap" leads are actually the most expensive thing you buy.
How do you set the budget from a revenue goal?
Work backward from the roofs you need, not forward from what you're comfortable spending. It's three steps, and you can do it on a napkin.
- Start with the goal. How much revenue do you want to add this year? Say you want 20 more retail jobs.
- Work back to jobs, then leads. If you close, honestly, one in five of the leads a channel sends you, 20 jobs means about 100 good leads.
- Price it against cost per job. Whatever it costs to produce a signed job in your market times 20 is your ad budget for that goal. Not a vibe — a target you can hold the spend accountable to.
Do this and the budget stops being a number you flinch at and becomes a number you're buying something specific with. You'll also spot instantly when a channel is underwater: if the cost per signed job is higher than the profit on the job, you don't have a budget problem, you have a funnel problem.
Can your budget be too big — or too small?
Both, and roofers manage to make each mistake. Here's the shape of it:
| Monthly budget vs revenue | What usually happens | | --- | --- | | Way under (e.g. 500/mo on 1M revenue) | Too little data for the platform to learn; leads trickle; cost per job stays high | | The 7-8% zone, aimed at a real funnel | Platform can learn; cost per job becomes measurable and improvable | | Big budget, broken follow-up | More leads, same leak — you just pay to lose faster |
Look at the top and bottom rows — they're the two traps. Starve the budget and the ad platform never gets enough conversions to figure out who your buyers are, so it keeps guessing and your cost per job stays ugly. Flood the budget into a business that doesn't follow up fast, and you simply buy more leads to drop on the floor. The middle row is the target: enough spend to let the platform learn, pointed at a funnel that actually books, judged on cost per job. If your leads come in and sit, book a free audit — more budget won't fix a follow-up leak, and we'll show you which one you have.
Should insurance and retail jobs share one budget?
No — split them, because they don't behave alike. Insurance work often carries storm urgency and a different sales cycle; retail replacement is a slower, more considered decision. The cost to win each, and the value of each job, can be very different.
Lump them into one line and you hide which type your money is really funding. You might be crushing it on storm-driven insurance work while quietly losing money on retail — and the blended average tells you everything's "fine." Track cost per signed job for each separately. Then feed the one that returns better in your market. Budgeting is just aiming, and you can't aim at a blur.
What good looks like when spend meets a real funnel
The point of all this isn't a bigger budget. It's spend that lands on a funnel built to book, so every dollar is traceable to a job. The pattern holds in any business, roofing included.
A med spa we work with in Nice put about 620 euros of ad spend through a tight funnel over six weeks — clear offer, matched page, instant follow-up — and turned it into 193 leads at 3.21 euros each, and 88 paying clients. A 71x return. A roof is a much bigger ticket than a facial, and the cycle is longer, so the raw numbers won't copy across. But the machine does: right budget, aimed at a funnel that follows up fast, measured on cost per booked job. That's what turns marketing spend from a monthly gamble into a predictable line item.
The 30-Second Audit
Three yes/no questions about your roofing marketing budget. Answer them before you set next month's number.
- Is your budget set from a revenue goal and cost per signed job — not just what feels comfortable?
- Do you track cost per job, separately for insurance and retail — instead of celebrating cheap leads?
- Is your spend enough for the platform to learn, aimed at a funnel that follows up in minutes?
If any answer was no, book a free audit — we'll pull your numbers and tell you exactly what's broken, even if you don't end up working with us.
Budget by revenue. Judge by jobs. Everything else is noise.