Air Infiltration Rate Calculation

Air Infiltration Rate Calculator .air-calc-container { max-width: 800px; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; } .air-calc-box { background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 30px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); margin-bottom: 40px; } .air-calc-title { text-align: center; color: #2c3e50; margin-bottom: 25px; font-size: 24px; font-weight: 700; } .air-calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px; } @media (max-width: 600px) { .air-calc-grid { grid-template-columns: 1fr; } } .air-calc-group { margin-bottom: 15px; } .air-calc-label { display: block; margin-bottom: 8px; font-weight: 600; color: #495057; } .air-calc-input, .air-calc-select { width: 100%; padding: 12px; border: 1px solid #ced4da; border-radius: 4px; font-size: 16px; box-sizing: border-box; } .air-calc-input:focus, .air-calc-select:focus { border-color: #3498db; outline: none; box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.25); } .air-calc-btn { display: block; width: 100%; background: #3498db; color: white; border: none; padding: 15px; font-size: 18px; font-weight: 700; border-radius: 4px; cursor: pointer; transition: background 0.2s; } .air-calc-btn:hover { background: #2980b9; } .air-calc-results { margin-top: 25px; padding: 20px; background: #fff; border: 1px solid #dee2e6; border-radius: 4px; display: none; } .air-result-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #eee; } .air-result-row:last-child { border-bottom: none; } .air-result-label { font-weight: 600; color: #555; } .air-result-value { font-weight: 700; color: #2c3e50; } .air-badge { display: inline-block; padding: 5px 10px; border-radius: 15px; font-size: 12px; font-weight: bold; color: white; background: #95a5a6; } .badge-green { background: #27ae60; } .badge-yellow { background: #f1c40f; color: #333; } .badge-red { background: #e74c3c; } .air-article h2 { color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px; margin-top: 30px; } .air-article p { margin-bottom: 15px; } .air-tooltip { font-size: 12px; color: #7f8c8d; margin-top: 5px; }

Air Infiltration & ACH Calculator

Cubic Feet per Minute at 50 Pascals
Total conditioned air volume
Cold Climate / Exposed (n=15) Mixed Climate / Average (n=18) Standard / Moderate Shielding (n=20) Warm Climate / Sheltered (n=25)
Used to convert blower door data to natural infiltration.
ACH50 (Air Changes at 50Pa):
ACHnat (Natural Air Changes):
Est. Natural Airflow (CFMnat):
Efficiency Rating:

Understanding Air Infiltration Calculation

Calculating the air infiltration rate is a critical step in assessing building envelope performance and energy efficiency. Air leakage allows conditioned air to escape and unconditioned outside air to enter, leading to energy loss, moisture problems, and reduced occupant comfort.

What is CFM50?

CFM50 stands for Cubic Feet per Minute at 50 Pascals. It is the standard measurement obtained from a Blower Door Test. During this test, a fan depressurizes the building to a pressure difference of 50 Pascals with respect to the outside. This simulates a roughly 20 mph wind blowing against all sides of the building simultaneously.

The ACH formula

To understand how "leaky" a home is relative to its size, we calculate Air Changes per Hour (ACH). The standard metric derived from the blower door test is ACH50.

Formula: ACH50 = (CFM50 × 60) / Building Volume

  • CFM50: The airflow reading from the blower door test.
  • 60: Converts minutes to hours.
  • Volume: The cubic footage of the conditioned space (Floor Area × Ceiling Height).

ACHnat: Natural Air Infiltration

While ACH50 represents a high-stress scenario (simulated storm), ACHnat estimates the air leakage under normal, natural conditions. This is calculated using the LBL (Lawrence Berkeley Laboratory) Factor, often referred to as the N-Factor.

Formula: ACHnat = ACH50 / N-Factor

The N-Factor depends on your geographic location (climate zone), the height of the building, and the shielding provided by surrounding trees or structures. It typically ranges from 10 (very leaky/exposed) to 30 (very sheltered), with 20 being a common standard.

Interpreting the Results

Different building codes and standards define what constitutes a "tight" or "leaky" house:

  • Passive House Standard: Less than 0.6 ACH50. Extremely airtight. requires mechanical ventilation.
  • Modern Energy Code (2015+ IECC): Typically requires 3.0 to 5.0 ACH50 or less, depending on the climate zone.
  • Older Homes: Often range from 10 to 20 ACH50, indicating significant energy waste.

If your calculator result shows a low ACHnat (under 0.35), verify that the building has adequate mechanical ventilation (HRV or ERV) to ensure healthy indoor air quality.

function calculateAirInfiltration() { // Get Inputs var cfm50 = document.getElementById('cfm50').value; var volume = document.getElementById('volume').value; var nFactor = document.getElementById('nFactor').value; // Validation if (cfm50 === "" || volume === "" || cfm50 <= 0 || volume <= 0) { alert("Please enter valid positive numbers for CFM50 and Building Volume."); return; } // Parse Float cfm50 = parseFloat(cfm50); volume = parseFloat(volume); nFactor = parseFloat(nFactor); // Calculate ACH50 // Formula: (CFM50 * 60 minutes) / Volume var ach50 = (cfm50 * 60) / volume; // Calculate ACHnat (Natural) // Formula: ACH50 / N-Factor var achNat = ach50 / nFactor; // Calculate CFMnat (Natural airflow in cubic feet per minute) // Formula: CFM50 / N-Factor var cfmNat = cfm50 / nFactor; // Determine Rating var ratingHtml = ""; var ratingText = ""; if (ach50 <= 0.6) { ratingText = "Ultra Tight (Passive House)"; ratingHtml = "" + ratingText + ""; } else if (ach50 <= 3.0) { ratingText = "Energy Efficient"; ratingHtml = "" + ratingText + ""; } else if (ach50 <= 7.0) { ratingText = "Average / Moderate"; ratingHtml = "" + ratingText + ""; } else { ratingText = "Leaky / Needs Sealing"; ratingHtml = "" + ratingText + ""; } // Display Results document.getElementById('resACH50').innerHTML = ach50.toFixed(2); document.getElementById('resACHnat').innerHTML = achNat.toFixed(2); document.getElementById('resCFMnat').innerHTML = cfmNat.toFixed(0) + " CFM"; document.getElementById('resRating').innerHTML = ratingHtml; // Show Results Container document.getElementById('airResults').style.display = "block"; }

Leave a Comment