Roofing carries one of the highest workers' comp base rates in construction, so the experience modification rate — the EMR, or "mod" — does more damage to a roofing contractor's cost structure than almost any other trade. Most owners treat it as something the insurance broker handles. It shouldn't be. The mod is a direct multiplier on premium, it's driven partly by things your books control, and a bad one gets baked into every bid you price for the next three years, whether or not you've had a claim recently.
What the Experience Mod Actually Multiplies
Your workers' comp premium starts as "manual premium" — payroll divided into $100 units, multiplied by the rate your carrier files for your class code. For roofing, that rate runs several times higher than an office class code because the injury risk is real and the actuarial data reflects it. The EMR then multiplies against that manual premium. A mod of 1.00 is exactly average for a contractor your size and class. A mod of 1.30 means you pay 30% more than the base rate for identical payroll. A mod of 0.80 means you pay 20% less. The formula itself, run by NCCI or your state's rating bureau, compares your actual claims cost against the expected claims cost for a contractor with your payroll and class code, weighting claim frequency more heavily than a single large claim's severity — which is why several small claims often hurt worse than one bad one.
Worked Example: Same Payroll, $19,400 Apart in Premium
Two roofing contractors each run $900,000 in annual field payroll under the same roofing class code and the same $18.50 per-$100 manual rate — a $166,500 manual premium before the mod is applied.
| Item | Contractor A (0.82 Mod) | Contractor B (1.28 Mod) |
|---|---|---|
| Manual premium | $166,500 | $166,500 |
| Experience mod applied | 0.82 | 1.28 |
| Actual annual premium | $136,530 | $213,120 |
That's a $76,590 gap on identical payroll, purely from the mod. Contractor B's higher mod came from three soft-tissue claims over two years that never got closed out promptly and sat with inflated reserves, plus two office employees whose payroll was coded under the roofing class instead of a clerical code, both of which pushed the calculation the wrong way. None of it reflects worse crews or worse roofs — it reflects claims handling and payroll classification that nobody was auditing.
The Class Code Mistake That Inflates Your Mod
Roofing crews get coded under a roofing class code carrying a high base rate. Office staff, sales, and estimators should sit under their own, far cheaper clerical or outside-sales class codes — but when payroll isn't split cleanly in the accounting system, it's common for an entire company's payroll to get reported under the roofing code at audit time. That doesn't just overpay manual premium; if a clerical employee unrelated to field risk ever files a claim, it lands in the roofing class code's loss history and drags the mod that governs your highest-rate payroll, for three years.
How to Actually Lower Your EMR
The mod responds to specific, controllable actions, not general safety talk. Report every claim immediately rather than letting it sit, since a delayed report often gets reserved higher by the adjuster than the eventual payout justifies. Push your carrier to close claims and release excess reserves once a worker returns to full duty — an open claim with an inflated reserve keeps counting against you even after the real cost has stopped growing. Keep office, sales, and estimating payroll under their own class codes, verified at every audit. And run a documented safety program with OSHA 300 log recordkeeping, because it gives your broker leverage to dispute questionable claim reserves and supports a debit or credit review with the rating bureau.
Where This Connects to Your Books
In QuickBooks Online, payroll should be split by class code at the point of entry — field crew wages tagged to the roofing class, office and sales wages tagged separately — so the year-end audit reconciles to actual job function instead of a lump payroll number the auditor has to sort out from scratch. That same split feeds the labor burden rate used in job costing, so premium increases or decreases from a mod change show up in bid pricing instead of getting absorbed silently into overhead. At JobCostBooks, clients on the Growth and Pro plans get payroll classified by class code monthly and labor burden rates updated when the mod changes at renewal, so pricing reflects the real cost of labor instead of last year's rate. For how labor burden feeds into what a job actually costs, see our guide: The True Cost of a Roofing Job: Why Your Numbers Are Wrong.