Chicago Sewer Backup Risk Calculator

ANALife Services AuthorityNational Calculator Authority›Chicago Sewer Backup Risk 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; } }

Chicago Sewer Backup Risk Calculator

Estimate your property's sewer backup risk score (0–100) based on neighborhood flood history, sewer system age, property characteristics, and drainage factors used by the City of Chicago and MWRD guidelines.

Combined Sewer Overflow (CSO) District?

Yes – Combined sewer area (older Chicago neighborhoods) No – Separated sewer system (newer areas)

FEMA Flood Zone

Zone AE / AO (High Risk – 1% annual chance) Zone X-500 (Moderate Risk – 0.2% annual chance) Zone X (Minimal Risk)

Estimated Sewer Main Age (years)

Basement Type

Below-grade basement (full depth) Crawl space / partial basement Slab-on-grade (no basement)

Backflow Preventer / Check Valve Installed?

Yes – Properly installed and maintained No Unknown / Not sure

Sump Pump Present?

Yes – With battery backup Yes – Without battery backup No sump pump

Lot Impervious Surface Coverage (%)

Lot Drainage Slope

Slopes away from structure (positive drainage) Flat / neutral grading Slopes toward structure (negative drainage)

Prior Sewer Backup Events at This Property?

None known 1 event in past 10 years 2 or more events in past 10 years

Mature Trees Near Sewer Lateral (< 10 ft)?

No Yes

Calculate Risk Score

function chiCalc() { // --- Collect inputs --- var district = parseFloat(document.getElementById('chi-district').value); var floodZone = parseFloat(document.getElementById('chi-flood-zone').value); var sewerAge = parseFloat(document.getElementById('chi-sewer-age').value); var basement = parseFloat(document.getElementById('chi-basement').value); var backflow = parseFloat(document.getElementById('chi-backflow').value); var sump = parseFloat(document.getElementById('chi-sump').value); var imperv = parseFloat(document.getElementById('chi-imperv').value); var slope = parseFloat(document.getElementById('chi-slope').value); var history = parseFloat(document.getElementById('chi-backup-history').value); var roots = parseFloat(document.getElementById('chi-tree-roots').value);

// --- Input validation --- if (isNaN(sewerAge) || sewerAge 150) { document.getElementById('chi-result').innerHTML = '⚠ Please enter a valid sewer age between 0 and 150 years.'; return; } if (isNaN(imperv) || imperv 100) { document.getElementById('chi-result').innerHTML = '⚠ Please enter impervious surface coverage between 0 and 100%.'; return; }

/ * FORMULA * ------- * Risk Score = CSO_factor + FloodZone_pts + SewerAge_pts + Basement_pts * + Backflow_pts + Sump_pts + Imperv_pts + Slope_pts * + History_pts + Roots_pts * * Capped at 100. * * Component weights (max points): * CSO District : 0 or 12 (binary; CSO areas have ~3× higher backup rate per MWRD) * FEMA Flood Zone : 5–40 (tiered by annual exceedance probability) * Sewer Age : 0–15 (linear: age/10, capped at 15; ASCE pipe failure curve) * Basement Type : 0–15 (depth below grade increases exposure) * Backflow Preventer : 0–10 (absence removes primary mechanical barrier) * Sump Pump : 0–8 (battery backup critical during power outages) * Impervious Surface : 0–10 (runoff coefficient × 10; rational method basis) * Lot Slope : 0–10 (negative drainage concentrates surface water at foundation) * Backup History : 0–15 (strongest single predictor per Chicago DWM data) * Tree Roots Near Lat. : 0–5 (root intrusion is leading cause of lateral blockage) * * Maximum raw score = 12+40+15+15+10+8+10+10+15+5 = 140 → normalized to 100 /

var MAX_RAW = 140;

// CSO district: 12 pts if yes var csoPts = district === 1 ? 12 : 0;

// Sewer age: 1 pt per 10 years, capped at 15 var agePts = Math.min(sewerAge / 10, 15);

// Impervious surface: runoff coefficient ≈ imperv/100; scale to 0–10 var impervPts = (imperv / 100) * 10;

// Sum all components var rawScore = csoPts + floodZone + agePts + basement + backflow + sump + impervPts + slope + history + roots;

// Normalize to 0–100 var score = Math.min(Math.round((rawScore / MAX_RAW) * 100), 100);

// --- Risk tier --- var tier, color, advice; if (score ' + r[0] + '' + r[1] + ' / ' + r[2] + '' + '' + '' + ''; }).join('');

document.getElementById('chi-result').innerHTML = '### Risk Score: ' + score + ' / 100 — ' + tier + ' ' + '' + advice + '

' + '' + 'Factor' + 'Points' + 'Weight' + '' + rows + '' + 'Raw score: ' + rawScore.toFixed(1) + ' / ' + MAX_RAW + ' → normalized to ' + score + ' / 100

'; }

#### Formula

Risk Score = round( RawScore / 140 × 100 ), capped at 100

Where RawScore = Σ of all component points:

Maximum raw score = 140 (12+40+15+15+10+8+10+10+15+5)

#### Assumptions & References

More Calculators

Read Next

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

References