HVAC System Replacement Cost Estimator

ANALife Services AuthorityNational Calculator Authority›HVAC System Replacement 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; } }

HVAC System Replacement Cost Estimator

Estimate the total cost to replace your HVAC system including equipment, labor, and materials based on your home size, system type, and efficiency requirements.

System Type

Central AC + Gas Furnace (Split System) Heat Pump (Air-Source) Mini-Split (Ductless) Packaged Unit (Rooftop/Ground) Geothermal Heat Pump

Home Size (sq ft)

Efficiency Rating

Standard (14–15 SEER / 80 AFUE) High Efficiency (16–18 SEER / 90 AFUE) Premium Efficiency (19–26 SEER / 96–98 AFUE)

Ductwork Condition

Good – No replacement needed Fair – Partial repair/sealing needed Poor – Full ductwork replacement needed No existing ductwork (new install)

Regional Labor Cost Index

Low Cost Region (rural Midwest/South) Average Cost Region (national average) High Cost Region (Northeast/Mountain West) Very High Cost Region (NYC, SF, Boston, Seattle)

Number of Zones (Mini-Split only)

Only applies to mini-split systems

Include Permit & Inspection Fees?

Yes No

Calculate Replacement Cost

function hvaCalc() { // --- Read inputs --- const systemType = document.getElementById('hva-system-type').value; const homeSize = parseFloat(document.getElementById('hva-home-size').value); const efficiency = document.getElementById('hva-efficiency').value; const ductCond = document.getElementById('hva-duct-condition').value; const regionIdx = parseFloat(document.getElementById('hva-region').value); const zones = parseInt(document.getElementById('hva-zones').value) || 1; const permitFlag = parseInt(document.getElementById('hva-permit').value);

// --- Validation --- const errors = []; if (isNaN(homeSize) || homeSize 10000) errors.push("Home size must be between 200 and 10,000 sq ft."); if (isNaN(regionIdx)) errors.push("Please select a valid region."); if (systemType === 'mini_split' && (zones 8)) errors.push("Number of zones must be between 1 and 8 for mini-split systems.");

if (errors.length > 0) { document.getElementById('hva-result').style.display = 'block'; document.getElementById('hva-result').innerHTML = '⚠ ' + errors.join('⚠ ') + ''; return; }

// ───────────────────────────────────────────────────────────────── // STEP 1: Determine required tonnage // Rule of thumb: 1 ton per 400–600 sq ft depending on climate. // This calculator uses 500 sq ft/ton as the national average baseline. // Tonnage is rounded up to nearest 0.5-ton standard size. // ───────────────────────────────────────────────────────────────── const SQ_FT_PER_TON = 500; let rawTons = homeSize / SQ_FT_PER_TON; // Round up to nearest 0.5 ton, min 1.5 tons, max 5 tons let tons = Math.ceil(rawTons * 2) / 2; tons = Math.max(1.5, Math.min(5.0, tons));

// ───────────────────────────────────────────────────────────────── // STEP 2: Base equipment cost by system type and tonnage // Sources: HomeAdvisor, Angi, ACCA Manual S cost data (2023–2024) // ───────────────────────────────────────────────────────────────── // Equipment cost per ton (USD) by system type const equipCostPerTon = { central_ac_furnace: { standard: 1100, high: 1500, premium: 2100 }, heat_pump: { standard: 1200, high: 1700, premium: 2400 }, packaged_unit: { standard: 1000, high: 1400, premium: 1900 }, geothermal: { standard: 3500, high: 4200, premium: 5000 }, mini_split: { standard: 900, high: 1300, premium: 1800 } // per zone (not ton) };

let equipmentCost = 0; if (systemType === 'mini_split') { // Mini-split: cost per zone, not per ton // Base zone cost + additional zones at reduced rate const perZoneCost = equipCostPerTon.mini_split[efficiency]; equipmentCost = perZoneCost * 1000 + (zones - 1) * perZoneCost * 700; // Reframe: first zone full price, additional zones 70% cost equipmentCost = perZoneCost * 1000 + Math.max(0, zones - 1) * (perZoneCost * 700); } else { equipmentCost = equipCostPerTon[systemType][efficiency] * tons; }

// ───────────────────────────────────────────────────────────────── // STEP 3: Labor cost // Base labor: $75–$150/hr, typical install = 8–16 hours // Simplified: flat labor rate per ton with regional multiplier // ───────────────────────────────────────────────────────────────── const laborBasePerTon = { central_ac_furnace: 600, heat_pump: 650, packaged_unit: 500, geothermal: 1200, mini_split: 400 // per zone };

let laborCost = 0; if (systemType === 'mini_split') { laborCost = laborBasePerTon.mini_split * zones * regionIdx; } else { laborCost = laborBasePerTon[systemType] * tons * regionIdx; }

// ───────────────────────────────────────────────────────────────── // STEP 4: Ductwork cost // Full replacement: ~$25–$35/linear ft; avg home ~150 linear ft // Partial repair: ~30% of full replacement cost // New install (no existing): ~$3,500–$7,000 flat // ───────────────────────────────────────────────────────────────── const DUCT_COST_PER_SQFT = 0.55; // ~$0.55/sq ft for full replacement let ductCost = 0; if (systemType !== 'mini_split') { // mini-splits are ductless if (ductCond === 'good') { ductCost = 0; } else if (ductCond === 'repair') { ductCost = homeSize * DUCT_COST_PER_SQFT * 0.30 * regionIdx; } else if (ductCond === 'replace') { ductCost = homeSize * DUCT_COST_PER_SQFT * regionIdx; } else if (ductCond === 'none') { // New ductwork installation ductCost = homeSize * DUCT_COST_PER_SQFT * 1.15 * regionIdx; } }

// ───────────────────────────────────────────────────────────────── // STEP 5: Materials & miscellaneous (refrigerant, wiring, pad, etc.) // Typically 8–12% of equipment cost // ───────────────────────────────────────────────────────────────── const materialsCost = equipmentCost * 0.10;

// ───────────────────────────────────────────────────────────────── // STEP 6: Permit & inspection fees // Typical range: $250–$600; use $400 average adjusted by region // ───────────────────────────────────────────────────────────────── const permitCost = permitFlag ? (400 * regionIdx) : 0;

// ───────────────────────────────────────────────────────────────── // STEP 7: Total cost // Total = Equipment + Labor + Ductwork + Materials + Permit // ───────────────────────────────────────────────────────────────── const totalCost = equipmentCost + laborCost + ductCost + materialsCost + permitCost;

// Low/high range: ±15% const totalLow = totalCost * 0.85; const totalHigh = totalCost * 1.15;

// ─────────────────────────────────────────────────────────────────
// STEP 8: Estimated annual energy savings (efficiency upgrade)
// Baseline: avg US home spends ~$1,200/yr on HVAC energy
// Standard → High: ~15% savings; Standard → Premium: ~30% savings
// ─────────────────────────────────────────────────────────────────
const baseAnnualEnergy = 1200;
const savingsPct = { standard: 0, high: 0.15, premium: 0.30 };
const annualSavings = baseAnnualEnergy * savingsPct[efficiency];
const paybackYears = annualSavings > 0
? ((equipmentCost * (savingsPct[efficiency])) / annualSavings).toFixed(1)
'N/A';

// --- Format helpers --- const fmt = (n) => '$' + Math.round(n).toLocaleString('en-US'); const systemLabels = { central_ac_furnace: 'Central AC + Gas Furnace', heat_pump: 'Air-Source Heat Pump', mini_split: 'Ductless Mini-Split', packaged_unit: 'Packaged Unit', geothermal: 'Geothermal Heat Pump' }; const effLabels = { standard: 'Standard', high: 'High', premium: 'Premium' }; const ductLabels = { good: 'Good (no work)', repair: 'Fair (partial repair)', replace: 'Poor (full replacement)', none: 'None (new install)' };

// --- Output --- let html = '### 💰 Estimated HVAC Replacement Cost '; html += ''; html += 'Cost Component' + 'Amount';

const rows = [ ['Equipment Cost', equipmentCost], ['Labor Cost', laborCost], ['Ductwork Cost', ductCost], ['Materials & Misc.', materialsCost], ['Permit & Inspection', permitCost], ]; rows.forEach(([label, val]) => { html += '' + label + '' + '' + fmt(val) + ''; });

html += '' + 'Total Estimated Cost' + '' + fmt(totalCost) + ''; html += '';

html += 'Estimated Range: ' + fmt(totalLow) + ' – ' + fmt(totalHigh) + '

';

html += ''; html += '#### 📋 System Summary '; html += ''; html += '- System Type: ' + systemLabels[systemType] + ''; if (systemType === 'mini_split') { html += '- Zones: ' + zones + ''; } else { html += '- Required Capacity: ' + tons + ' tons (' + homeSize + ' sq ft ÷ ' + SQ_FT_PER_TON + ' sq ft/ton)'; } html += '- Efficiency Tier: ' + effLabels[efficiency] + ''; html += '- Ductwork: ' + ductLabels[ductCond] + ''; html += '- Regional Labor Index: ' + regionIdx.toFixed(2) + 'x'; html += '';

if (annualSavings > 0) { html += ''; html += '#### ⚡ Energy Efficiency Benefit '; html += ''; html += '- Estimated Annual Energy Savings: ' + fmt(annualSavings) + '/yr vs. standard efficiency'; html += '- Efficiency Upgrade Premium Payback: ~' + paybackYears + ' years'; html += ''; }

html += '* Estimates are for budgeting purposes. Get 3 quotes from licensed HVAC contractors for accurate pricing.

';

const resultEl = document.getElementById('hva-result'); resultEl.style.display = 'block'; resultEl.innerHTML = html; }

#### Formula

Total Replacement Cost = Equipment Cost + Labor Cost + Ductwork Cost + Materials Cost + Permit Cost

#### Assumptions & References

More Calculators

Read Next

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

References