Workers Compensation Experience Modifier Calculator
ANA›Life Services Authority›National Calculator Authority›Workers Compensation Experience Modifier Calculator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Workers Compensation Experience Modifier Calculator
Calculate your Workers Compensation Experience Modifier (EMR / X-Mod) — the factor applied to your base premium based on your actual loss history compared to expected losses for your industry.
Actual Primary Losses ($)
Actual Excess Losses ($)
Expected Primary Losses ($)
Expected Excess Losses ($)
Ballast Value / Weighting Value (W)
Excess Loss Weighting Factor (w)
Calculate Experience Modifier
function worCalc() { var resultDiv = document.getElementById('wor-result'); resultDiv.style.display = 'none'; resultDiv.innerHTML = '';
// --- Parse inputs --- var AP = parseFloat(document.getElementById('wor-actual-primary').value); var AE = parseFloat(document.getElementById('wor-actual-excess').value); var EP = parseFloat(document.getElementById('wor-expected-primary').value); var EE = parseFloat(document.getElementById('wor-expected-excess').value); var B = parseFloat(document.getElementById('wor-ballast').value); var w = parseFloat(document.getElementById('wor-weight').value);
// --- Validation --- var errors = []; if (isNaN(AP) || AP 1) errors.push("Excess Loss Weighting Factor must be between 0 and 1.");
if (errors.length > 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }
// --- NCCI Experience Modifier Formula --- // EMR = (Actual Primary Losses + w * Actual Excess Losses + Ballast) // / (Expected Primary Losses + w * Expected Excess Losses + Ballast) // // Numerator = AP + (w * AE) + B // Denominator = EP + (w * EE) + B
var numerator = AP + (w * AE) + B; var denominator = EP + (w * EE) + B;
if (denominator === 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Denominator is zero — check your inputs.'; return; }
var emr = numerator / denominator; emr = Math.round(emr * 1000) / 1000; // round to 3 decimal places (industry standard)
- // --- Interpretation ---
- var interpretation = '';
- var interpClass = '';
- if (emr = 1
- ? 'Premium surcharge: +' + premiumImpact + '%'
- 'Premium discount: ' + premiumImpact + '%';
// --- Build output --- resultDiv.style.display = 'block'; resultDiv.innerHTML = '### Experience Modifier (X-Mod / EMR) ' + '' + emr.toFixed(3) + '' + '' + interpretation + '
' + '' + premiumLabel + '
' + '' + '#### Calculation Breakdown ' + '' + 'ComponentValue' + 'Actual Primary Losses (AP)$' + AP.toLocaleString('en-US', {minimumFractionDigits:2}) + '' + 'Weighted Actual Excess (w × AE)$' + (w * AE).toLocaleString('en-US', {minimumFractionDigits:2}) + '' + 'Ballast (B)$' + B.toLocaleString('en-US', {minimumFractionDigits:2}) + '' + 'Numerator$' + numerator.toLocaleString('en-US', {minimumFractionDigits:2}) + '' + 'Expected Primary Losses (EP)$' + EP.toLocaleString('en-US', {minimumFractionDigits:2}) + '' + 'Weighted Expected Excess (w × EE)$' + (w * EE).toLocaleString('en-US', {minimumFractionDigits:2}) + '' + 'Ballast (B)$' + B.toLocaleString('en-US', {minimumFractionDigits:2}) + '' + 'Denominator$' + denominator.toLocaleString('en-US', {minimumFractionDigits:2}) + '' + 'Experience Modifier' + emr.toFixed(3) + '' + ''; }
#### Formula
The NCCI (National Council on Compensation Insurance) Experience Modifier formula:
EMR = (AP + w·AE + B) / (EP + w·EE + B)
Where: AP = Actual Primary Losses (losses capped at the split point per claim, typically $5,000) AE = Actual Excess Losses (losses above the split point per claim) EP = Expected Primary Losses (from payroll × class code primary loss rate) EE = Expected Excess Losses (from payroll × class code excess loss rate) w = Excess Loss Weighting Factor (0–1, assigned by rating bureau based on size) B = Ballast Value (stabilizing constant, assigned by rating bureau) EMR = Experience Modifier Rate (rounded to 3 decimal places)
The modifier is applied to the manual premium: Modified Premium = Manual Premium × EMR
#### Assumptions & References
- Formula follows the NCCI Experience Rating Plan used in most U.S. states. Some states (CA, NY, TX, PA, NJ, IN, MI, MN, WI, DE, NJ) use independent rating bureaus with similar but slightly different formulas.
- The split point (primary vs. excess loss threshold) is typically $5,000 per claim under NCCI's updated plan (phased in 2013–2015). Some states use different split points.
- The Ballast Value (B) and Weighting Factor (w) are published annually by the rating bureau and vary by expected loss size. Larger employers have higher w values (more credibility given to actual experience).
- Experience rating typically uses 3 years of loss history, excluding the most recent policy year.
- A modifier of 1.00 is average; below 1.00 earns a discount; above 1.00 incurs a surcharge.
- Most states cap the maximum modifier between 1.25 and 2.00 for small employers.
- Reference: NCCI Experience Rating Plan Manual; state-specific bureaus (WCIRB, NYBCOMP, etc.).
More Calculators
- Employee Overtime Pay Calculator
- Structural Moisture Content Calculator
- Whole House Filtration System Size Calculator
- Water Hardness & Softener Dosage Calculator
- Workers Compensation Cost Calculator
- National Tree Carbon Sequestration Calculator
- Water Damage Restoration Cost Estimator
- Home Insulation R-Value Savings Calculator
- Furnace Sizing Calculator for Utah Altitude Adjustment
- Cold Climate Heat Pump Sizing Calculator
- Vermont Climate Zone Heating Degree Days Calculator
- Refrigerant Charge Calculator for High-Altitude Systems
Read Next
Study Time Planner ANA › Life Services Authority › National Calculator Authority › Study Time Planner .calc-container { max-width: 640px; margin:...