HVAC System Sizing Calculator — Tonnage Estimator

ANALife Services AuthorityNational Calculator Authority›HVAC System Sizing Calculator — Tonnage 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 Sizing Calculator — Tonnage Estimator

Estimate the required HVAC system size (in tons of cooling/heating) for a residential or light commercial space using a simplified Manual J–style load calculation.

Conditioned Floor Area (sq ft)

Ceiling Height (ft)

Climate Zone

Very Hot & Humid (Zone 1 – Miami, Houston) Hot & Humid (Zone 2 – Atlanta, Dallas) Mixed Humid (Zone 3 – Charlotte, Nashville) Mixed Dry / Cold (Zone 4 – Denver, Seattle) Cold (Zone 5 – Chicago, Minneapolis) Very Cold (Zone 6–7 – Anchorage, Duluth)

Insulation Quality

Poor (older home, minimal insulation) Average (code-minimum insulation) Good (well-insulated, double-pane windows) Excellent (high-performance, triple-pane, foam)

Number of Occupants

Window Area (sq ft total)

Predominant Window Orientation

North / South (lower solar gain) East / West (moderate solar gain) South-facing / Mixed (higher solar gain)

Number of Stories

1 Story (more roof exposure) 2 Stories 3+ Stories

Roof / Exterior Shading

No shade (full sun exposure) Partial shade (some trees/overhangs) Heavy shade (dense trees, deep overhangs)

Internal Heat Sources

Residential (standard appliances) Home office / moderate equipment Commercial kitchen / heavy equipment

Calculate Tonnage

function hvaCalc() { // --- Gather inputs --- var sqft = parseFloat(document.getElementById('hva-sqft').value); var ceilH = parseFloat(document.getElementById('hva-ceilingHeight').value); var climate = parseFloat(document.getElementById('hva-climate').value); var insulation = parseFloat(document.getElementById('hva-insulation').value); var occupants = parseFloat(document.getElementById('hva-occupants').value); var winArea = parseFloat(document.getElementById('hva-windows').value); var orientation = parseFloat(document.getElementById('hva-orientation').value); var stories = parseFloat(document.getElementById('hva-stories').value); var shade = parseFloat(document.getElementById('hva-shade').value); var heatSrc = parseFloat(document.getElementById('hva-heatSources').value);

var resultDiv = document.getElementById('hva-result');

// --- Validation --- var errors = []; if (isNaN(sqft) || sqft 50000) errors.push("Floor area must be between 100 and 50,000 sq ft."); if (isNaN(ceilH) || ceilH 20) errors.push("Ceiling height must be between 7 and 20 ft."); if (isNaN(occupants)|| occupants 200) errors.push("Occupants must be between 1 and 200."); if (isNaN(winArea) || winArea 10000) errors.push("Window area must be between 0 and 10,000 sq ft."); if (winArea >= sqft) errors.push("Window area cannot exceed or equal the floor area.");

if (errors.length > 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }

// --------------------------------------------------------------- // LOAD CALCULATION (Manual J simplified approach) // // Total Cooling Load (BTU/hr) = Envelope Load + Solar Load // + Occupant Load + Internal Load // // 1. Envelope (conduction) load: // Q_env = sqft × ceiling_height × 0.133 BTU/(hr·ft³·°F) × ΔT_design // ΔT_design ≈ 20°F (indoor 75°F vs outdoor 95°F design day) // Simplified: Q_env = volume × U_eff × ΔT // where U_eff (overall) ≈ 0.133 BTU/(hr·ft³·°F) for average construction // // 2. Solar gain through windows: // Q_solar = window_area × SHGC × peak_solar_irradiance // SHGC ≈ 0.40 (double-pane low-e), peak irradiance ≈ 200 BTU/(hr·ft²) // Q_solar = window_area × 0.40 × 200 = window_area × 80 // // 3. Occupant load: // Q_occ = occupants × 250 BTU/hr (sensible heat per person, ASHRAE) // // 4. Internal / appliance load: // Q_int = sqft × 3.0 BTU/(hr·ft²) (residential baseline, ASHRAE) // // 5. Ventilation / infiltration load: // Q_inf = sqft × 0.5 ACH × ceiling_height × 1.1 × ΔT // (1.1 = ρ·Cp for air in BTU/(ft³·°F), ΔT = 20°F) // // Total BTU/hr → Tons = Total / 12,000 // // Adjustment multipliers applied to total: // climate × insulation × stories × shade × orientation(solar only) × heatSrc // ---------------------------------------------------------------

var deltaT = 20; // °F design temperature difference var volume = sqft * ceilH; // ft³

// 1. Envelope conduction load var U_eff = 0.133; // BTU/(hr·ft³·°F) — overall building envelope var Q_env = volume * U_eff * deltaT;

// 2. Solar gain (orientation multiplier applied here specifically) var SHGC = 0.40; var I_peak = 200; // BTU/(hr·ft²) var Q_solar = winArea * SHGC * I_peak * orientation;

// 3. Occupant sensible heat (ASHRAE: ~250 BTU/hr per person seated/light activity) var Q_occ = occupants * 250;

// 4. Internal / appliance load var Q_int = sqft * 3.0;

// 5. Infiltration load var ACH = 0.5; var Q_inf = volume * ACH * 1.1 * deltaT;

// Sum all loads var Q_total_raw = Q_env + Q_solar + Q_occ + Q_int + Q_inf;

// Apply global multipliers (climate, insulation, stories, shade, internal heat) var Q_total = Q_total_raw * climate * insulation * stories * shade * heatSrc;

// Convert to tons (1 ton = 12,000 BTU/hr) var tons_raw = Q_total / 12000;

// Round up to nearest 0.5-ton increment (standard equipment sizing) var tons_rounded = Math.ceil(tons_raw * 2) / 2;

// Heating estimate: heating load ≈ 1.25× cooling load for cold climates // (simplified; proper heating uses heat loss calculation) var heating_btu = Q_total * 1.10; var heating_tons = heating_btu / 12000; var heating_rounded = Math.ceil(heating_tons * 2) / 2;

// EER/SEER context: typical 14 SEER unit var annual_kwh = (Q_total * 1000) / (14 * 1000); // rough annual kWh (1000 hrs/yr)

// Format numbers function fmt(n, d) { return n.toFixed(d !== undefined ? d : 1); }

resultDiv.style.display = 'block'; resultDiv.innerHTML = '### Sizing Results ' + '' + 'Load ComponentBTU/hr' + 'Envelope Conduction' + fmt(Q_env * climate * insulation * stories, 0) + '' + 'Solar Gain (windows)' + fmt(Q_solar * shade, 0) + '' + 'Occupant Heat' + fmt(Q_occ, 0) + '' + 'Internal / Appliances' + fmt(Q_int * heatSrc, 0) + '' + 'Infiltration' + fmt(Q_inf * climate * insulation, 0) + '' + 'Total Cooling Load' + fmt(Q_total, 0) + ' BTU/hr' + '' +

'' + 'Recommended Cooling Capacity: ' + fmt(tons_rounded, 1) + ' Tons

' + '(' + fmt(tons_raw, 2) + ' tons calculated → rounded up to nearest ½-ton)

' + '' +

'' + 'ParameterValue' + 'Cooling Load (BTU/hr)' + fmt(Q_total, 0) + '' + 'Cooling Load (kW)' + fmt(Q_total / 3412, 2) + '' + 'Calculated Tons' + fmt(tons_raw, 2) + '' + 'Recommended Cooling Size' + fmt(tons_rounded, 1) + ' tons' + 'Estimated Heating Load' + fmt(heating_btu, 0) + ' BTU/hr' + 'Recommended Heating Size' + fmt(heating_rounded, 1) + ' tons (or ' + fmt(heating_btu / 1000, 1) + ' MBH)' + 'BTU/hr per sq ft' + fmt(Q_total / sqft, 1) + '' + 'Est. Annual Cooling Energy*' + fmt(annual_kwh, 0) + ' kWh/yr (14 SEER)' + '' +

'* Annual energy estimate assumes ~1,000 equivalent full-load cooling hours per year. ' + 'This is a simplified estimate. A full ACCA Manual J calculation by a licensed HVAC engineer is recommended for final equipment selection.

'; }

#### Formulas Used

Total Cooling Load (BTU/hr):

Q_total = (Q_env + Q_solar + Q_occ + Q_int + Q_inf) × F_climate × F_insulation × F_stories × F_shade × F_internal

#### Assumptions & References

More Calculators

Read Next

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

References