Skip to main content

Roof Damage Repair Cost Estimator

ANALife Services AuthorityNational Calculator Authority›Roof Damage Repair Cost Estimator

.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; } }

Roof Damage Repair Cost Estimator

Estimate the total cost to repair roof damage based on the affected area, roofing material type, damage severity, and local labor rates.

Damaged Area (square feet)

Roofing Material

Asphalt Shingles Metal Roofing Clay / Concrete Tile Wood Shake / Shingles Flat / TPO / EPDM Slate

Damage Severity

Minor (surface damage, a few missing shingles) Moderate (partial section damage, some decking affected) Severe (large section loss, structural decking damage)

Local Labor Rate ($/hour)

Number of Stories

1 Story 2 Stories 3+ Stories

Roof Pitch

Low Pitch (0/12 – 4/12) Medium Pitch (5/12 – 9/12) Steep Pitch (10/12+)

Replace Roof Decking / Sheathing?

No Yes

Calculate Repair Cost

function rooCalc() { var resultDiv = document.getElementById('roo-result');

// --- Inputs --- var area = parseFloat(document.getElementById('roo-damage-area').value); var material = document.getElementById('roo-material').value; var severity = document.getElementById('roo-severity').value; var laborRate = parseFloat(document.getElementById('roo-labor-rate').value); var stories = parseInt(document.getElementById('roo-stories').value); var pitch = document.getElementById('roo-pitch').value; var decking = document.getElementById('roo-decking').value;

// --- Validation --- if (isNaN(area) || area 10000) { resultDiv.innerHTML = 'Please enter a valid damaged area between 1 and 10,000 sq ft.'; return; } if (isNaN(laborRate) || laborRate 300) { resultDiv.innerHTML = 'Please enter a valid labor rate between $20 and $300 per hour.'; return; }

// --- Material Base Cost ($/sq ft of material only) --- // Sources: HomeAdvisor, Angi, RSMeans 2023 averages var materialCostPerSqFt = { asphalt: 1.50, // $1.00–$2.00 metal: 5.00, // $3.50–$6.50 tile: 4.50, // $3.00–$6.00 wood: 3.50, // $2.50–$4.50 flat: 3.00, // $2.00–$4.00 slate: 15.00 // $10.00–$20.00 };

// --- Labor Hours per 100 sq ft by material --- var laborHoursPer100SqFt = { asphalt: 3.0, metal: 4.5, tile: 5.5, wood: 4.0, flat: 3.5, slate: 7.0 };

// --- Severity Multiplier (affects both material waste & labor) --- var severityMultiplier = { minor: 1.00, moderate: 1.35, severe: 1.75 };

// --- Story Height Surcharge (% added to labor cost) --- var storyLaborSurcharge = { 1: 0.00, 2: 0.15, 3: 0.30 };

// --- Pitch Difficulty Multiplier (labor only) --- var pitchLaborMultiplier = { low: 1.00, medium: 1.15, steep: 1.35 };

// --- Decking Replacement Cost ($/sq ft, material + labor) --- // OSB/plywood sheathing: ~$1.50–$2.50/sq ft installed var deckingCostPerSqFt = 2.00;

// ============================================================ // FORMULA // ============================================================ // 1. Material Cost // = area × materialCostPerSqFt[material] × severityMultiplier[severity] // // 2. Labor Hours // = (area / 100) × laborHoursPer100SqFt[material] × severityMultiplier[severity] // × pitchLaborMultiplier[pitch] // // 3. Labor Cost // = laborHours × laborRate × (1 + storyLaborSurcharge[stories]) // // 4. Decking Cost (if selected) // = area × deckingCostPerSqFt // // 5. Subtotal = Material Cost + Labor Cost + Decking Cost // // 6. Waste & Miscellaneous Factor = 10% of Subtotal // (underlayment, fasteners, flashing, disposal) // // 7. Total Repair Cost = Subtotal × 1.10 // ============================================================

var sevMult = severityMultiplier[severity]; var pitchMult = pitchLaborMultiplier[pitch]; var storySurch = storyLaborSurcharge[stories];

// 1. Material Cost var materialCost = area * materialCostPerSqFt[material] * sevMult;

// 2. Labor Hours var laborHours = (area / 100) * laborHoursPer100SqFt[material] * sevMult * pitchMult;

// 3. Labor Cost var laborCost = laborHours * laborRate * (1 + storySurch);

// 4. Decking Cost var deckingCost = (decking === 'yes') ? area * deckingCostPerSqFt : 0;

// 5. Subtotal var subtotal = materialCost + laborCost + deckingCost;

// 6. Waste & Misc (10%) var wasteMisc = subtotal * 0.10;

// 7. Total var total = subtotal + wasteMisc;

// Low / High range ±20% var totalLow = total * 0.80; var totalHigh = total * 1.20;

// Cost per sq ft var costPerSqFt = total / area;

// --- Format helpers --- function fmt(n) { return '$' + n.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ','); } function fmtH(n) { return n.toFixed(1); }

var materialLabels = { asphalt: 'Asphalt Shingles', metal: 'Metal Roofing', tile: 'Clay / Concrete Tile', wood: 'Wood Shake / Shingles', flat: 'Flat / TPO / EPDM', slate: 'Slate' }; var severityLabels = { minor: 'Minor', moderate: 'Moderate', severe: 'Severe' }; var pitchLabels = { low: 'Low (0/12–4/12)', medium: 'Medium (5/12–9/12)', steep: 'Steep (10/12+)' };

resultDiv.innerHTML = '### Estimated Roof Repair Cost ' + '' + 'Damaged Area' + area.toLocaleString() + ' sq ft' + 'Material' + materialLabels[material] + '' + 'Damage Severity' + severityLabels[severity] + ' (×' + sevMult.toFixed(2) + ')' + 'Roof Pitch' + pitchLabels[pitch] + ' (labor ×' + pitchMult.toFixed(2) + ')' + 'Stories Surcharge' + (storySurch * 100).toFixed(0) + '%' + 'Estimated Labor Hours' + fmtH(laborHours) + ' hrs' + 'Material Cost' + fmt(materialCost) + '' + 'Labor Cost' + fmt(laborCost) + '' + (decking === 'yes' ? 'Decking Replacement' + fmt(deckingCost) + '' : '') + 'Waste & Misc (10%)' + fmt(wasteMisc) + '' + 'Estimated Total' + fmt(total) + '' + 'Cost per Sq Ft' + fmt(costPerSqFt) + ' / sq ft' + 'Typical Range' + fmt(totalLow) + ' – ' + fmt(totalHigh) + '' + '' + '* Estimates are for budgeting purposes. Obtain multiple contractor quotes for accurate pricing.

'; }

#### Formula

Material Cost = Damaged Area (sq ft) × Material Unit Cost ($/sq ft) × Severity Multiplier

Labor Hours = (Damaged Area ÷ 100) × Labor Hours per 100 sq ft × Severity Multiplier × Pitch Multiplier

Labor Cost = Labor Hours × Hourly Rate × (1 + Story Surcharge)

Decking Cost = Damaged Area × $2.00/sq ft (if selected)

Subtotal = Material Cost + Labor Cost + Decking Cost

Total Repair Cost = Subtotal × 1.10 (+10% for waste, underlayment, fasteners, flashing & disposal)

Typical Range = Total ± 20%

#### Assumptions & References

More Calculators

References