Contractor Insurance Coverage Requirements Calculator

ANALife Services AuthorityNational Calculator Authority›Contractor Insurance Coverage Requirements 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; } }

Contractor Insurance Coverage Requirements Calculator

Estimate the recommended minimum insurance coverage amounts for your contracting business based on project value, trade type, workforce size, and common state requirements.

Trade / Contractor Type

General Contractor Electrical Plumbing Roofing HVAC Landscaping / Lawn Care Painting Concrete / Masonry Carpentry / Framing Demolition

Largest Single Project Value ($)

Estimated Annual Revenue ($)

Number of Employees (including owner)

Number of Subcontractors Used Annually

Primary Work Type

Residential Commercial Industrial Government / Public Works

Number of Business Vehicles

Total Equipment / Tools Value ($)

Calculate Coverage Requirements

function conCalc() { // --- Gather inputs --- var trade = document.getElementById('con-trade').value; var projectValue = parseFloat(document.getElementById('con-project-value').value); var annualRev = parseFloat(document.getElementById('con-annual-revenue').value); var employees = parseInt(document.getElementById('con-employees').value); var subs = parseInt(document.getElementById('con-subcontractors').value); var workType = document.getElementById('con-work-type').value; var vehicles = parseInt(document.getElementById('con-vehicles').value); var equipValue = parseFloat(document.getElementById('con-equipment-value').value);

// --- Validation --- var errors = []; if (isNaN(projectValue) || projectValue 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }

// ============================================================ // TRADE RISK MULTIPLIERS // Higher-risk trades require higher GL limits // Sources: ISO GL rating, NCCI, industry underwriting guides // ============================================================ var tradeRisk = { general: 1.50, electrical: 1.40, plumbing: 1.30, roofing: 1.80, // highest-risk trade hvac: 1.35, landscaping: 1.10, painting: 1.15, concrete: 1.25, carpentry: 1.20, demolition: 1.70 };

// Work-type multipliers var workMult = { residential: 1.00, commercial: 1.25, industrial: 1.50, government: 1.75 // bonding & higher limits often required };

var riskMult = tradeRisk[trade] * workMult[workType];

// ============================================================ // 1. GENERAL LIABILITY (GL) // Base formula: // Per-Occurrence = max(1,000,000, projectValue * riskMult * 0.20) // Aggregate = max(2,000,000, annualRev * riskMult * 0.30) // Both rounded up to nearest $500,000 // Standard minimum: $1M/$2M (ISO CGL form) // ============================================================ var glPerOcc = Math.max(1000000, projectValue * riskMult * 0.20); var glAgg = Math.max(2000000, annualRev * riskMult * 0.30); glPerOcc = Math.ceil(glPerOcc / 500000) * 500000; glAgg = Math.ceil(glAgg / 500000) * 500000; // Aggregate must be at least 2x per-occurrence if (glAgg 10 employees // ============================================================ var elBodily = 100000; // per accident var elDisease = 500000; // policy limit var elDiseaseEe = 100000; // per employee if (employees > 10 || trade === 'roofing' || trade === 'demolition') { elBodily = 500000; elDisease = 1000000; elDiseaseEe = 500000; }

// ============================================================
// 3. COMMERCIAL AUTO
// Combined Single Limit (CSL) per accident
// Base: $1,000,000 CSL (standard for commercial)
// Elevated if >3 vehicles or industrial/government work
// ============================================================
var autoCsl = 1000000;
if (vehicles > 3 || workType === 'industrial' || workType === 'government') {
autoCsl = 2000000;
}
var autoNote = vehicles === 0
? "No business vehicles reported — consider hired/non-owned auto coverage."
"CSL per accident for " + vehicles + " vehicle(s).";

// ============================================================ // 4. UMBRELLA / EXCESS LIABILITY // Recommended when GL aggregate $2M // Formula: // umbrellaLimit = max(1,000,000, // projectValue - glPerOcc, // annualRev * 0.50 - glAgg) // Rounded to nearest $1,000,000; min $1M if needed // ============================================================ var umbrellaNeeded = (projectValue > glPerOcc) || (annualRev > 2000000) || workType === 'government' || workType === 'industrial'; var umbrellaLimit = 0; if (umbrellaNeeded) { umbrellaLimit = Math.max( 1000000, projectValue - glPerOcc, annualRev * 0.50 - glAgg ); umbrellaLimit = Math.ceil(umbrellaLimit / 1000000) * 1000000; }

// ============================================================ // 5. TOOLS & EQUIPMENT (Inland Marine) // Recommended limit = equipValue (replacement cost) // Minimum $10,000 if equipment reported // ============================================================ var equipCoverage = equipValue > 0 ? Math.max(10000, equipValue) : 0;

// ============================================================ // 6. CONTRACTOR'S ERRORS & OMISSIONS (Professional Liability) // Recommended for design-build, HVAC, electrical, general // Per-claim limit = max(500,000, annualRev * 0.25) // ============================================================ var eoTrades = ['general','electrical','hvac']; var eoNeeded = eoTrades.indexOf(trade) !== -1 || workType === 'commercial' || workType === 'government'; var eoLimit = 0; if (eoNeeded) { eoLimit = Math.max(500000, annualRev * 0.25); eoLimit = Math.ceil(eoLimit / 250000) * 250000; }

// ============================================================ // 7. SURETY / PERFORMANCE BOND // Typically required for government/public works // Bond amount = projectValue (100% of contract value) // ============================================================ var bondAmount = (workType === 'government') ? projectValue : 0;

// ============================================================
// 8. SUBCONTRACTOR COVERAGE REQUIREMENT
// If using subs, require them to carry GL equal to your GL limits
// and add you as Additional Insured
// ============================================================
var subReq = subs > 0
? "Require each subcontractor to carry GL of at least "
+ fmt(glPerOcc) + " per occurrence / " + fmt(glAgg)
+ " aggregate and name you as Additional Insured."
"No subcontractors reported.";

// ============================================================ // ESTIMATED ANNUAL PREMIUM RANGES (rough benchmarks) // GL: $500–$3,000 per $1M coverage + revenue/payroll factors // WC: $1.50–$8.00 per $100 payroll (trade-dependent) // Auto: $1,200–$2,500 per vehicle // Umbrella: $500–$1,500 per $1M // ============================================================ var avgPayroll = employees * 55000; // assumed avg annual payroll var wcRateMap = { general:1.80, electrical:2.20, plumbing:2.00, roofing:7.50, hvac:2.10, landscaping:3.50, painting:2.80, concrete:3.00, carpentry:2.50, demolition:5.00 }; var wcRate = wcRateMap[trade] || 2.50; var wcPremiumEst = (avgPayroll / 100) * wcRate;

var glPremiumEst = (glPerOcc / 1000000) * 1200 * riskMult; var autoPremEst = vehicles * 1800; var umbPremEst = umbrellaNeeded ? (umbrellaLimit / 1000000) * 800 : 0; var eoPremEst = eoNeeded ? (eoLimit / 1000000) * 1500 : 0; var totalPremLow = (glPremiumEst * 0.80) + (wcPremiumEst * 0.85) + (autoPremEst * 0.85) + (umbPremEst * 0.80) + (eoPremEst * 0.80); var totalPremHigh = (glPremiumEst * 1.30) + (wcPremiumEst * 1.20) + (autoPremEst * 1.20) + (umbPremEst * 1.30) + (eoPremEst * 1.30);

function fmt(n) { return '$' + Math.round(n).toLocaleString('en-US'); } function fmtRange(lo, hi) { return fmt(lo) + ' – ' + fmt(hi); }

// ============================================================ // BUILD OUTPUT // ============================================================ var html = '### Recommended Coverage Requirements ';

html += '' + '' + 'Coverage Type' + 'Recommended Limit' + 'Notes' + '';

var rows = [
{
type: 'General Liability (GL)',
limit: fmt(glPerOcc) + ' / ' + fmt(glAgg),
note: 'Per occurrence / aggregate. ISO CGL form recommended.'
},
{
type: "Workers' Compensation",
limit: 'Statutory (unlimited medical)',
note: 'Required in most states for ' + employees + ' employee(s).'
},
{
type: "Employers Liability",
limit: fmt(elBodily) + ' / ' + fmt(elDisease) + ' / ' + fmt(elDiseaseEe),
note: 'Bodily injury per accident / disease policy / disease per employee.'
},
{
type: 'Commercial Auto',
limit: vehicles > 0 ? fmt(autoCsl) + ' CSL' : 'N/A',
note: autoNote
},
{
type: 'Umbrella / Excess Liability',
limit: umbrellaNeeded ? fmt(umbrellaLimit) : 'Not Required*',
note: umbrellaNeeded
? 'Sits above GL, auto, and employers liability.'
'*Recommended if project values or revenue grow.'
},
{
type: 'Tools & Equipment (Inland Marine)',
limit: equipCoverage > 0 ? fmt(equipCoverage) : 'N/A',
note: equipCoverage > 0
? 'Replacement cost basis for tools and equipment.'
'No equipment value entered.'
},
{
type: "Contractor's E&O / Professional Liability",
limit: eoNeeded ? fmt(eoLimit) + ' per claim' : 'Not Required*',
note: eoNeeded
? 'Covers design errors, faulty workmanship claims.'
'*Consider if offering design-build services.'
},
{
type: 'Surety / Performance Bond',
limit: bondAmount > 0 ? fmt(bondAmount) : 'Not Required',
note: bondAmount > 0
? '100% of contract value — required for public works.'
'Typically required for government contracts only.' } ];

rows.forEach(function(r, i) { var bg = i % 2 === 0 ? '#f8fafc' : '#fff'; html += '' + '' + r.type + '' + '' + r.limit + '' + '' + r.note + '' + ''; });

html += '';

// Subcontractor requirement html += '' + 'Subcontractor Insurance Requirement: ' + subReq + '';

// Premium estimate html += '' + 'Estimated Annual Premium Range (all coverages): ' + fmtRange(totalPremLow, totalPremHigh) + 'Rough benchmark only. Actual premiums depend on claims history, credit, location, and carrier underwriting.' + '';

// Risk tier var riskLabel = riskMult ' + 'Risk Tier: ' + riskLabel + ' (Trade multiplier: ' + tradeRisk[trade].toFixed(2) + ' × Work-type multiplier: ' + workMult[workType].toFixed(2) + ' = ' + riskMult.toFixed(2) + ')' + '';

resultDiv.style.display = 'block'; resultDiv.innerHTML = html; }

#### Formulas Used

General Liability — Per Occurrence: max($1,000,000 , Project Value × Trade Risk Multiplier × Work-Type Multiplier × 0.20) → rounded up to nearest $500K

General Liability — Aggregate: max($2,000,000 , Annual Revenue × Trade Risk Multiplier × Work-Type Multiplier × 0.30) → rounded up to nearest $500K; must be ≥ 2× per-occurrence

Umbrella / Excess: max($1,000,000 , Project Value − GL Per-Occurrence , Annual Revenue × 0.50 − GL Aggregate) → rounded to nearest $1M

Workers' Comp Premium Estimate: (Employees × $55,000 avg payroll) ÷ 100 × Trade NCCI Rate per $100 payroll

E&O / Professional Liability: max($500,000 , Annual Revenue × 0.25) → rounded to nearest $250K

Trade Risk Multipliers: Roofing 1.80 · Demolition 1.70 · General 1.50 · Electrical 1.40 · HVAC 1.35 · Plumbing 1.30 · Concrete 1.25 · Carpentry 1.20 · Painting 1.15 · Landscaping 1.10

Work-Type Multipliers: Government 1.75 · Industrial 1.50 · Commercial 1.25 · Residential 1.00

#### Assumptions & References

More Calculators

Read Next

Building Vs Contents Coverage Allocator ANA › Life Services Authority › National Calculator Authority › Building vs Contents Coverage Allocator .calc-container {...

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References