Home / Gasoline stations with convenience stores / Illinois / Cook County, IL
How many gas stations exist per person present — residents plus daytime workers — by ZIP code, compared with the U.S. average. Establishment data: Census ZBP 2023. Population: ACS 2024 5-year. 186 ZIP codes analyzed.
Includes: Gas stations with a convenience store · Fuel + mart locations. Counted together because official statistics use one 447110 code.
Why a range: Census does not publish a ZIP-by-industry count when that ZIP has 0–2 businesses. 66 ZIP cells in this county are withheld, 46 of them with residents. Each could hold 0, 1, or 2 businesses: counting them all as 0 gives the low end, counting them all as 2 gives the high end — the data cannot say where the truth sits. The density range uses only the populated cells, since ZIPs without residents are excluded from per-person rates. How ranges work
863 gas stations are counted in Cook County — 1.4 per 10,000 people present (residents + daytime workers), 57% of the U.S. rate of 2.4.
On the comparable ZIP set (ZIPs with a published count in every year), the total has stayed roughly flat between 2015 and 2023 (817 → 811).
Measured supply density is highest in 60469 (Posen), 60176 (Schiller Park), 60621 (Chicago) — well above the national rate. On measured density alone, the lowest-density residential ZIPs with a published count are 60616 (Chicago), 60625 (Chicago), 60623 (Chicago).
Census County Business Patterns (2023) puts the county-wide count at 912 establishments, including locations in ZIP codes that do not map to a ZCTA — so it can run slightly above the sum of the ZIP rows on this page. It is annual, so it lags more than QCEW.
Measured density: Cook County sits at 57% of the U.S. rate for gas stations. 46 ZIPs with population have no published count (each 0–2 businesses), so the true per-capita rate is between 57% and 63% of the U.S. rate. Why. The highest measured density is in 60469 and 60176; the lowest measured density is in 60616 and 60625.
This is a supply-side read: it counts existing gas stations and the people present, not foot traffic, income, rent, or whether locals want more. Treat low density as a question to check, not an answer.
Cook County had an estimated 5,182,617 residents on July 1, 2024 — 1.6% fewer than in 2020 (−84,455). In the latest year it gained 40,095 people: births minus deaths +9,459, international migration +67,763, domestic migration −37,193. Components are published separately and may not sum exactly.
2,616,104 jobs were located in the county in 2022 (−1.9% since 2019), and 2,331,664 employed residents lived there (−3.2% since 2019). LODES counts wage and salary jobs covered by unemployment insurance plus federal jobs; it excludes the self-employed and military, and counts jobs rather than unique people. 2019→2022 spans the pandemic, so read it as one change, not a trend.
Population and migration say whether the customer base is growing. They do not say whether people want another business of this type. Definitions and limits → · Full county detail →
ACS 5-year estimates for 2015–2019 and 2020–2024. Only ZIPs with at least 2,000 residents in both windows and a change larger than the survey margin of error (90%) are listed — small ZIPs move a lot on paper without a real signal.
Not shown. Census publishes gasoline stations only as a broader 2022 grouping (NAICS 4571) that also includes other fuel retailers, so a convenience-store-gas-station-only nonemployer count is not published.
Census Nonemployer Statistics 2024 (NAICS 2022). We do not approximate this figure.
Each ZIP area is shaded by its density of this business type per person present (residents + workers) vs. the U.S. average. Click any ZIP to zoom to its boundary, see its numbers, and switch to aerial imagery. Individual mapped shops appear as dots at street level — Show locations zooms you in to them (scroll or double-click to zoom).
Map data © OpenStreetMap contributors, tiles by OpenFreeMap.
White dots are ZIP totals from the official Census count — the bigger the dot, the more gas stations in that ZIP. They are aggregated, not individual shops. Turquoise dots are individual locations mapped in OpenStreetMap, shown only at street level; they are crowd-sourced and indicative, may be incomplete, and do not equal the official counts. Only the official ZIP totals feed the saturation index.
Number of gas stations in Cook County across 2015–2023, on a consistent set of ZIP codes present in every year — so changes are real, not ZIP-boundary artifacts. 2015/2018 are pre-pandemic baselines; 2020/2021 are COVID-distorted.
These ZIPs have far more workers (or visitors) than residents, so their counts are driven by daytime and visitor demand — not a place to read "shortage" from resident numbers alone.
| ZIP | Neighborhood | Type | Residents | Workers | Gas stations | Index |
|---|---|---|---|---|---|---|
| 60173 | Schaumburg | Employment hub | 13,650 | 52,694 | 10 | 105% |
| 60607 | Chicago | Employment hub | 32,392 | 68,600 | 4 | 25% |
| 60141 | Hines | Destination | 195 | 3,318 | 0–2 | — |
| 60208 | Evanston | Destination | 255 | 20,972 | 0–2 | — |
| 60601 | Chicago | Employment hub | 15,235 | 83,170 | 0–2 | — |
| 60602 | Chicago | Destination | 1,480 | 33,916 | 0–2 | — |
| 60603 | Chicago | Destination | 1,298 | 60,606 | 0–2 | — |
| 60604 | Chicago | Destination | 616 | 41,171 | 0–2 | — |
| 60606 | Chicago | Destination | 3,840 | 203,655 | 0–2 | — |
| 60611 | Chicago | Employment hub | 37,705 | 89,024 | 0–2 | — |
Scroll the table sideways to see all columns.
Click a column header to sort. Index = gas stations per 10,000 people present (residents + 0.5×workers) ÷ the U.S. average. 100% = exactly average.
| ZIP | Neighborhood | Residents | Workers | Gas stations | Per 10k | Index | Status |
|---|---|---|---|---|---|---|---|
| 60469 | Posen | 5,205 | 774 | 6 | 10.7 | 452% | Very high density |
| 60176 | Schiller Park | 11,393 | 6,458 | 7 | 4.8 | 202% | High density |
| 60621 | Chicago | 28,301 | 3,833 | 12 | 4.0 | 167% | High density |
| 60445 | Midlothian | 14,268 | 6,940 | 7 | 3.9 | 166% | High density |
| 60805 | Evergreen Park | 19,420 | 6,844 | 9 | 3.9 | 166% | High density |
| 60712 | Lincolnwood | 13,112 | 10,293 | 7 | 3.8 | 162% | High density |
| 60636 | Chicago | 32,198 | 3,505 | 13 | 3.8 | 161% | High density |
| 60464 | Palos Park | 9,773 | 1,758 | 4 | 3.8 | 158% | High density |
| 60501 | Summit Argo | 11,432 | 4,212 | 5 | 3.7 | 156% | High density |
| 60426 | Harvey | 23,906 | 7,383 | 10 | 3.6 | 153% | High density |
| 60162 | Hillside | 8,084 | 7,285 | 4 | 3.4 | 144% | Above average |
| 60803 | Alsip | 22,106 | 15,497 | 10 | 3.3 | 141% | Above average |
| 60457 | Hickory Hills | 14,503 | 3,211 | 5 | 3.1 | 131% | Above average |
| 60425 | Glenwood | 8,714 | 1,909 | 3 | 3.1 | 131% | Above average |
| 60827 | Riverdale | 24,713 | 2,241 | 8 | 3.1 | 131% | Above average |
| 60619 | Chicago | 59,503 | 6,093 | 19 | 3.0 | 128% | Above average |
| 60465 | Palos Hills | 18,081 | 3,499 | 6 | 3.0 | 128% | Above average |
| 60053 | Morton Grove | 24,619 | 10,528 | 9 | 3.0 | 127% | Above average |
| 60473 | South Holland | 21,225 | 10,974 | 8 | 3.0 | 126% | Above average |
| 60463 | Palos Heights | 13,722 | 6,296 | 5 | 3.0 | 125% | Above average |
| 60475 | Steger | 10,035 | 887 | 3 | 2.9 | 121% | Above average |
| 60478 | Country Club Hills | 16,390 | 2,171 | 5 | 2.9 | 121% | Above average |
| 60526 | La Grange Park | 13,459 | 1,746 | 4 | 2.8 | 118% | Above average |
| 60452 | Oak Forest | 26,739 | 5,281 | 8 | 2.7 | 115% | Above average |
| 60419 | Dolton | 20,825 | 2,530 | 6 | 2.7 | 115% | Above average |
| 60546 | Riverside | 16,322 | 4,686 | 5 | 2.7 | 113% | Above average |
| 60171 | River Grove | 10,451 | 2,096 | 3 | 2.6 | 110% | Above average |
| 60173 | Schaumburg | 13,650 | 52,694 | 10 | 2.5 | 105% | Above average |
| 60706 | Harwood Heights | 24,260 | 7,647 | 7 | 2.5 | 105% | Above average |
| 60153 | Maywood | 23,201 | 11,871 | 7 | 2.4 | 101% | Above average |
| 60513 | Brookfield | 19,343 | 3,146 | 5 | 2.4 | 101% | Above average |
| 60154 | Westchester | 16,436 | 9,124 | 5 | 2.4 | 100% | Above average |
| 60453 | Oak Lawn | 56,861 | 20,791 | 16 | 2.4 | 100% | Above average |
| 60164 | Melrose Park | 20,872 | 8,892 | 6 | 2.4 | 100% | Below average |
| 60624 | Chicago | 35,263 | 6,140 | 9 | 2.3 | 99% | Below average |
| 60428 | Markham | 10,927 | 3,809 | 3 | 2.3 | 99% | Below average |
| 60628 | Chicago | 60,431 | 7,654 | 15 | 2.3 | 98% | Below average |
| 60169 | Hoffman Estates | 33,401 | 10,355 | 9 | 2.3 | 98% | Below average |
| 60018 | Des Plaines | 27,952 | 47,694 | 12 | 2.3 | 98% | Below average |
| 60525 | La Grange | 31,324 | 41,056 | 12 | 2.3 | 98% | Below average |
| 60430 | Homewood | 19,838 | 12,628 | 6 | 2.3 | 97% | Below average |
| 60459 | Burbank | 28,739 | 4,621 | 7 | 2.3 | 95% | Below average |
| 60131 | Franklin Park | 18,054 | 17,688 | 6 | 2.2 | 94% | Below average |
| 60471 | Richton Park | 12,848 | 1,435 | 3 | 2.2 | 93% | Below average |
| 60714 | Niles | 30,305 | 24,130 | 9 | 2.1 | 90% | Below average |
| 60076 | Skokie | 32,953 | 19,696 | 9 | 2.1 | 89% | Below average |
| 60008 | Rolling Meadows | 22,800 | 21,481 | 7 | 2.1 | 88% | Below average |
| 60077 | Skokie | 28,501 | 20,601 | 8 | 2.1 | 87% | Below average |
| 60005 | Arlington Heights | 28,843 | 20,389 | 8 | 2.0 | 86% | Below average |
| 60025 | Glenview | 41,689 | 15,355 | 10 | 2.0 | 85% | Below average |
| 60411 | Chicago Heights | 52,175 | 15,397 | 12 | 2.0 | 85% | Below average |
| 60192 | Hoffman Estates | 16,461 | 7,007 | 4 | 2.0 | 84% | Below average |
| 60104 | Bellwood | 18,256 | 3,868 | 4 | 2.0 | 84% | Below average |
| 60609 | Chicago | 62,028 | 18,440 | 14 | 2.0 | 83% | Below average |
| 60074 | Palatine | 36,460 | 8,793 | 8 | 2.0 | 83% | Below average |
| 60406 | Blue Island | 23,327 | 4,972 | 5 | 1.9 | 82% | Below average |
| 60070 | Prospect Heights | 15,496 | 1,603 | 3 | 1.8 | 78% | Below average |
| 60415 | Chicago Ridge | 14,099 | 4,484 | 3 | 1.8 | 77% | Below average |
| 60455 | Bridgeview | 16,872 | 10,328 | 4 | 1.8 | 77% | Below average |
| 60651 | Chicago | 63,335 | 6,154 | 12 | 1.8 | 76% | Below average |
| 60194 | Schaumburg | 19,756 | 5,345 | 4 | 1.8 | 75% | Below average |
| 60620 | Chicago | 64,871 | 7,319 | 12 | 1.8 | 74% | Below average |
| 60639 | Chicago | 84,240 | 15,433 | 16 | 1.7 | 73% | Below average |
| 60402 | Berwyn | 63,721 | 12,054 | 12 | 1.7 | 73% | Below average |
| 60068 | Park Ridge | 38,650 | 15,904 | 8 | 1.7 | 72% | Below average |
| 60487 | Tinley Park | 26,043 | 6,646 | 5 | 1.7 | 72% | Below average |
| 60804 | Cicero | 82,797 | 14,661 | 15 | 1.7 | 70% | Below average |
| 60090 | Wheeling | 38,298 | 20,419 | 8 | 1.6 | 70% | Below average |
| 60302 | Oak Park | 32,862 | 7,083 | 6 | 1.6 | 70% | Below average |
| 60622 | Chicago | 54,609 | 25,035 | 11 | 1.6 | 69% | Below average |
| 60443 | Matteson | 20,663 | 7,534 | 4 | 1.6 | 69% | Below average |
| 60477 | Tinley Park | 35,976 | 13,621 | 7 | 1.6 | 69% | Below average |
| 60641 | Chicago | 68,894 | 12,906 | 12 | 1.6 | 67% | Below average |
| 60618 | Chicago | 91,901 | 20,260 | 16 | 1.6 | 66% | Below average |
| 60062 | Northbrook | 41,406 | 46,099 | 10 | 1.6 | 65% | Below average |
| 60067 | Palatine | 38,204 | 13,951 | 7 | 1.5 | 65% | Below average |
| 60438 | Lansing | 28,806 | 7,275 | 5 | 1.5 | 65% | Below average |
| 60630 | Chicago | 55,486 | 9,520 | 9 | 1.5 | 63% | Below average |
| 60007 | Elk Grove Village | 32,592 | 44,419 | 8 | 1.5 | 62% | Below average |
| 60660 | Chicago | 42,724 | 11,098 | 7 | 1.5 | 61% | Below average |
| 60632 | Chicago | 89,107 | 20,101 | 14 | 1.4 | 60% | Below average |
| 60467 | Orland Park | 24,398 | 8,422 | 4 | 1.4 | 59% | Below average |
| 60462 | Orland Park | 41,456 | 17,270 | 7 | 1.4 | 59% | Below average |
| 60056 | Mount Prospect | 55,818 | 17,452 | 9 | 1.4 | 59% | Below average |
| 60649 | Chicago | 48,056 | 4,778 | 7 | 1.4 | 59% | Below average |
| 60643 | Chicago | 45,942 | 9,019 | 7 | 1.4 | 59% | Below average |
| 60091 | Wilmette | 27,333 | 5,627 | 4 | 1.3 | 56% | Below average |
| 60409 | Calumet City | 35,100 | 7,660 | 5 | 1.3 | 54% | Below average |
| 60656 | Chicago | 29,538 | 5,140 | 4 | 1.2 | 53% | Below average |
| 60160 | Melrose Park | 24,549 | 17,614 | 4 | 1.2 | 51% | Below average |
| 60638 | Chicago | 57,074 | 37,741 | 9 | 1.2 | 50% | Far below average |
| 60647 | Chicago | 84,749 | 18,625 | 11 | 1.2 | 49% | Far below average |
| 60629 | Chicago | 108,324 | 8,370 | 13 | 1.2 | 49% | Far below average |
| 60016 | Des Plaines | 60,898 | 17,329 | 8 | 1.2 | 48% | Far below average |
| 60004 | Arlington Heights | 51,835 | 20,130 | 7 | 1.1 | 48% | Far below average |
| 60707 | Elmwood Park | 41,116 | 6,357 | 5 | 1.1 | 48% | Far below average |
| 60617 | Chicago | 74,790 | 9,915 | 9 | 1.1 | 48% | Far below average |
| 60193 | Schaumburg | 40,146 | 9,409 | 5 | 1.1 | 47% | Far below average |
| 60202 | Evanston | 32,341 | 7,547 | 4 | 1.1 | 47% | Far below average |
| 60615 | Chicago | 42,975 | 7,045 | 5 | 1.1 | 45% | Far below average |
| 60608 | Chicago | 80,737 | 29,377 | 10 | 1.0 | 44% | Far below average |
| 60133 | Hanover Park | 36,732 | 6,371 | 4 | 1.0 | 42% | Far below average |
| 60655 | Chicago | 28,434 | 3,995 | 3 | 1.0 | 42% | Far below average |
| 60646 | Chicago | 28,780 | 8,214 | 3 | 0.9 | 38% | Far below average |
| 60652 | Chicago | 41,074 | 5,715 | 4 | 0.9 | 38% | Far below average |
| 60634 | Chicago | 73,885 | 9,038 | 7 | 0.9 | 38% | Far below average |
| 60201 | Evanston | 43,744 | 25,259 | 5 | 0.9 | 37% | Far below average |
| 60612 | Chicago | 35,744 | 44,360 | 5 | 0.9 | 36% | Far below average |
| 60613 | Chicago | 52,244 | 15,412 | 5 | 0.8 | 35% | Far below average |
| 60640 | Chicago | 65,445 | 17,714 | 6 | 0.8 | 34% | Far below average |
| 60626 | Chicago | 49,662 | 7,775 | 4 | 0.7 | 31% | Far below average |
| 60107 | Streamwood | 38,886 | 6,624 | 3 | 0.7 | 30% | Far below average |
| 60614 | Chicago | 70,693 | 27,556 | 6 | 0.7 | 30% | Far below average |
| 60659 | Chicago | 41,728 | 9,683 | 3 | 0.6 | 27% | Far below average |
| 60607 | Chicago | 32,392 | 68,600 | 4 | 0.6 | 25% | Far below average |
| 60645 | Chicago | 48,208 | 4,307 | 3 | 0.6 | 25% | Far below average |
| 60637 | Chicago | 52,721 | 31,368 | 4 | 0.6 | 25% | Far below average |
| 60623 | Chicago | 81,277 | 12,534 | 5 | 0.6 | 24% | Far below average |
| 60625 | Chicago | 76,760 | 12,820 | 4 | 0.5 | 20% | Far below average |
| 60616 | Chicago | 54,308 | 24,459 | 3 | 0.5 | 19% | Far below average |
| 60006 | Arlington Heights | — | 36 | 0–2 | — | — | Not published |
| 60017 | Des Plaines | — | 170 | 0–2 | — | — | Not published |
| 60022 | Glencoe | 8,352 | 2,391 | 0–2 | — | — | Not published |
| 60026 | Glenview | 14,069 | 8,480 | 0–2 | — | — | Not published |
| 60029 | Golf | 518 | 88 | 0–2 | — | — | Not published |
| 60043 | Kenilworth | 2,503 | 555 | 0–2 | — | — | Not published |
| 60065 | Northbrook | — | 201 | 0–2 | — | — | Not published |
| 60078 | Palatine | — | 40 | 0–2 | — | — | Not published |
| 60082 | Techny | — | 184 | 0–2 | — | — | Not published |
| 60093 | Winnetka | 19,867 | 10,004 | 0–2 | — | — | Not published |
| 60130 | Forest Park | 13,943 | 7,440 | 0–2 | — | — | Not published |
| 60141 | Hines | 195 | 3,318 | 0–2 | — | — | Not published |
| 60155 | Broadview | 7,906 | 6,792 | 0–2 | — | — | Not published |
| 60159 | Schaumburg | — | 14 | 0–2 | — | — | Not published |
| 60161 | Melrose Park | — | 61 | 0–2 | — | — | Not published |
| 60163 | Berkeley | 5,199 | 1,517 | 0–2 | — | — | Not published |
| 60165 | Stone Park | 4,482 | 1,140 | 0–2 | — | — | Not published |
| 60168 | Schaumburg | — | 27 | 0–2 | — | — | Not published |
| 60179 | Hoffman Estates | — | 1,237 | 0–2 | — | — | Not published |
| 60195 | Schaumburg | 4,397 | 5,331 | 0–2 | — | — | Not published |
| 60196 | Schaumburg | — | 3,103 | 0–2 | — | — | Not published |
| 60203 | Evanston | 4,680 | 390 | 0–2 | — | — | Not published |
| 60204 | Evanston | — | 160 | 0–2 | — | — | Not published |
| 60208 | Evanston | 255 | 20,972 | 0–2 | — | — | Not published |
| 60301 | Oak Park | 3,475 | 4,793 | 0–2 | — | — | Not published |
| 60303 | Oak Park | — | 20 | 0–2 | — | — | Not published |
| 60304 | Oak Park | 16,955 | 2,964 | 0–2 | — | — | Not published |
| 60305 | River Forest | 11,992 | 4,595 | 0–2 | — | — | Not published |
| 60412 | Chicago Heights | — | 43 | 0–2 | — | — | Not published |
| 60418 | Crestwood | 10,572 | 2,133 | 0–2 | — | — | Not published |
| 60422 | Flossmoor | 9,542 | 1,424 | 0–2 | — | — | Not published |
| 60429 | Hazel Crest | 14,864 | 4,802 | 0–2 | — | — | Not published |
| 60439 | Lemont | 24,192 | 12,721 | 0–2 | — | — | Not published |
| 60454 | Oak Lawn | — | 156 | 0–2 | — | — | Not published |
| 60456 | Hometown | 4,215 | 339 | 0–2 | — | — | Not published |
| 60458 | Justice | 14,200 | 1,189 | 0–2 | — | — | Not published |
| 60461 | Olympia Fields | 4,761 | 3,726 | 0–2 | — | — | Not published |
| 60466 | Park Forest | 21,461 | 2,093 | 0–2 | — | — | Not published |
| 60472 | Robbins | 4,563 | 217 | 0–2 | — | — | Not published |
| 60476 | Thornton | 1,940 | 780 | 0–2 | — | — | Not published |
| 60480 | Willow Springs | 5,388 | 773 | 0–2 | — | — | Not published |
| 60482 | Worth | 10,897 | 1,288 | 0–2 | — | — | Not published |
| 60499 | Bedford Park | — | 77 | 0–2 | — | — | Not published |
| 60534 | Lyons | 10,327 | 2,008 | 0–2 | — | — | Not published |
| 60558 | Western Springs | 13,446 | 2,222 | 0–2 | — | — | Not published |
| 60601 | Chicago | 15,235 | 83,170 | 0–2 | — | — | Not published |
| 60602 | Chicago | 1,480 | 33,916 | 0–2 | — | — | Not published |
| 60603 | Chicago | 1,298 | 60,606 | 0–2 | — | — | Not published |
| 60604 | Chicago | 616 | 41,171 | 0–2 | — | — | Not published |
| 60605 | Chicago | 36,210 | 22,820 | 0–2 | — | — | Not published |
| 60606 | Chicago | 3,840 | 203,655 | 0–2 | — | — | Not published |
| 60610 | Chicago | 44,883 | 24,563 | 0–2 | — | — | Not published |
| 60611 | Chicago | 37,705 | 89,024 | 0–2 | — | — | Not published |
| 60631 | Chicago | 30,924 | 23,781 | 0–2 | — | — | Not published |
| 60633 | Chicago | 12,474 | 10,315 | 0–2 | — | — | Not published |
| 60642 | Chicago | 21,789 | 21,425 | 0–2 | — | — | Not published |
| 60644 | Chicago | 47,210 | 5,433 | 0–2 | — | — | Not published |
| 60653 | Chicago | 33,383 | 3,171 | 0–2 | — | — | Not published |
| 60654 | Chicago | 25,755 | 68,006 | 0–2 | — | — | Not published |
| 60657 | Chicago | 71,904 | 20,985 | 0–2 | — | — | Not published |
| 60661 | Chicago | 11,398 | 64,670 | 0–2 | — | — | Not published |
| 60666 | Chicago | — | 37,159 | 0–2 | — | — | Not published |
| 60673 | Chicago | — | 7 | 0–2 | — | — | Not published |
| 60680 | Chicago | — | 80 | 0–2 | — | — | Not published |
| 60690 | Chicago | — | 25 | 0–2 | — | — | Not published |
| 60699 | Chicago | — | 50 | 0–2 | — | — | Not published |
Scroll the table sideways to see all columns.
The numbers above tell you how the market looks. To find a specific storefront, these marketplaces list available retail space for lease.
Open vacancy data (actual empty units) is only published by some cities; where it exists we show it directly. Listings above are third-party.
Census withholds some ZIP-by-industry cells to protect small businesses. 0–2 means the cell was not published (Census publishes industry counts only at 3+ per ZIP), so the ZIP is left unranked rather than counted as zero. ~ means the count is estimated from the broader industry group and can be off by a business or two.
When a data vintage changes or a section of this report is revised, we post it to a public update feed. No email address, no account, no tracking — and nothing is sent unless something actually changed.
Establishments. U.S. Census ZIP Code Business Patterns (ZBP 2023), NAICS 447110 — gasoline stations with convenience stores. Counts establishments with paid employees. ZBP is published annually with a ~2-year lag.
Fresh county signal. This industry has no clean QCEW series, so the freshest county signal is Census County Business Patterns 2023: 912 establishments and $145M in annual payroll county-wide. This count includes locations in ZIP codes that do not map to a ZCTA, so it can be slightly higher than the sum of the ZIP rows. CBP is annual and slower than QCEW. It cannot be broken down by ZIP.
Population. U.S. Census American Community Survey 2024 5-year ZCTA population (table B01003). Workers are the ZIP's total employment from the same 2023 ZBP file.
Demand ("people present"). Demand comes from residents and daytime workers: residents + 0.5 × workers. This is the single documented assumption in the model and can be tuned.
Index. index = (ZIP establishments ÷ ZIP demand × 10,000) ÷ the U.S. average for this industry (2.37 per 10,000 present). It is a supply-side density measure; it does not capture income, rent, tourism, or whether locals actually want more.
BizGapMap — free, no-login small-business saturation reports for major U.S. counties. Built entirely from public U.S. Census, BLS, and IRS data (ZBP 2023, ACS 2024 5-year, PEP 2024, LODES, QCEW, IRS SOI). No forecasts, no revenue guesses — withheld cells are marked, and the few derived counts are labelled as estimates.