Water Heater Replacement Cost Estimator
ANA›Life Services Authority›National 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
- Unit Cost = Base Unit Price × Tier Multiplier + Size Adjustment Size Adjustment = (Gallons − 50) × $5/gal (tank/heat-pump types only)
- Labor Cost = Labor Rate ($/hr) × Installation Hours
- Permit Fee = $75 (standard) or $150 (tankless/heat pump/solar) if required; $0 if not
- Typical Range = Total Cost × 0.85 to Total Cost × 1.15
Tier Multipliers: Budget = 0.70×, Mid-Range = 1.00×, Premium = 1.45×
Base Unit Prices (Mid-Range, 50-gal baseline):
#### Assumptions & References
More Calculators
- Smart Thermostat Energy Savings Calculator
- Smart Home Installation Cost Estimator
- Venue Capacity and Sightline Calculator
- Slam Poetry Stage Acoustics Calculator
- Siding Replacement vs Repair Cost Calculator
- Wi-Fi Coverage and Dead Zone Calculator
- Sleep Needs Calculator
- Window Energy Performance Calculator
- Appliance Energy Cost Calculator
- Appliance Repair vs. Replace Calculator
- Appliance Lifespan & Replacement Cost Calculator
Read Next
Study Time Planner ANA › Life Services Authority › National Calculator Authority › Study Time Planner .calc-container { max-width: 640px; margin:...