HVAC System Sizing Calculator — Tonnage Estimator
ANA›Life Services Authority›National 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
- Envelope Conduction: Q_env = Volume × U_eff × ΔT — where Volume = sqft × ceiling height (ft³), U_eff = 0.133 BTU/(hr·ft³·°F), ΔT = 20°F design difference
- Solar Gain: Q_solar = A_window × SHGC × I_peak × F_orientation — SHGC = 0.40 (double-pane low-e), I_peak = 200 BTU/(hr·ft²)
- Occupant Load: Q_occ = N × 250 BTU/hr — ASHRAE sensible heat per person (light activity)
- Internal Load: Q_int = sqft × 3.0 BTU/(hr·ft²) — residential appliance/lighting baseline
- Infiltration: Q_inf = Volume × ACH × 1.1 × ΔT — ACH = 0.5, 1.1 = ρ·Cp for air in BTU/(ft³·°F)
- Tonnage: Tons = Q_total / 12,000 — 1 ton of cooling = 12,000 BTU/hr
- Equipment Sizing: Round up to nearest 0.5-ton increment per industry practice
#### Assumptions & References
More Calculators
- New York Contractor License Fee Calculator
- Project Timeline & Labor Hours Estimator
- Construction Material Waste Factor Calculator
- Illinois Contractor License Fee Calculator
- Illinois Sales Tax on Materials Calculator
- Illinois Prevailing Wage Calculator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...