A $3 million roofing company should spend $15,000 to $20,000 per month on marketing, roughly 6 to 8 percent of revenue, to grow toward $5M. TMC Roofing followed this exact formula and went from $3M to $8M in 12 months by spending $6K early and ramping to $24K/month at $8M revenue.
That's the answer most roofers don't want to hear. They look at $15K a month and feel sick. They got to $3M spending $3K a month on a half-built website and a Google Ads account their cousin runs, so why pour gas on a fire that's already burning?
Because the fire is about to stall. Every roofer I've watched plateau at $3M plateaued for the same reason. They scaled their truck count, their crew count, and their job count, but they did not scale their marketing. The phone stops growing. Repeat customers and referrals carry them for another 18 months. Then a competitor moves into their territory with $20K/month in ad spend and an LSA profile with 400 reviews, and the $3M roofer watches their lead flow drop 30 percent in a quarter.
This is the budget that prevents that. Real numbers, real channel mix, and the exact ramp one of our clients used to go from $3M to $8M.
The $3M Roofing Company Marketing Budget Formula (6 to 8% of Revenue)
The percentage-of-revenue model is the cleanest way to think about marketing spend at this stage. Forget what you spent last year. Forget what your buddy spends. Look at where you are right now and where you want to be 12 months from now, then back into the number.
Here's how the percentages map to roofing revenue tiers:
- $1M to $2M: 8 to 10 percent of revenue ($7K to $17K/month). High percentage because you need momentum to break into the next tier.
- $3M to $5M: 6 to 8 percent of revenue ($15K to $33K/month). The growth phase. Underspending here is the #1 reason roofers stall at $3M.
- $5M to $10M: 5 to 7 percent of revenue ($21K to $58K/month). Maintenance becomes a bigger line item, but absolute spend keeps climbing.
- $10M+: 4 to 6 percent of revenue. Brand starts carrying more of the load, but you're still spending $33K to $50K minimum.
Notice what happens at $3M. The percentage drops slightly from the $1M tier (because the absolute dollars are bigger), but the dollar amount roughly doubles. That's the gap most roofers miss. They got comfortable spending $4K to $6K a month at $1.5M revenue (which was 4 percent), and they keep spending $4K to $6K at $3M revenue (which is now 2 percent). They cut their marketing investment in half without realizing it, then wonder why the phone stopped growing.
A $3M roofing company that spends 2 percent on marketing is not "being efficient." It's starving the engine that got them to $3M in the first place.
Want a free audit of your current marketing spend vs. revenue? Take the 5-minute Marketing Scorecard →
How TMC Roofing Scaled From $6K/Month to $24K/Month While Going From $3M to $8M
TMC Roofing came to us at $3M. The owner had been running on referrals and a basic Google Ads account for three years. He'd plateaued for two of them. He didn't want to spend $15K/month on day one. Fair enough. We didn't ask him to.
Here's the actual ramp we ran with him over 12 months. Every dollar tied to a revenue tier and a specific channel reason.
Months 1 to 3 (revenue: $3M run rate, spend: $6K/month)
- $2,500 LSA + Google Ads spend
- $2,000 LSA + Google Ads management
- $1,000 SEO foundation (city pages, schema, GBP cleanup)
- $500 review acquisition system
This stage is about building the platform. We rebuilt his GBP, ran review acquisition until he hit 180 reviews, and let LSAs and Google Ads run lean while we figured out which keywords closed.
Months 4 to 6 (revenue: $4M run rate, spend: $12K/month)
- $5,500 LSA + Google Ads spend (doubled because we had close-rate data)
- $3,000 management + landing page builds
- $2,000 SEO content (4 service pages, 3 city pages)
- $1,000 review acquisition + GBP posting
- $500 retargeting
The phone started ringing measurably more in month 5. Close rate held at 32 percent. Cost per signed job dropped from $1,400 to $980 because LSA was now ranking #1 in his core city.
Months 7 to 9 (revenue: $5.5M run rate, spend: $18K/month)
- $9,000 LSA + Google Ads spend
- $4,500 management
- $2,500 SEO content + link building
- $1,000 review acquisition
- $1,000 retargeting + Meta retargeting
This is where most roofers chicken out. He didn't. He kept spending the percentage, and the revenue kept compounding.
Months 10 to 12 (revenue: $7M to $8M run rate, spend: $24K/month)
- $12,000 LSA + Google Ads spend
- $5,500 management
- $3,500 SEO + content scale-up
- $1,500 review acquisition + reputation
- $1,500 retargeting + brand display
By month 12, TMC was closing the year at $8M, with marketing running at exactly 3.6 percent of revenue ($24K on $8M annualized). The percentage dropped because revenue grew faster than spend. That's the entire point.
The full breakdown lives at the TMC Roofing case study if you want the deeper version.
The $15,000/Month Channel Mix for a $3M Roofer (Where Each Dollar Goes)
If you're sitting at $3M today and you want to scale to $5M, $15K/month is the floor. Here's where every dollar should be going:
- $4,000 to $6,000: Google Local Service Ads. This is the single highest-ROI channel for an established roofer. LSA leads cost $50 to $95 each, close rates run 22 to 32 percent, and the Google Guaranteed badge does free trust-building above the fold. See /services/google-local-service-ads.
- $3,000 to $5,000: Google Ads (PPC). Search ads on the high-intent commercial-roof and replacement keywords LSA doesn't always cover. Bigger ticket, longer sales cycle, but bigger jobs. See /services/google-ppc.
- $2,000 to $3,000: SEO + content. 4 to 6 city-and-service pages per quarter, schema markup, blog content targeting buyer-stage keywords. SEO is the slow flywheel. The roofers winning at $5M+ started spending here at $3M. See /services/seo.
- $1,000 to $2,000: Reviews + Google Business Profile. Automated review acquisition after every completed job, weekly GBP posting, photo geo-tagging, Q&A monitoring. This channel is criminally underspent in roofing. See /services/review-management and /services/google-business-profile.
- $1,000: Agency management. The work that ties everything together. Bid management, lead disputes, monthly reporting, channel-mix reallocation.
- $2,000 to $3,000: Website + landing pages. Dedicated landing pages per service, per top city. CRO testing on form length and CTAs. Page-speed work. This isn't a one-time spend. It's an ongoing line item.
That's $13K to $20K/month, depending on how aggressive you are on each line. The $15K midpoint is the sweet spot for most $3M roofers.
Notice what's NOT on this list. HomeAdvisor. Angi. Thumbtack. Postcard mailers. Vehicle wraps. Those aren't bad channels for some businesses, but a $3M roofer trying to get to $5M needs to dominate Google search results in their service area. Every other dollar comes after that.
If you want to see what we charge for a full-stack package at this tier, the pricing page lays it out clearly.
Why Most $3M Roofers Underspend by 40% (and Stay Stuck at $3M)
Here's the trap. A roofer hits $3M, looks at his P&L, and sees that he spent $80K on marketing last year. That feels like a lot of money. He bought a truck for $65K and a crew skid steer for $42K and his marketing is right up there. So when his agency suggests bumping spend to $15K/month ($180K/year), he resists.
The problem is the frame. He's comparing marketing spend to other expenses. He should be comparing it to revenue. $80K on $3M is 2.7 percent. That's a starvation diet for a growth-stage business.
The math gets uglier when you look at what underspending actually costs.
A roofer doing $3M a year on a 35 percent close rate at a $14K average ticket needs roughly 612 leads per year (51 per month) to hit that revenue. At $15K/month spend with $80 blended cost-per-lead, that's 187 leads. He's getting more than he needs. Easy.
Now imagine he wants to grow to $5M. That's 1,020 leads per year (85 per month) at the same close rate and ticket. To produce 85 leads per month at $80 CPL, he needs to spend $6,800 a month on direct lead-gen channels alone, which means $13K to $16K all-in once you add SEO, reputation, and management. The math forces the budget. He doesn't get to opt out and still hit the goal.
Most $3M roofers underspend because nobody's done this math for them. They feel the budget. They don't see the model. The model is the only thing that matters.
The owner psychology piece is real too. At $3M you're personally seeing the marketing line item every month. At $8M you're seeing a CFO summary that shows the marketing percentage trending down even as the absolute dollars climb. That's the milestone where roofers stop fighting their marketing budget and start asking how to spend more efficiently. Get to that mindset earlier and you'll get to $8M faster.
When to Increase Marketing Spend (Trigger Points by Revenue)
Bumping the budget shouldn't be a vibe call. There are specific signals that tell you it's time. Watch for these:
- Your LSA cost-per-lead is trending up 15 to 25 percent for two consecutive months. That usually means territory saturation. You're capturing most of the urgent demand in your service area. Time to either expand the radius (more spend, same channel) or move budget into commercial-roof and replacement-tier Google Ads keywords.
- Your organic traffic plateaued for 90+ days. SEO compounds when you keep adding content. If you stopped, the curve flattens. Bumping the SEO budget by $1,500 to $2,500 unlocks the next 6 to 12 months of growth.
- You're closing 90 percent of your LSA leads but still missing your revenue target. Demand is the bottleneck. Spend more on top-funnel channels (Google Ads, retargeting, brand search defense).
- Your average ticket size is climbing. Bigger jobs justify higher CPL. If your ticket went from $11K to $16K, you can afford to spend more aggressively per lead because the unit economics improved.
- A competitor just opened in your area and started running LSAs. Defensive spend. Period. You don't get to "wait and see" on this one. Match their LSA bid or lose ranking.
- Your phone-to-signed-job conversion is north of 35 percent for two quarters. Your sales process can absorb more leads. Pour fuel on it.
The wrong trigger is "we had a slow month." A slow month is normal. Two slow quarters in a row is a signal.
What $5,000/Month Buys You (and Why It's the Floor for $1M+ Roofers)
If you're a roofer doing $1M to $2M and $15K/month feels impossible right now, $5K/month is the realistic floor. Anything below that and you're not running a real marketing program. You're running a side hustle.
At $5K/month, here's what you can realistically do:
- $1,500 LSA + Google Ads spend (lean, focused on your top 1 to 2 city/service combos)
- $1,500 management + landing page work
- $1,000 SEO foundation (3 to 4 pages per quarter)
- $500 review acquisition
- $500 GBP optimization + retargeting
That program will move a $1.5M roofer to $2.5M in 12 to 18 months in most markets. It will not move a $3M roofer to $5M. Different stage, different math.
If you're at the $5K starter tier or you want to see what scales from there, the roofing marketing agency page lays out every tier and the pricing page shows what's included at each.
We've also broken down Texas-specific roofing marketing costs for roofers in DFW, Houston, and Austin if you're operating in a high-CPC market.
Ready to map your $3M-to-$5M marketing plan? Book a 30-minute strategy call → and we'll show you the channel mix that works for your market.
How to Build a 12-Month Marketing Budget for Your Roofing Company
Here's the practical month-by-month framework I give to every $3M roofer who wants to scale:
Months 1 to 3: Foundation + benchmarking
- Set spend at 6 percent of current revenue
- Audit current channel mix and cost-per-signed-job
- Rebuild GBP, fix tracking, install call tracking
- Get to 150+ Google reviews if you're not already there
- Goal: Establish a clean baseline so you know what's working
Months 4 to 6: Channel optimization
- Hold spend at 6 percent
- Reallocate budget to whichever channels are producing lowest cost-per-signed-job
- Build out 4 to 6 dedicated landing pages
- Goal: Drop blended cost-per-signed-job by 20 to 30 percent
Months 7 to 9: Scale phase
- Bump spend to 7 percent of revenue (revenue should be growing)
- Expand SEO content production
- Add retargeting + brand defense
- Goal: Match a 25 to 40 percent revenue increase YoY
Months 10 to 12: Compound phase
- Hold at 7 to 8 percent of new (higher) revenue
- Re-audit cost-per-signed-job and reallocate again
- Begin testing one new channel (Meta retargeting, YouTube, programmatic)
- Goal: Lock in the next revenue tier and set up year 2
This is the playbook. It's not glamorous. It's not a hack. It's just consistent spending at the right percentage with monthly accountability on cost-per-signed-job.
For more on the leads side of the math, how many roofing leads close $1M in revenue breaks down the lead-flow numbers, and how fast roofers should respond to leads covers the speed-to-lead piece that wrecks half of the marketing budgets I audit.
What to Do This Week
If you're a $3M roofer reading this and your current spend is under $10K/month, you have a clear next move. Pull your last 12 months of P&L. Calculate marketing as a percentage of revenue. If it's under 6 percent, you've found the reason your growth has slowed.
The fix isn't to panic-spend. The fix is to map a 90-day ramp from where you are to where you should be, with a clear channel-mix and clear KPIs.
If you want help building that ramp, book a 30-minute strategy call and we'll lay out the plan. We work specifically with roofing, HVAC, and solar contractors. The full menu is at /industries/roofing.
You can also take the 5-minute Marketing Scorecard for a free read on where you're under-investing right now.
The roofers who get to $5M, $8M, and $10M aren't smarter than you. They're not better operators. They just figured out 18 months earlier that the percentage-of-revenue model is the only one that works at scale, and they stopped fighting their marketing budget.
If you want to see what that ramp looks like in real life, TMC Roofing's $3M to $8M case study is the proof. Same starting point. Same trade. Twelve months of the right ramp.
The math is the math. Either you spend the percentage, or you stay where you are.