.wc-calculator-wrapper {
max-width: 650px;
margin: 20px auto;
padding: 25px;
background: #f9fbfd;
border: 1px solid #e1e4e8;
border-radius: 8px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.wc-calculator-wrapper h3 {
text-align: center;
color: #2c3e50;
margin-bottom: 25px;
font-size: 24px;
}
.wc-form-group {
margin-bottom: 20px;
}
.wc-form-group label {
display: block;
font-weight: 600;
margin-bottom: 8px;
color: #34495e;
}
.wc-form-group input {
width: 100%;
padding: 12px;
border: 1px solid #bdc3c7;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
transition: border-color 0.3s;
}
.wc-form-group input:focus {
border-color: #3498db;
outline: none;
}
.wc-help-text {
font-size: 12px;
color: #7f8c8d;
margin-top: 4px;
}
.wc-btn {
width: 100%;
padding: 14px;
background-color: #2980b9;
color: white;
border: none;
border-radius: 4px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: background-color 0.2s;
}
.wc-btn:hover {
background-color: #1f6391;
}
#wc-results {
margin-top: 25px;
padding: 20px;
background-color: #fff;
border: 1px solid #dcdcdc;
border-radius: 4px;
display: none;
}
.wc-result-row {
display: flex;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid #eee;
}
.wc-result-row:last-child {
border-bottom: none;
font-weight: bold;
font-size: 1.2em;
color: #27ae60;
}
.wc-error {
color: #c0392b;
text-align: center;
margin-top: 10px;
display: none;
}
.wc-content-section {
max-width: 800px;
margin: 40px auto;
font-family: inherit;
line-height: 1.6;
color: #333;
}
.wc-content-section h2 {
color: #2c3e50;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
margin-top: 40px;
}
.wc-content-section ul {
background: #f8f9fa;
padding: 20px 40px;
border-radius: 5px;
}
.wc-content-section table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
.wc-content-section th, .wc-content-section td {
border: 1px solid #ddd;
padding: 12px;
text-align: left;
}
.wc-content-section th {
background-color: #f2f2f2;
}
function calculateWorkComp() {
// 1. Get input values using var
var payrollInput = document.getElementById('wcPayroll');
var rateInput = document.getElementById('wcClassRate');
var emrInput = document.getElementById('wcEMR');
var payroll = parseFloat(payrollInput.value);
var rate = parseFloat(rateInput.value);
var emr = parseFloat(emrInput.value);
// 2. Clear previous error state
var errorDiv = document.getElementById('wc-error-msg');
var resultsDiv = document.getElementById('wc-results');
errorDiv.style.display = 'none';
resultsDiv.style.display = 'none';
// 3. Validate Inputs
if (isNaN(payroll) || payroll <= 0 || isNaN(rate) || rate <= 0 || isNaN(emr) || emr 1.0) {
emrText += "Surcharge)";
} else if (emr < 1.0) {
emrText += "Discount)";
} else {
emrText += "Neutral)";
}
document.getElementById('res-emr-effect').innerText = emrText;
document.getElementById('res-total').innerText = "$" + estimatedTotal.toLocaleString(undefined, {
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
// 6. Show results
resultsDiv.style.display = 'block';
}
How to Calculate Workers' Compensation Rate
Understanding how to calculate workers' compensation rates is essential for business owners budgeting for insurance costs. Unlike flat-fee insurance policies, workers' comp premiums are dynamic, based heavily on the specific risks associated with your employees' job duties and your company's claims history.
The Core Formula
The standard formula used by the National Council on Compensation Insurance (NCCI) and most state bureaus is:
(Annual Payroll / 100) × Class Code Rate × EMR = Estimated Premium
Step-by-Step Breakdown
1. Determine Classification Codes
Every employee is assigned a "Class Code" based on the nature of their work. These are usually 4-digit codes.
- Code 8810 (Clerical): Low risk, resulting in a very low rate (e.g., $0.25 per $100).
- Code 5606 (Construction Exec): Moderate risk.
- Code 5645 (Carpentry): High risk, resulting in a higher rate (e.g., $8.50 per $100).
Note: If you have employees with different duties, you must calculate each group separately and sum the totals.
2. Calculate Payroll Per $100
Workers' compensation rates are applied per $100 of gross payroll. This includes salaries, wages, bonuses, and commissions, but usually excludes overtime premiums (the extra half-time pay).
Example: If you pay a carpenter $50,000 annually, your payroll unit is $50,000 / 100 = 500 units.
3. Apply the Class Rate
Multiply your payroll units by the specific rate for that class code. If the rate for carpentry is $8.00:
500 units × $8.00 = $4,000 Base Premium.
4. Apply the Experience Modification Rate (EMR)
The EMR is a multiplier that reflects your company's safety history compared to industry averages.
| EMR Value |
Meaning |
Impact on Cost |
| 1.0 |
Average Safety Record |
No change to base premium |
| < 1.0 (e.g., 0.85) |
Better than Average |
Discount (Credit mod) |
| > 1.0 (e.g., 1.25) |
Worse than Average |
Surcharge (Debit mod) |
Continuing the example: If your EMR is 0.90 (good safety record), your calculation becomes: $4,000 × 0.90 = $3,600.
Why Rates Vary by State
Workers' compensation is regulated at the state level. The same job (e.g., plumbing) might have a rate of $3.50 in one state and $6.00 in another due to differences in state laws, medical costs, and benefit levels. Always ensure you are using the specific class code rates approved for the state where the work is performed.
Additional Costs to Consider
While the calculator above provides the estimated manual premium, the final bill may include other line items such as:
- Expense Constants: Administrative fees charged by the carrier.
- Terrorism Risk Insurance Act (TRIA): A small federal surcharge.
- State Assessments: Taxes or fees required by the state workers' comp board.