Moisture and Humidity Risk Assessment Calculator
ANA›Life Services Authority›National Calculator Authority›Moisture and Humidity Risk Assessment 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; } }
Moisture and Humidity Risk Assessment Calculator
Evaluate moisture and humidity risk for buildings, materials, and environments using temperature, relative humidity, dew point analysis, and mold growth potential indices.
Air Temperature (°C)
Relative Humidity (%)
Surface / Wall Temperature (°C)
Exposure Duration (hours)
Material Type
Wood / Timber Concrete / Masonry Drywall / Gypsum Metal / Steel Insulation (Fibreglass/Mineral Wool)
Calculate Risk Results will appear here.
function moiCalc() { var T = parseFloat(document.getElementById('moi-temp').value); var RH = parseFloat(document.getElementById('moi-rh').value); var Ts = parseFloat(document.getElementById('moi-surface-temp').value); var dur = parseFloat(document.getElementById('moi-duration').value); var mat = document.getElementById('moi-material').value;
// --- Input validation --- if (isNaN(T) || isNaN(RH) || isNaN(Ts) || isNaN(dur)) { document.getElementById('moi-result').innerHTML = 'Please fill in all fields with valid numbers.'; return; } if (RH 100) { document.getElementById('moi-result').innerHTML = 'Relative Humidity must be between 0 and 100%.'; return; } if (T 60 || Ts 60) { document.getElementById('moi-result').innerHTML = 'Temperatures must be between -40°C and 60°C.'; return; } if (dur 8760) { document.getElementById('moi-result').innerHTML = 'Exposure duration must be between 0 and 8760 hours (1 year).'; return; }
// ----------------------------------------------------------------------- // 1. Dew Point Temperature (Magnus formula — Lawrence 2005) // Td = (243.04 * [ln(RH/100) + (17.625T)/(243.04+T)]) // / (17.625 - [ln(RH/100) + (17.625T)/(243.04+T)]) // ----------------------------------------------------------------------- var a = 17.625; var b = 243.04; // °C var lnRH = Math.log(RH / 100.0); var gamma = lnRH + (a * T) / (b + T); var Td = (b * gamma) / (a - gamma);
// ----------------------------------------------------------------------- // 2. Saturation Vapour Pressure (Buck equation, kPa) // es(T) = 0.61121 * exp((18.678 - T/234.5) * T / (257.14 + T)) // ----------------------------------------------------------------------- function es(temp) { return 0.61121 * Math.exp((18.678 - temp / 234.5) * temp / (257.14 + temp)); } var esAir = es(T); var esSurface = es(Ts); var eActual = (RH / 100.0) * esAir; // actual vapour pressure (kPa)
// ----------------------------------------------------------------------- // 3. Surface Relative Humidity (RH_s) // RH_s = (e_actual / es(Ts)) * 100 // ----------------------------------------------------------------------- var RH_s = (eActual / esSurface) * 100.0; if (RH_s > 100) RH_s = 100.0; // cap at 100% (condensation occurring)
// ----------------------------------------------------------------------- // 4. Condensation Risk // Condensation occurs when surface temp = 80% sustained // MGRI = RH_s_factor * duration_factor * material_factor // Scale 0–10 // ----------------------------------------------------------------------- var matFactor = { wood: 1.0, drywall: 0.95, insulation: 0.85, concrete: 0.60, metal: 0.30 }; var mf = matFactor[mat];
// RH_s factor: 0 below 70%, linear 70–80%, accelerated above 80% var rhsFactor; if (RH_s 1) rhsFactor = 1;
// Duration factor: log scale, 24 h = 0.3, 168 h = 0.6, 720 h = 1.0 var durMold = dur 100) ORS = 100;
// ----------------------------------------------------------------------- // 9. Risk Classification // ----------------------------------------------------------------------- function classify(score) { if (score 70) recs.push('Reduce indoor relative humidity below 60% using dehumidification or improved ventilation.'); if (RH_s >= 80) recs.push('Surface relative humidity exceeds 80% — mold growth conditions are present. Inspect and treat surfaces.'); if (MGRI >= 5) recs.push('High mold growth risk index detected. Consider anti-mold coatings and moisture barriers for ' + mat + '.'); if (CRI >= 5 && mat === 'metal') recs.push('Significant corrosion risk for metal surfaces. Apply protective coatings or galvanisation.'); if (dur > 168) recs.push('Prolonged exposure (>' + dur.toFixed(0) + ' h) significantly amplifies damage risk. Address moisture source promptly.'); if (recs.length === 0) recs.push('Conditions are within acceptable limits. Continue routine monitoring.');
// ----------------------------------------------------------------------- // Output // ----------------------------------------------------------------------- var html = '### Moisture & Humidity Risk Assessment Results '; html += ''; html += 'ParameterValue';
function row(label, val, unit, highlight) { var bg = highlight ? 'background:' + highlight + '22;' : ''; return '' + label + '' + val + ' ' + unit + ''; }
html += row('Air Temperature', T.toFixed(1), '°C'); html += row('Relative Humidity (Air)', RH.toFixed(1), '%'); html += row('Surface Temperature', Ts.toFixed(1), '°C'); html += row('Dew Point Temperature', Td.toFixed(2), '°C', condensationRisk ? '#c0392b' : null); html += row('Condensation Margin (Ts − Td)', condensationMargin.toFixed(2), '°C', condensationRisk ? '#c0392b' : (condensationMargin = 80 ? '#c0392b' : (RH_s >= 70 ? '#e67e22' : null)); html += row('Humidity Index (HI)', HI.toFixed(1), '/ 100'); html += row('Mold Growth Risk Index', MGRI.toFixed(2), '/ 10'); html += row('Corrosion Risk Index', CRI.toFixed(2), '/ 10'); html += '';
html += ''; html += 'Overall Risk Score: ' + ORS.toFixed(1) + ' / 100'; html += 'Risk Level: ' + orsClass.label + ''; html += '';
html += ''; html += 'Mold Risk' + moldClass.label + '' + (MGRI * 10).toFixed(1) + ' / 100'; html += 'Corrosion Risk' + corrClass.label + '' + (CRI * 10).toFixed(1) + ' / 100'; html += 'Condensation' + (condensationRisk ? 'Active' : 'None') + ''; html += '';
html += ''; html += 'Recommendations:'; recs.forEach(function(r) { html += '' + r + ''; }); html += '';
document.getElementById('moi-result').innerHTML = html; }
#### Formulas Used
1. Dew Point (Magnus / Lawrence 2005): γ(T, RH) = ln(RH/100) + (17.625 × T) / (243.04 + T) Td = 243.04 × γ / (17.625 − γ) [°C]
2. Saturation Vapour Pressure (Buck equation): es(T) = 0.61121 × exp[(18.678 − T/234.5) × T / (257.14 + T)] [kPa]
3. Actual Vapour Pressure: e = (RH/100) × es(Tair)
4. Surface Relative Humidity: RHs = (e / es(Tsurface)) × 100 [%]
5. Humidity Index (HI): HI = 0.5 × RH + 0.3 × RHs + 0.2 × min(duration/720, 1) × 100
6. Mold Growth Risk Index (MGRI, 0–10): MGRI = RHs-factor × duration-factor × material-factor × 10 (Based on ASHRAE 160 / ISO 13788 mold growth thresholds; RHs ≥ 80% critical)
7. Corrosion Risk Index (CRI, 0–10): CRI = (RHs/100)² × min(duration/720, 1) × 10 × material-factor (Based on ISO 9223 atmospheric corrosion classification)
8. Overall Risk Score (ORS, 0–100): ORS = 0.40 × HI + 0.40 × (MGRI × 10) + 0.20 × (CRI × 10)
#### Assumptions & References
- Dew point calculated using the Magnus formula with constants from Lawrence (2005), BAMS.
- Mold growth thresholds based on ASHRAE Standard 160-2016 (Design Criteria for Moisture Control in Buildings) and ISO 13788:2012.
- Corrosion risk classification follows ISO 9223:2012 (Corrosion of metals — Corrosivity of atmospheres).
More Calculators
- Code Violation Remediation Cost Calculator
- Title VII Damages Cap Calculator
- Coating Cure Time and Temperature Calculator
- Concrete Curing Time Calculator
- Concrete Surface Prep and Coating Labor Cost Estimator
- Fire Safety Compliance Cost Estimator
- College Savings (529 Plan) Calculator
- AI Contractor ROI Calculator
- AI Project Scope & Token Cost Estimator
- AI Contractor vs Human Contractor Cost Calculator
- Contractor Markup vs. Margin Calculator
- Labor vs. Materials Cost Ratio Calculator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...