You grow a roofing business past $1M by building demand you control: a retail lane that produces when the weather won't, a review wall that wins the bid before you knock, and follow-up fast enough to beat every other truck in town.
I've watched a lot of roofing companies get stuck at the same number. Somewhere around $800K, growth just stops. The crews are good. The work is clean. The owner is grinding sixty hours a week. And the schedule still swings between slammed and silent.
Here's the thing nobody wants to hear: the problem usually isn't the roofing. It's that the business runs on rented momentum. A storm hits, the phone rings, everyone eats. The storm passes, the phone cools, and you're back to bidding against the cheap guy.
Think of it like freight. A storm is somebody else's train. You can hop on and ride it for a while, and you should. But you don't own the track, you don't set the timetable, and when it stops, you're standing in a field. Companies that grow past $1M lay their own track. Demand shows up on their schedule, not the weather's.
The storm trap that keeps roofers under $1M
Storm work is real money. I'd never tell a roofer to walk away from hail. But building the whole company on it has a shape, and the shape is a rollercoaster.
The drought is where the $800K ceiling lives. You can't hire into a spike you can't predict, so you staff for the drought. You can't buy equipment against revenue that might not repeat, so you don't. The rollercoaster caps the company, not the market.
How to grow a roofing business: four rails to lay
When people ask me how to grow a roofing business past seven figures, they're usually expecting a secret channel. There isn't one. You grow roofing revenue the same way every durable company does it: four rails, laid in order, running every day.
Rail one: get found first. When a homeowner in your town searches for a roofer, you want to be the name they see in the map pack and the top results. Not once. Every time. That's a build, not a purchase: rankings compound month over month, and once you hold them, a competitor has to outwork a years-long head start to take them.
Rail two: win trust before the estimate. Homeowners pick roofers on fear. Fear of leaks, fear of getting burned, fear of the crew that vanishes. A wall of five-star reviews answers that fear before your truck pulls up. I wrote a whole piece on building a review engine, but the short version is: make the ask automatic, the moment the last square is nailed down.
Rail three: answer in seconds, not hours. Speed decides more roofing jobs than price does. Harvard Business Review published the numbers on this: companies that respond to a lead within an hour are roughly seven times likelier to have a real conversation with the decision maker than those who wait even an hour more (HBR, The Short Life of Online Sales Leads). Your best closer is usually on a roof at 2pm. The business that texts the homeowner back in thirty seconds anyway is the business that wins the roof. That's a system, not a personality trait. I broke down how it works in the speed-to-lead piece.
Rail four: own your pipeline. Shared marketplace leads are a treadmill: $40 to $100 for a roofing lead that gets sold to several of your competitors at the same time, per the published rates over at Fixr's roofing lead pricing guide. You can sprint on a treadmill. You can't travel on one. Exclusive beats shared every day of the week, and demand from an engine you own beats both.
Retail and insurance are two different businesses
Here's a mistake I see constantly: treating a cash retail reroof and a supplement-heavy insurance claim like the same sale. They aren't. Different homeowner, different timeline, different objections, different follow-up.
- Retail wants confidence. Financing options, clean galleries, reviews, a fast written estimate. The sale is trust.
- Insurance wants a guide. The homeowner is confused, the adjuster is busy, and the roofer who explains the claim process clearly wins the contingency. The sale is clarity.
Run them as two lanes with two messages and two intake paths. When the storm lane goes quiet, the retail lane keeps the trucks moving. That's the whole trick to surviving the cliff, and it's why I tell roofers to build the retail lane first, before the next storm, not after. I went deeper on the storm side of this in the storm season playbook.
The math of adding a crew
Growth past $1M is really a staffing equation. A crew only pays for itself when it's laying squares, so the question is never "can I find another crew," it's "can I feed one."
Staff for the drought
Revenue follows the sky. You keep crews small so the quiet months don't eat you, and you turn down work in the loud ones.
Staff against a backlog
Owned demand builds a predictable backlog. A new crew starts its first Monday with a full week, and the second crew funds the third.
Do the napkin math on your own numbers. If your average job nets $3,000 and a crew can turn ten jobs a month, a fed crew is worth $30K a month in gross profit. An unfed crew is a payroll problem. Every dollar you put into demand you own is really buying the ability to say yes to that crew.
And that's the honest answer to the pace question too. You can't grow roofing capacity faster than you can grow roofing demand, so the demand engine has to run a season ahead of the org chart. The owners I've seen scale cleanly all did it in that order: demand first, then trucks, then people. The ones who hired first spent a year paying for the lesson.
What I'd do this quarter
The 60-second version: stop building on weather. Stand up a retail lane with its own message, get your review engine asking automatically, put instant text-back in front of every lead, and start compounding rankings now so next year's quiet season isn't quiet. Storms become a bonus on top of a business, not the business itself.
None of this requires a marketing degree. It requires the four rails, built in the right order, running every day whether you're watching or not. That's how you grow roofing companies past $1M and keep them there. Some owners build that themselves over a couple of years. Plenty decide they'd rather buy the finished engine and own it outright, which is exactly what we build for one roofing company per market. You can see what the numbers look like on the results page, and if your market's still open, a 15-minute call with our team will tell you.
Either way, lay the track. The weather already has enough businesses riding its schedule.
Stop renting your growth. Own it.
We build the whole engine and run it for you, with nothing held hostage. One company per trade, per market.
Book a Discovery Call →

