Conventional wisdom in the Great Lakes State suggests that if you aren't the lowest bidder, you aren't getting the contract. I was standing on a job site in Ann Arbor last October with a contractor named Vance, watching his crew tear off a three-tab roof in record time. Vance had been in the business for 19 years, yet when we looked at his profit and loss statement for the previous quarter, his net margin was hovering at a terrifying 4.2%. He was winning plenty of jobs across Washtenaw County, but he was essentially paying for the privilege of working. The myth he believed—and the one that keeps many Michigan roofers from scaling—is that "the market" dictates your price.
The reality I've seen across hundreds of consulting sessions is that the market only dictates the price for contractors who view their work as a commodity. In a state where we deal with everything from Detroit's urban density to the brutal lake-effect snow in Muskegon, a "one size fits all" pricing model is a recipe for bankruptcy. Vance was pricing his jobs based on what he thought the guy down the street was charging, rather than the actual burden of his overhead and the specific risks of the Michigan climate. We spent three days rebuilding his estimating framework from the ground up, and the results weren't just about survival; they were about reclaiming the 14.8% in "hidden leaks" he was losing on every single square.
Average revenue leak for Michigan contractors using "standard" markup instead of burden-based pricing.
At a Glance
Shift from "cost-plus" pricing to "burden-based" models to account for Michigan's high workers' comp and seasonal labor shifts.
Implement a "Weather Premium" for late-season jobs (Nov–Dec) to cover the 19.3% drop in crew efficiency during cold weather.
Use verified lead previews to stop wasting sales overhead on unworkable zip codes or low-margin repair-only inquiries.
Review pricing every 4.5 months to stay ahead of Midwest material price volatility.
The Fatal Flaw of the "Standard Markup" in the Midwest
When I sit down with a shop owner in Grand Rapids or Lansing, I often ask how they arrived at their per-square price. More often than not, the answer is some variation of "materials plus labor plus 30%." If you are doing this, you are likely underwater before the first bundle hits the roof.
In Michigan, your "burden"—the actual cost of keeping a human being on a roof—is significantly higher than in the Sunbelt. Between Michigan's specific LARA (Department of Licensing and Regulatory Affairs) requirements and the insurance premiums associated with our steep-slope residential architecture, your overhead isn't a flat percentage. It's a moving target.
I've analyzed data from 37 different Michigan-based firms over the last 6.5 years. The shops that thrive are the ones that calculate their "Break-Even Hourly Rate" for the entire crew. This includes the fuel for the trucks idling on I-75, the wear and tear from hauling heavy loads through slush, and the administrative cost of managing various lead generation strategies to keep the pipeline full. If your office manager spends 12 hours a week chasing down bad leads, that cost has to be baked into your successful bids.
Regional Nuance: Pricing Detroit vs. The Upper Peninsula
One of the biggest mistakes I see scaling companies make is trying to standardize pricing across different Michigan territories. A roof in Oakland County shouldn't be priced the same as one in Traverse City.
In the Detroit metro area, you're dealing with higher logistical friction. Your crews are spending 22% more time in transit due to traffic, and parking permits can add a hidden $185 to $340 per job. Conversely, in northern Michigan, your material delivery fees might be $450 higher because the nearest supply house is an hour away.
I worked with a firm that tried to expand from Saginaw into the UP. They used their Saginaw pricing and nearly folded within eight months. They hadn't accounted for the "Ice Shield Factor." In the snow belts, your material cost per square is naturally higher because local codes and common sense require more extensive waterproofing. If you aren't adjusting your base price by zip code, you are subsidizing your high-cost jobs with your low-cost ones, which prevents you from ever truly understanding your profitability.
The "Busy Fool" Trap
Be wary of high volume with low margins. A Michigan shop doing $4.2M at an 8% margin is in a much more precarious position than a $2.6M shop at a 22% margin. One bad winter or a sudden shingle price hike from a Midwest distributor can wipe out the high-volume shop's entire annual profit.
Leveraging Data to Win High-Margin Bids
Winning a bid isn't about being the cheapest; it's about being the most certain. When Vance and I revamped his process, we focused on "Certainty Pricing." This involves showing the homeowner exactly why the bid is $13,742 instead of the $11,500 the "chuck-in-a-truck" competitor offered.
We started by using better data at the top of the funnel. Instead of buying every lead that came his way, Vance started using a platform where he could see job details before buying. This allowed him to cherry-pick jobs that fit his "sweet spot"—houses with specific pitches and shingle types where his crew was most efficient. By narrowing his focus, his crew's "squares per man-hour" increased by 17.4%, which effectively lowered his internal cost without him having to cut his prices.
According to a guide by IKO on roofing leads, modern contractors are moving away from traditional cold-calling toward more verified, digital-first methods. When you have a verified lead pipeline, your sales team doesn't have to "price to win" out of desperation. They can price for profit because they know another qualified opportunity is right behind it.
The Seasonal Pricing Pivot: The November Rush
In Michigan, we have a finite window. The pressure to close jobs before the first permanent snow is a psychological lever you should be using in your pricing strategy. I recommend a "Tiered Seasonal Model."
The Spring Thaw (April–June)
Aggressive pricing to fill the schedule early.
The Peak Season (July–September)
Maximum margins. Your crews are at capacity; price for the highest possible ROI.
The November Rush (October–December)
Premium pricing. Homeowners are desperate to get the roof done before the freeze.
Vance was skeptical about raising prices in November. "Everyone is looking for a deal before the holidays," he told me. I countered with the data: his crews were taking 25% longer to complete jobs in 35-degree weather compared to 70-degree weather. Shingles are harder to cut, guns jam more often, and daylight is scarce. By increasing his "Late Season" price by 11.2%, he wasn't price gouging—he was accurately reflecting his increased cost of production.
Why Your "Lead Acquisition Cost" is a Pricing Variable
Most contractors treat lead generation as a fixed marketing expense. In reality, it is a variable cost of goods sold. If you spend $3,200 on a marketing campaign that nets you two jobs, your "Lead Tax" per job is $1,600. That has to be covered in your bid.
I've seen shops transform their bottom line by switching from "spray and pray" advertising to exclusive lead sources where the competition is lower. When you aren't fighting five other contractors for the same homeowner's attention, your "close-to-bid" ratio improves. If you move your close rate from 1 in 10 to 1 in 4, your sales cost per job drops by 60%. You can then choose to either pocket that difference as pure profit or slightly lower your bid to become more competitive while maintaining your target margin.
Implementing the 72-Hour Pricing Audit
If you haven't touched your price list since last season, you are losing money every day. Michigan's economy is currently seeing significant fluctuations in labor availability. To stay ahead, I suggest a 72-hour audit every quarter:
Action Plan
The 72-Hour Pricing Audit
A quarterly review process to ensure your pricing reflects current market conditions, labor costs, and material prices in Michigan.
Pull your last 10 completed jobs. Compare the "Estimated Labor" vs. "Actual Labor Paid."
Call your local supplier (ABC Supply, Beacon, etc.) and get a firm quote on shingles and underlayment for the next 90 days.
Calculate your current "Customer Acquisition Cost" (CAC). If it's over 10% of your average job size, your sales process is inefficient.
Adjust your base "price per square" to reflect these three variables.
Want to skip the manual work and get exclusive, verified leads instead?
Get $150 in Free CreditsWhen Vance finished this audit, he realized his labor costs had crept up by $22 per square over the summer because he was paying overtime to keep his best guys from jumping to a competitor in Sterling Heights. By failing to adjust his bids, he was personally paying that overtime out of his own pocket.
Common Questions
Final Thoughts: Pricing for the Future
The Michigan roofing market is too volatile for "gut-feeling" pricing. Whether you're working the historic districts of Detroit or the new developments in Ann Arbor, your data must be your guide. When we checked back in with Vance this past June, his net margins had jumped from 4.2% to 18.7%. He wasn't doing more jobs—in fact, he was doing 12% *fewer* jobs—but he was making three times the profit. He stopped chasing every "lead" and started focusing on the jobs where his optimized pricing model gave him an unfair advantage.
If your current lead flow isn't giving you the luxury of being selective, it's time to rethink your pipeline. You can't implement a high-margin pricing strategy if you're starving for opportunities. Optimize your bids, understand your Michigan burden, and stop treating your expertise like a bargain-bin commodity.
