Water Heater Replacement Cost Estimator

ANALife Services AuthorityNational Calculator Authority›Water Heater 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; } }

Water Heater Replacement Cost Estimator

Estimate the total cost to replace your water heater, including unit price, installation labor, permits, and disposal fees based on type, size, and fuel source.

Water Heater Type

Tank (Storage) Tankless (On-Demand) Heat Pump Solar

Fuel / Energy Source

Natural Gas Electric Propane

Tank Size / Capacity (gallons) (for tankless, enter 0)

Unit Quality Tier

Budget / Economy Mid-Range Premium / High-Efficiency

Local Labor Rate ($/hour)

Estimated Installation Hours

Permit Required?

Yes No

Old Unit Disposal Fee ($)

Miscellaneous / Parts / Fittings ($)

Calculate

Fill in the fields above and click Calculate.

function watCalc() { // --- Read inputs --- const type = document.getElementById('wat-type').value; const fuel = document.getElementById('wat-fuel').value; const sizeRaw = parseFloat(document.getElementById('wat-size').value); const tier = document.getElementById('wat-brand').value; const laborRate = parseFloat(document.getElementById('wat-labor').value); const hours = parseFloat(document.getElementById('wat-hours').value); const permit = document.getElementById('wat-permit').value; const disposal = parseFloat(document.getElementById('wat-disposal').value); const misc = parseFloat(document.getElementById('wat-misc').value);

// --- Validation --- let errors = []; if (isNaN(sizeRaw) || sizeRaw 120) errors.push("Tank size must be between 0 and 120 gallons (use 0 for tankless)."); if (isNaN(laborRate) || laborRate 250) errors.push("Labor rate must be between $40 and $250 per hour."); if (isNaN(hours) || hours 12) errors.push("Installation hours must be between 1 and 12."); if (isNaN(disposal) || disposal 200) errors.push("Disposal fee must be between $0 and $200."); if (isNaN(misc) || misc 500) errors.push("Miscellaneous costs must be between $0 and $500."); if (type === 'tankless' && sizeRaw > 0) errors.push("For tankless water heaters, tank size should be 0 gallons."); if (type !== 'tankless' && sizeRaw === 0) errors.push("Tank size must be greater than 0 for storage, heat pump, or solar types.");

if (errors.length > 0) { document.getElementById('wat-result').innerHTML = 'Please fix the following:' + errors.map(e => '').join('') + ''; return; }

// --- Unit Cost Base (by type + fuel) --- // Base unit costs (mid-range, 50-gal equivalent) const unitBase = { tank: { gas: 650, electric: 500, propane: 700 }, tankless: { gas: 1100, electric: 800, propane: 1200 }, heat_pump: { gas: 0, electric: 1300, propane: 0 }, solar: { gas: 0, electric: 2500, propane: 0 } };

// Validate fuel compatibility if ((type === 'heat_pump' || type === 'solar') && fuel !== 'electric') { document.getElementById('wat-result').innerHTML = 'Heat pump and solar water heaters require the Electric fuel source.'; return; }

let unitCost = unitBase[type][fuel];

// --- Size Adjustment (tank type only, per gallon above/below 50-gal baseline) --- // ~$5 per gallon deviation from 50-gal baseline for tank types if (type === 'tank' || type === 'heat_pump') { const sizeAdj = (sizeRaw - 50) * 5; unitCost += sizeAdj; }

// --- Tier Multiplier --- const tierMult = { budget: 0.70, mid: 1.00, premium: 1.45 }; unitCost *= tierMult[tier]; unitCost = Math.max(unitCost, 200); // floor

// --- Labor Cost --- // Labor hours adjustment: tankless and heat pump typically take longer let adjustedHours = hours; const laborCost = laborRate * adjustedHours;

// --- Permit Cost ---
// Average permit cost by type
const permitCost = permit === 'yes'
? (type === 'tankless' || type === 'heat_pump' || type === 'solar' ? 150 : 75)
0;

// --- Total Cost --- const totalCost = unitCost + laborCost + permitCost + disposal + misc;

// --- Low / High Range (±15%) --- const lowEst = totalCost * 0.85; const highEst = totalCost * 1.15;

// --- Format --- const fmt = v => '$' + v.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',');

const typeLabel = { tank: 'Tank (Storage)', tankless: 'Tankless', heat_pump: 'Heat Pump', solar: 'Solar' }[type]; const fuelLabel = { gas: 'Natural Gas', electric: 'Electric', propane: 'Propane' }[fuel]; const tierLabel = { budget: 'Budget', mid: 'Mid-Range', premium: 'Premium' }[tier];

document.getElementById('wat-result').innerHTML = ` Estimated Water Heater Replacement Cost

Type${typeLabel} — ${fuelLabel} Unit Quality${tierLabel} Unit Cost${fmt(unitCost)} Labor (${adjustedHours} hrs × ${fmt(laborRate)}/hr)${fmt(laborCost)} Permit Fee${fmt(permitCost)} Disposal Fee${fmt(disposal)} Misc / Parts / Fittings${fmt(misc)}

Estimated Total ${fmt(totalCost)}

Typical Range (±15%) ${fmt(lowEst)} – ${fmt(highEst)}

`; } watCalc();

#### Formula

Total Cost = Unit Cost + Labor Cost + Permit Fee + Disposal Fee + Miscellaneous

Tier Multipliers: Budget = 0.70×, Mid-Range = 1.00×, Premium = 1.45×

Base Unit Prices (Mid-Range, 50-gal baseline):

#### Assumptions & References

More Calculators

Read Next

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

References