Water Heater Sizing Calculator

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

Water Heater Sizing Calculator

Determine the appropriate water heater capacity for your household based on peak hour demand, number of occupants, and usage patterns.

Number of Occupants

Showers per Peak Hour

Average Shower Duration (minutes)

Baths per Peak Hour

Dishwasher Cycles per Peak Hour

Laundry Loads (hot/warm) per Peak Hour

Hand Washing / Face Washing Events per Peak Hour

Cold Water Inlet Temperature (°F)

Desired Hot Water Temperature (°F)

Water Heater Type

Storage Tank (Traditional) Tankless (On-Demand)

Calculate

function watCalc() { var occupants = parseFloat(document.getElementById('wat-occupants').value); var showers = parseFloat(document.getElementById('wat-showers').value); var showerDur = parseFloat(document.getElementById('wat-shower-duration').value); var baths = parseFloat(document.getElementById('wat-baths').value); var dishwasher = parseFloat(document.getElementById('wat-dishwasher').value); var laundry = parseFloat(document.getElementById('wat-laundry').value); var handwashing = parseFloat(document.getElementById('wat-handwashing').value); var inletTemp = parseFloat(document.getElementById('wat-inlet-temp').value); var desiredTemp = parseFloat(document.getElementById('wat-desired-temp').value); var heaterType = document.getElementById('wat-heater-type').value; var resultDiv = document.getElementById('wat-result');

// --- Validation --- if (isNaN(occupants) || occupants 20) { resultDiv.innerHTML = 'Please enter a valid number of occupants (1–20).'; return; } if (isNaN(showers) || showers Showers per peak hour must be 0 or more.'; return; } if (isNaN(showerDur) || showerDur 60) { resultDiv.innerHTML = 'Shower duration must be between 1 and 60 minutes.'; return; } if (isNaN(baths) || baths Baths per peak hour must be 0 or more.'; return; } if (isNaN(dishwasher) || dishwasher Dishwasher cycles must be 0 or more.'; return; } if (isNaN(laundry) || laundry Laundry loads must be 0 or more.'; return; } if (isNaN(handwashing) || handwashing Hand washing events must be 0 or more.'; return; } if (isNaN(inletTemp) || inletTemp 80) { resultDiv.innerHTML = 'Inlet temperature must be between 35°F and 80°F.'; return; } if (isNaN(desiredTemp) || desiredTemp 160) { resultDiv.innerHTML = 'Desired temperature must be between 90°F and 160°F.'; return; } if (desiredTemp Desired temperature must be greater than inlet temperature.'; return; }

/ * ── Hot-water usage per activity (gallons of hot water at 120°F equivalent) ── * These are DOE / ENERGY STAR standard values: * Shower : 2.0 gal/min flow rate (low-flow head) * Bath : 20 gal per fill * Dishwasher : 6 gal per cycle * Laundry (hot) : 25 gal per load * Hand/face wash: 2 gal per event * * ── Peak Hour Demand (PHD) ── * PHD = Σ (usage_i × quantity_i) [gallons] * * ── Temperature correction factor ── * Because the tank stores water at 120°F but the user may set a different * desired temperature, we scale the volume: * corrected_PHD = PHD × (desiredTemp - inletTemp) / (120 - inletTemp) * * ── Storage tank sizing ── * First Hour Rating (FHR) needed ≥ corrected_PHD * Recommended tank size = corrected_PHD × 0.70 (tank is ~70% usable hot water) * * ── Tankless sizing ── * Flow rate needed (GPM) = corrected_PHD / 60 (spread over 60-min peak hour) * Temperature rise = desiredTemp - inletTemp * BTU/hr = flow_rate_GPM × 8.33 lb/gal × 60 min/hr × temp_rise × 1 BTU/(lb·°F) * = flow_rate_GPM × 499.8 × temp_rise /

// Hot water volumes (gallons at 120°F reference) var SHOWER_GPM = 2.0; // gal/min var BATH_GAL = 20.0; // gal per bath var DISHWASHER_GAL = 6.0; // gal per cycle var LAUNDRY_GAL = 25.0; // gal per load var HANDWASH_GAL = 2.0; // gal per event

// Peak Hour Demand at 120°F reference var showerGal = showers * SHOWER_GPM * showerDur; var bathGal = baths * BATH_GAL; var dishGal = dishwasher* DISHWASHER_GAL; var laundryGal = laundry * LAUNDRY_GAL; var handwashGal = handwashing * HANDWASH_GAL;

var PHD_ref = showerGal + bathGal + dishGal + laundryGal + handwashGal;

// Temperature correction var tempRise = desiredTemp - inletTemp; var refTempRise = 120 - inletTemp; // reference rise (120°F tank) var corrFactor = tempRise / refTempRise; var PHD_corrected = PHD_ref * corrFactor;

var html = '';

if (heaterType === 'storage') { // First Hour Rating needed var FHR_needed = PHD_corrected; // Usable hot water ≈ 70% of tank capacity (DOE assumption) var tankSize = PHD_corrected / 0.70;

// Recommended standard tank sizes var stdSizes = [20, 30, 40, 50, 60, 75, 80, 100, 120]; var recSize = stdSizes[stdSizes.length - 1]; for (var i = 0; i = tankSize) { recSize = stdSizes[i]; break; } }

// Rough energy factor / annual cost estimate // Average US household uses ~64 gal/day; scale by occupants var dailyUsage = occupants * 16; // ~16 gal/person/day (DOE) // Annual energy (BTU) = dailyUsage × 365 × 8.33 × tempRise var annualBTU = dailyUsage * 365 * 8.33 * tempRise; // Gas efficiency ~0.67 EF, Electric ~0.92 EF var annualGasBTU = annualBTU / 0.67; var annualElecBTU = annualBTU / 0.92; // Cost: gas ~$1.10/therm (100,000 BTU), electric ~$0.13/kWh (3,412 BTU/kWh) var annualGasCost = (annualGasBTU / 100000) * 1.10; var annualElecCost = (annualElecBTU / 3412) * 0.13;

html = '### Storage Tank Water Heater Results ' + '' + 'Peak Hour Demand (at ' + desiredTemp + '°F)' + PHD_corrected.toFixed(1) + ' gallons' + 'Minimum First Hour Rating (FHR) Needed' + FHR_needed.toFixed(1) + ' gallons' + 'Minimum Tank Capacity Needed' + tankSize.toFixed(1) + ' gallons' + 'Recommended Standard Tank Size' + recSize + ' gallons' + 'Temperature Rise Required' + tempRise.toFixed(0) + '°F (' + inletTemp + '°F → ' + desiredTemp + '°F)' + '' + '#### Estimated Annual Operating Cost ' + '' + 'Gas Water Heater (EF 0.67)$' + annualGasCost.toFixed(0) + '/year' + 'Electric Water Heater (EF 0.92)$' + annualElecCost.toFixed(0) + '/year' + '' + 'Breakdown of Peak Hour Usage:' + '• Showers: ' + showerGal.toFixed(1) + ' gal  ' + '• Baths: ' + bathGal.toFixed(1) + ' gal  ' + '• Dishwasher: ' + dishGal.toFixed(1) + ' gal  ' + '• Laundry: ' + laundryGal.toFixed(1) + ' gal  ' + '• Hand washing: ' + handwashGal.toFixed(1) + ' gal

';

} else { // Tankless // Flow rate needed (GPM) = corrected PHD / 60 min var flowRate = PHD_corrected / 60;

// BTU/hr = GPM × 8.33 lb/gal × 60 min/hr × ΔT var btuPerHr = flowRate * 8.33 * 60 * tempRise; var kW = btuPerHr / 3412;

// Sizing recommendation var sizeLabel = ''; if (flowRate 8.0 GPM) — consider multiple units';

// Annual cost estimate var dailyUsage2 = occupants * 16; var annualBTU2 = dailyUsage2 * 365 * 8.33 * tempRise; var annualGasBTU2 = annualBTU2 / 0.82; // tankless gas EF ~0.82 var annualElecBTU2= annualBTU2 / 0.98; // tankless electric EF ~0.98 var annualGasCost2 = (annualGasBTU2 / 100000) * 1.10; var annualElecCost2 = (annualElecBTU2 / 3412) * 0.13;

html = '### Tankless (On-Demand) Water Heater Results ' + '' + 'Peak Hour Demand (at ' + desiredTemp + '°F)' + PHD_corrected.toFixed(1) + ' gallons' + 'Required Flow Rate' + flowRate.toFixed(2) + ' GPM' + 'Required Heating Capacity' + btuPerHr.toFixed(0) + ' BTU/hr (' + kW.toFixed(1) + ' kW)' + 'Temperature Rise Required' + tempRise.toFixed(0) + '°F (' + inletTemp + '°F → ' + desiredTemp + '°F)' + 'Recommended Unit Size' + sizeLabel + '' + '' + '#### Estimated Annual Operating Cost ' + '' + 'Gas Tankless (EF 0.82)$' + annualGasCost2.toFixed(0) + '/year' + 'Electric Tankless (EF 0.98)$' + annualElecCost2.toFixed(0) + '/year' + '' + 'Breakdown of Peak Hour Usage:' + '• Showers: ' + showerGal.toFixed(1) + ' gal  ' + '• Baths: ' + bathGal.toFixed(1) + ' gal  ' + '• Dishwasher: ' + dishGal.toFixed(1) + ' gal  ' + '• Laundry: ' + laundryGal.toFixed(1) + ' gal  ' + '• Hand washing: ' + handwashGal.toFixed(1) + ' gal

'; }

resultDiv.innerHTML = html; }

#### Formulas Used

Peak Hour Demand (PHD) at reference 120°F: PHD = (Showers × Flow Rate × Duration) + (Baths × 20 gal) + (Dishwasher × 6 gal) + (Laundry × 25 gal) + (Hand Washing × 2 gal)

Temperature Correction: PHDcorrected = PHD × (Tdesired − Tinlet) / (120 − Tinlet)

Storage Tank — First Hour Rating (FHR): FHRneeded = PHDcorrected  |  Tank Capacity = PHDcorrected / 0.70

Tankless — Required Flow Rate & Capacity: Flow Rate (GPM) = PHDcorrected / 60 BTU/hr = GPM × 8.33 lb/gal × 60 min/hr × ΔT kW = BTU/hr / 3,412

Annual Energy Cost: Annual BTU = Daily Usage × 365 × 8.33 × ΔT Gas Cost = (Annual BTU / EF / 100,000) × $1.10/therm Electric Cost = (Annual BTU / EF / 3,412) × $0.13/kWh

#### 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