Skip to content

Instantly share code, notes, and snippets.

@stevevance
Last active February 25, 2026 01:06
Show Gist options
  • Select an option

  • Save stevevance/5004a373023ebfc0a99ca83829943799 to your computer and use it in GitHub Desktop.

Select an option

Save stevevance/5004a373023ebfc0a99ca83829943799 to your computer and use it in GitHub Desktop.
New Construction Sprinkler System Analysis — Chicago permits 2020–2025

New Construction Sprinkler System Analysis

Overview

This reference documents an analysis of sprinkler system prevalence in new residential construction permits issued in Chicago between January 1, 2020, and December 31, 2025. Permits are grouped by building type (single-family, small multi-family, large multi-family) and by whether their work_description references a sprinkler system.

Analysis Date: 2026-02-24

Query Criteria

  • Permit type: PERMIT - NEW CONSTRUCTION
  • Issue date: 2020-01-01 through 2025-12-31
  • Units filter: units > 0 OR units_sfh > 0 (at least one residential unit)
  • Sprinkler detection: keyword search on work_description (see below)

Building Type Classification

Priority order (first match wins):

Building Type Condition
Single-family units_sfh = 1
Multi-family 2–6 units units BETWEEN 2 AND 6
Multi-family 7+ units units >= 7
Other Everything else (2 permits: units = 1, no units_sfh)

Sprinkler Keyword Detection

Sprinkler presence is inferred from the work_description text field. Two LIKE patterns cover all variants found in the data:

Pattern Variants Matched
%sprinkl% sprinkler, sprinklered, sprinkled (typo), sprinkleed (typo), sprinklred (typo)
%nfpa% NFPA 13, NFPA 13R, NFPA-13, NFPA-13R (National Fire Protection Association standards)

Variant counts found across all matching permits in the universe:

Variant Count
sprinklered 245
sprinkler 110
nfpa 50
sprinkled 17
sprinkleed 1
sprinklred 1

SQL Queries

Main counts query

SELECT
  CASE
    WHEN units_sfh = 1                      THEN '1. Single-family'
    WHEN units BETWEEN 2 AND 6              THEN '2. Multi-family 2–6 units'
    WHEN units >= 7                         THEN '3. Multi-family 7+ units'
    ELSE                                         '4. Other'
  END AS building_type,
  CASE
    WHEN lower(work_description) LIKE '%sprinkl%'
      OR lower(work_description) LIKE '%nfpa%'
    THEN 'With sprinklers'
    ELSE 'Sprinklers not mentioned'
  END AS sprinkler_status,
  COUNT(*) AS permit_count,
  ROUND(100.0 * COUNT(*) / SUM(COUNT(*)) OVER (
    PARTITION BY CASE
      WHEN units_sfh = 1                    THEN '1. Single-family'
      WHEN units BETWEEN 2 AND 6            THEN '2. Multi-family 2–6 units'
      WHEN units >= 7                       THEN '3. Multi-family 7+ units'
      ELSE                                       '4. Other'
    END
  ), 1) AS pct_of_type
FROM permits
WHERE _permit_type = 'PERMIT - NEW CONSTRUCTION'
  AND issue_date BETWEEN '2020-01-01' AND '2025-12-31'
  AND (units > 0 OR units_sfh > 0)
GROUP BY building_type, sprinkler_status
ORDER BY building_type, sprinkler_status;

Variant discovery query

Used to identify the actual sprinkler-related word variants present in the data:

SELECT DISTINCT
  regexp_matches(lower(work_description), 'sp[a-z]{0,3}r[a-z]{0,2}nkl[a-z]{0,4}|nfpa', 'g') AS match,
  COUNT(*) OVER (PARTITION BY regexp_matches(lower(work_description), 'sp[a-z]{0,3}r[a-z]{0,2}nkl[a-z]{0,4}|nfpa', 'g')) AS occurrences
FROM permits
WHERE _permit_type = 'PERMIT - NEW CONSTRUCTION'
  AND issue_date BETWEEN '2020-01-01' AND '2025-12-31'
  AND (units > 0 OR units_sfh > 0)
  AND (
    lower(work_description) ~ 'sp[a-z]{0,3}r[a-z]{0,2}nkl[a-z]{0,4}'
    OR lower(work_description) LIKE '%nfpa%'
  )
ORDER BY occurrences DESC;

Results

Counts by building type and sprinkler status

Building Type With Sprinklers Sprinklers Not Mentioned Total % With Sprinklers
Single-family 119 1,972 2,091 5.7%
Multi-family 2–6 units 128 1,263 1,391 9.2%
Multi-family 7+ units 125 323 448 27.9%
Other 0 2 2 0%
Total 372 3,560 3,932 9.5%

Key Observations

  1. Sprinkler rates rise sharply with building size. Single-family homes mention sprinklers in 5.7% of permits; 2–6 unit buildings in 9.2%; and 7+ unit buildings in 27.9%. This gradient is consistent with Chicago's fire code imposing more stringent requirements as building size increases.

  2. Even the 7+ unit rate (27.9%) is surprisingly low. Larger residential buildings generally require sprinklers under the Chicago Building Code. The gap likely reflects that many permit descriptions reference sprinkler compliance indirectly (e.g., by code section number rather than the word "sprinkler"), and that separate sprinkler sub-permits — not captured here — are sometimes filed independently of the main building permit.

  3. Mixed-use buildings drive NFPA compliance language. Among the 2–6 unit sprinklered permits, several buildings with ground-floor retail cite both NFPA 13 (commercial standard) for retail floors and NFPA 13R (residential standard) for dwelling floors above, reflecting the mixed occupancy classification.

  4. 6-unit buildings are overrepresented in the sprinklered 2–6 unit group. Buildings maxed out at 6 units appear more frequently with sprinkler language, suggesting the threshold at or near 6 units triggers additional fire suppression requirements.

  5. Coordinated lot developments appear. The permits at 1616 W Hastings St and 1626 W Hastings St were both issued on 2024-08-16, both for 6-unit fully sprinklered masonry buildings — consistent with a single developer building on adjacent lots simultaneously.

Sample: Multi-family 2–6 unit permits with sprinklers

Permit Address Issue Date Units Sprinkler Reference
101051469 1616 W Hastings St 2024-08-16 6 FULLY SPRINKLERED
101045238 1345 W Grand Ave 2025-05-06 6 ENTIRE BUILDING SPRINKLERED
101050292 1626 W Hastings St 2024-08-16 6 FULLY SPRINKLERED
101054676 1838 W Addison St 2024-11-21 4 FULLY SPRINKLERED NFPA-13R
101049019 1628 N Damen Ave 2024-06-27 6 NFPA 13 (retail) + NFPA 13R (residential)
101051526 1621 W 13th St 2024-08-20 6 FULLY SPRINKLERED
101021281 1414 E 65th Pl 2023-09-12 5 NFPA-13 SPRINKLER SYSTEM THROUGHOUT
100998598 3019 N Lincoln Ave 2023-03-23 3 FULLY SPRINKLERED, MIXED USE
101012788 2923 N Southport Ave 2024-01-17 3 FULLY SPRINKLERED, MIXED USE
101001614 4333 N Western Ave 2023-08-07 4 AUTOMATIC FIRE SUPPRESSION SPRINKLER SYSTEM

Caveats

  • Text-based detection only. Sprinkler presence is inferred solely from work_description. Buildings with sprinkler systems that are described by code section reference, or that file a separate sprinkler sub-permit, will be counted as "sprinklers not mentioned" in this analysis.
  • units_sfh takes classification priority. Two permits have both units_sfh = 1 and units = 2; they are classified as single-family.
  • "Other" category is negligible. The 2 permits in this group have units = 1 with no units_sfh value, likely data entry gaps in the source data.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment