I hear this every September.

A contractor calls. Their renewal came in higher than last year. They’re frustrated because they haven’t had a single claim. And they want to know why they’re paying more for something they haven’t used.

Sometimes the answer is the market. Sometimes it’s their experience mod. But sometimes — more often than you’d think — the answer is something nobody ever explained to them. And something that can actually be fixed.

This article is about one of those things — your dual-wage classification.

It’s called the dual-wage classification system. If you have employees in California construction trades, there’s a very good chance it’s affecting what you pay for workers’ comp right now — and an equally good chance nobody has ever walked you through it. Let me fix that.

What Is the Dual-Wage Classification System?

The dual-wage classification splits most California construction trades into two separate workers’ comp class codes. One for crews earning above a certain hourly wage. One for crews earning below it.

The code above the line is the lower-rated one. Less risk in the eyes of the carrier — higher-paid workers tend to be more experienced, better trained, and less likely to get hurt — so you pay less for WC. The code below the line is the higher-rated one: more risk assumed, higher rate applied, more money out of your pocket.

The line between them — the hourly wage that decides which code your crew falls into — is called the dual-wage threshold. It’s set by the WCIRB, and it updates every September 1st.

Here’s the part that catches most contractors. They know the two codes exist. Many are vaguely familiar with the record-keeping requirements. But almost none are actively managing the threshold every year — comparing what their crew earns against the new number, running the math on whether a raise makes sense, making a deliberate decision about which side of the line they want to be on. Instead, most just pay whatever the renewal says and wonder why the number went up.

Six Years of Data — What the WCIRB Has Been Doing

The thresholds don’t stay still. They move every year, and they’ve been climbing steadily since at least 2021. Here’s the complete picture from the official WCIRB filing.

Source: WCIRB Dual-Wage Classification Thresholds by Year, effective September 1, 2026.
TradeCodes202120222023202420252026
Masonry5027/5028$28$32$32$35$35$37
Electrical Wiring5190/5140$32$34$34$36$36$40
Plumbing / HVAC5183/5187$28$31$31$32$32$35
Auto Sprinkler5185/5186$29$32$32$33$33$36
Concrete5201/5205$28$32$32$33$33$36
Carpentry / Framing5403/5432$35$39$39$41$41$46
Drywall5446/5447$36$38$38$41$41$45
Glaziers5467/5470$33$36$36$39$39$43
Painting5474/5482$28$31$31$32$32$36
Plastering5484/5485$32$36$36$38$38$42
Sheet Metal5538/5542$27$29$29$33$33$37
Roofing5552/5553$27$29$29$31$31$33
Steel Framing5632/5633$35$39$39$41$41$46
Excavation / Grading6218/6220$34$38$38$40$40$45
Sewer Construction6307/6308$34$38$38$40$40$45
Water / Gas Mains6315/6316$34$38$38$40$40$45
dual-wage classification thresholds for California construction trades, 2021–2026

A few things jump out. Framing and carpentry (5403/5432) went from $35/hr in 2021 to $46/hr in 2026 — an $11 jump, up 31%. If you haven’t given your framing crew a meaningful raise since 2021, there’s a real chance they’ve drifted from the high-wage code into the low-wage code without anyone telling you. Roofing (5552/5553) moved from $27 to $33 — small numbers, but the rate gap between those two roofing codes is enormous (more on that below). And every threshold held flat in 2025, then jumped hard in 2026, so contractors comfortable at 2024 wage levels just got caught by a threshold that moved $2–$5 an hour overnight.

What Changed September 1, 2026

This year’s update was one of the more significant in recent memory. All sixteen dual-wage classifications increased — some by as much as $5 an hour in a single year.

Trade2025 Threshold2026 ThresholdJump
Carpentry / Framing$41/hr$46/hr+$5
Steel Framing$41/hr$46/hr+$5
Excavation / Grading$40/hr$45/hr+$5
Sewer Construction$40/hr$45/hr+$5
Water / Gas Mains$40/hr$45/hr+$5
Drywall$41/hr$45/hr+$4
Electrical Wiring$36/hr$40/hr+$4
Glaziers$39/hr$43/hr+$4
Painting$32/hr$36/hr+$4
Plastering$38/hr$42/hr+$4
Sheet Metal$33/hr$37/hr+$4
Auto Sprinkler$33/hr$36/hr+$3
Concrete$33/hr$36/hr+$3
Plumbing / HVAC$32/hr$35/hr+$3
Masonry$35/hr$37/hr+$2
Roofing$31/hr$33/hr+$2

No trade held flat this year. The smallest moves were masonry and roofing at $2 an hour — still enough to push a crew sitting near the old line into the higher-rated code.

The Question to Ask Yourself Right Now

Look at your crew’s current hourly wages. Now find the threshold for your trade in the table above. Are you above the line? Below it? Right on the edge?

In my experience, a lot of contractors are paying right around the threshold — not on purpose, just because that’s where the market landed when they last set wages. And that’s exactly where this gets interesting. If your crew is within a few dollars of the line, you may be sitting on an opportunity most contractors — and most brokers — never think to look for.

When the Math Works in Your Favor — the Roofing Example

Here’s a situation where giving your crew a raise can actually cost you less than not giving one. Take a roofing contractor with five workers earning $32 an hour. The 2026 threshold for roofing is $33 — they’re one dollar below the line. The numbers below are illustrative, built on the WCIRB’s advisory pure-premium rates; your actual result depends on your experience mod, carrier, and audited records.

The Roofing Math — 5 Workers at $32/hr
Current wage$32.00/hr
2026 threshold (Code 5553)$33.00/hr
Raise needed to cross threshold$1.00/hr
Annual cost of $1 raise (5 workers, 2,080 hrs)$10,400
WC cost — Code 5552 ($20.827 / $100)$69,310/yr
WC cost after raise — Code 5553 ($12.112 / $100)$41,568/yr
Annual WC savings$27,742
NET GAIN — the raise pays for itself and then some$17,342/yr

A one-dollar raise on five workers costs $10,400 a year in wages. Add employer-side payroll taxes — FICA, FUTA, SUTA run roughly 8–10% — and the all-in cost is about $11,200 to $11,400. The workers’ comp savings from crossing into the lower-rated code is $27,742 a year. Even at the higher true cost, the raise pays for itself and puts over $16,000 back in your pocket. Your guys think you’re rewarding their loyalty. You are. The math also happens to work in your favor.

When the Math Doesn’t Fully Pay for Itself — the Framing Example

I’ll be straight with you: it doesn’t always flip completely. Sometimes the raise costs more than the WC savings, and you deserve to know that going in. Take a framing contractor with five workers at $43 an hour. The 2026 threshold for carpentry and framing is $46 — a $3 raise to cross the line.

The Framing Math — 5 Workers at $43/hr
Current wage$43.00/hr
2026 threshold (Code 5432)$46.00/hr
Raise needed to cross threshold$3.00/hr
Annual cost of $3 raise (5 workers, 2,080 hrs)$31,200
Annual WC savings from lower-rated code~$19,860
Net difference (raise costs more than it saves)~$11,340

The raise costs more than it saves, so why would you do it? That’s the right question, and the answer goes beyond the insurance math:

  • Retention. In a market where contractors fight over quality labor, keeping a good framing crew by paying $46 instead of $43 can be worth far more than the gap in avoided turnover cost.
  • Partial funding. You’re spending $31,200 but getting roughly $19,860 back in WC savings. The net cost of the raise is really about $11,340 — a very different conversation.
  • Audit-proofing. Cleaner documentation, no ambiguity for the auditor, and you eliminate the risk of being reclassified at audit.
  • Positioning. Some GC prequalification and bonding thresholds look at payroll practices. A crew consistently paid above industry thresholds signals a professional operation.

The point isn’t that you should always give the raise. It’s that you should make the decision with full information — not just the number on the renewal.

Why the System Isn’t Built to Tell You This

Here’s something that’s bothered me my whole career in this business. The WCIRB updates these thresholds every year. It’s public information, right there in the rate filing. But the system has no mechanism to notify an individual contractor that the threshold for their trade just moved — or that their crew may have drifted from one code to the other.

Your payroll company processes payroll; they don’t cross-reference WCIRB thresholds against your wage data. Your carrier sends a renewal and applies whatever code the audit established; they don’t call to ask whether you’ve looked at your crew’s wages against the new thresholds. And most brokers — I’ll be straight — renew the policy and collect the commission. The dual-wage conversation doesn’t happen because nobody’s job description requires it. So the contractor gets a higher renewal, asks why, and hears “market conditions” when the real answer might be a threshold change that went unnoticed. That’s the gap. It’s the gap we fill every September.

The Decision Framework — Questions to Ask Before Your Next Renewal

If you’re a California contractor in any of the sixteen dual-wage classification trades, sit with these before your next renewal hits:

  • What is my crew’s actual average hourly wage per trade? Not what you think you’re paying — what the payroll records show.
  • What’s the 2026 threshold for my trade? Find your classification in the tables above.
  • Am I above or below it right now? If above, confirm your records can prove it. If below, run the math on crossing.
  • If below, how far? A $1–$3 gap is where the math often works in your favor. A $5+ gap is where you weigh the full picture.
  • Does the raise pay for itself? Run it for your trade, crew size, and current wages.
  • Even if it doesn’t, does it make sense? Retention, morale, audit protection, bid positioning are real business considerations.
  • Can my records prove what I’m paying? You can pay above the threshold and still lose the lower code at audit if your records don’t clearly show each employee’s regular hourly wage, separate from overtime, every pay period.

The Record-Keeping Piece — Don’t Skip This

This is where I see contractors lose the lower-rated code even when they’ve done everything right on wages. Qualifying for the high-wage code takes two things, not one.

First, you have to actually pay at or above the threshold — the part everyone focuses on. Second, your payroll records have to prove it. The auditor needs to see exact hours worked, the exact regular hourly rate (separate from overtime, not blended into a weekly gross), and the specific work performed. Miss any one and the auditor defaults your crew to the higher-rated code — every time, regardless of what you actually paid.

The most common mistake: payroll that shows weekly gross with regular and overtime combined. The auditor can’t verify the regular hourly rate, so they can’t assign the high-wage code. You paid the right wages and still lost the lower rate because the records couldn’t prove it. If that’s already shown up on an audit bill, work through why your workers’ comp audit came in high employee by employee, rather than assuming the whole crew lost the lower code. If your payroll system doesn’t separate regular rate from overtime clearly, fix that before your next renewal — not after the auditor shows up.

What This Is Really About

Let me be clear about something: this isn’t an insurance article. It’s a profitability article. The dual-wage classification is a mechanism. What it really represents is a question every contractor should be asking — am I running my business in a way that minimizes cost, protects margin, and positions me to win better work?

A contractor who knows their threshold, pays strategically, keeps clean records, and builds that lower WC rate into their bid estimates has a real cost advantage over one who doesn’t — on every single bid. That’s not insurance. That’s business. The reason we have this conversation every September with every California contractor client is because we think our job is to help you be more profitable, not just to keep your policy renewed. Some brokers do the latter. We try to do the former.

What to Do Right Now

Three things, in order:

  1. Pull your crew’s current wages by trade. Get the actual hourly rate for each employee — this is the starting point for everything else.
  2. Compare those wages to the 2026 thresholds above. Find which side of the line each employee sits on, and how close they are.
  3. Run the math — or let us run it for you. If anyone’s within a few dollars of the threshold, the calculation is worth doing before your renewal.
Free Download

Workers' Comp Premium Audit Guide

Your annual workers' comp audit can hand you a surprise bill — or a refund you're owed. Here's how to prepare and stop overpaying.


Scott Henricks is the founder of Unique Risk Management and Insurance Services, a commercial insurance brokerage specializing in California contractors and trades. He has been in the commercial insurance industry since 2003. Unique Risk is licensed in California, Florida, Minnesota, Utah, and New Jersey.  949.305.5577 (Mission Viejo, CA) · 772.254.9221 (Port St. Lucie, FL) · scott@uniquerisk.com · CA Lic #0F56527

WCIRB threshold data sourced from the official WCIRB Dual-Wage Classification Thresholds by Year, effective September 1, 2026. Pure-premium rates sourced from the WCIRB September 1, 2026 rate filing (Code 5552: $20.827 per $100; Code 5553: $12.112 per $100). Actual WC rates vary based on experience modification factor, carrier, and policy terms. This article is for educational purposes and does not constitute insurance advice. Consult a licensed insurance professional for guidance specific to your situation.