BizGapMap

Home / Grocery stores & supermarkets / Illinois / Cook County, IL

Cook County, IL — Grocery stores Saturation

How many grocery stores 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: Supermarkets · Grocery stores · Neighborhood food markets. Counted together because official statistics use one 445110 code.

Measured density: Above average — 1.31× the U.S. rate (between 1.31× and 1.39× once withheld ZIP cells are counted)

Why a range: Census does not publish a ZIP-by-industry count when that ZIP has 0–2 businesses. 60 ZIP cells in this county are withheld, 40 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

Above the U.S. rate   Cook County grocery stores — 131–139% of the U.S. rate

1,296 grocery stores are counted in Cook County — 2.0 per 10,000 people present (residents + daytime workers), 131% of the U.S. rate of 1.6.

On the comparable ZIP set (ZIPs with a published count in every year), the total has fallen 10% between 2015 and 2023 (1,381 → 1,239). That set is smaller than today's county total. 2020–2021 were pandemic-distorted, and Census rounds counts, so small moves are within noise.

Measured supply density is highest in 60714 (Niles), 60455 (Bridgeview), 60659 (Chicago) — well above the national rate. On measured density alone, the lowest-density residential ZIPs with a published count are 60645 (Chicago), 60638 (Chicago), 60631 (Chicago).

BLS QCEW puts the latest county-wide count (2026 Q1) at 1,144 establishments, the freshest available signal.

Measured density: Cook County sits at 131% of the U.S. rate for grocery stores. 40 ZIPs with population have no published count (each 0–2 businesses), so the true per-capita rate is between 131% and 139% of the U.S. rate. Why. The highest measured density is in 60714 and 60455; the lowest measured density is in 60645 and 60638.

This is a supply-side read: it counts existing grocery stores 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.

Grocery stores
1,296–1,416
published count; upper bound counts each withheld ZIP cell as 2 (60 cells) (2023)
Per 10,000 present
2.0
residents + daytime workers
U.S. average
1.6
per 10,000 present
County index
1.31×
vs. U.S.
Latest quarter (QCEW)
1,144
2026 Q1 — county total
Residents
5,132,257
166 ZIPs with data
Workers
2,445,383
jobs located in county

Is the area growing?

Population
5,182,617
Census PEP, July 1 2024
Change since 2020
−1.6%
−84,455 people
Net migration 2024
+30,570
international +67,763, domestic −37,193
Jobs located here
2,616,104
LODES 2022, −1.9% since 2019

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 →

ZIP gaining residents
2015–19 → 2020–24
Change
60654 Chicago
+28.6%
60605 Chicago
+24.6%
60611 Chicago
+13.5%
ZIP losing residents
2015–19 → 2020–24
Change
60445 Midlothian
−44.7%
60426 Harvey
−16.7%
60827 Riverdale
−13.2%

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.

Nonemployer businesses

Not shown. Census publishes grocery stores only combined with convenience stores in this dataset, so a grocery-only nonemployer count is not published.

Census Nonemployer Statistics 2024 (NAICS 2022). We do not approximate this figure.

Saturation map

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).

Basemap:
Under 50% 50–100% 100–150% 150–250% 250%+ 0–2 (not published) / no data ZIP total (dot size) Mapped shop (OpenStreetMap, street level)

Map data © OpenStreetMap contributors, tiles by OpenFreeMap.

White dots are ZIP totals from the official Census count — the bigger the dot, the more grocery stores 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.

Market trend — down 10% since 2015

Number of grocery stores 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.

1,381
2015
1,273
2018
1,189
2020
1,182
2021
1,183
2022
1,239
2023

Highest measured density

ZIP
vs. U.S. average
Index
60714 Niles
395%
60455 Bridgeview
350%
60659 Chicago
318%
60639 Chicago
294%
60616 Chicago
290%
60194 Schaumburg
287%
60426 Harvey
280%
60623 Chicago
250%
60609 Chicago
244%
60464 Palos Park
242%
60624 Chicago
235%
60644 Chicago
232%
60706 Harwood Heights
229%
60459 Burbank
228%
60305 River Forest
225%

Lowest measured density

ZIP
vs. U.S. average
Index
60645 Chicago
51%
60638 Chicago
59%
60631 Chicago
60%
60053 Morton Grove
65%
60605 Chicago
68%
60201 Evanston
68%
60062 Northbrook
70%
60004 Arlington Heights
73%
60653 Chicago
74%
60525 La Grange
74%
60008 Rolling Meadows
77%
60093 Winnetka
78%
60642 Chicago
79%
60438 Lansing
79%
60660 Chicago
80%
Low measured density is not evidence of opportunity. A ZIP with few grocery stores may simply lack foot traffic, retail space, or demand. We rank only residential and mixed ZIPs here; employment hubs and visitor destinations are listed separately below. ZIPs where Census did not publish a count (0–2 businesses) are not ranked: they may be the least served of all, but the data cannot tell 0 from 1 or 2. Verify those locally.

Employment hubs & destinations

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.

ZIPNeighborhoodType ResidentsWorkersGrocery storesIndex
60173Schaumburg Employment hub 13,65052,694 7 113%
60661Chicago Employment hub 11,39864,670 5 74%
60607Chicago Employment hub 32,39268,600 5 48%
60611Chicago Employment hub 37,70589,024 6 47%
60601Chicago Employment hub 15,23583,170 4 45%
60606Chicago Destination 3,840203,655 3 18%
60141Hines Destination 1953,318 0–2 —
60208Evanston Destination 25520,972 0–2 —
60602Chicago Destination 1,48033,916 0–2 —
60603Chicago Destination 1,29860,606 0–2 —

Scroll the table sideways to see all columns.

All ZIP codes

Click a column header to sort. Index = grocery stores per 10,000 people present (residents + 0.5×workers) ÷ the U.S. average. 100% = exactly average.

ZIPNeighborhood ResidentsWorkersGrocery stores Per 10kIndexStatus
60195Schaumburg 4,3975,331 5 7.1 455% Very high density
60714Niles 30,30524,130 26 6.1 395% Very high density
60455Bridgeview 16,87210,328 12 5.4 350% Very high density
60659Chicago 41,7289,683 23 4.9 318% Very high density
60639Chicago 84,24015,433 42 4.6 294% Very high density
60616Chicago 54,30824,459 30 4.5 290% Very high density
60194Schaumburg 19,7565,345 10 4.5 287% Very high density
60426Harvey 23,9067,383 12 4.3 280% Very high density
60623Chicago 81,27712,534 34 3.9 250% High density
60609Chicago 62,02818,440 27 3.8 244% High density
60464Palos Park 9,7731,758 4 3.8 242% High density
60624Chicago 35,2636,140 14 3.7 235% High density
60644Chicago 47,2105,433 18 3.6 232% High density
60706Harwood Heights 24,2607,647 10 3.6 229% High density
60459Burbank 28,7394,621 11 3.5 228% High density
60305River Forest 11,9924,595 5 3.5 225% High density
60406Blue Island 23,3274,972 9 3.5 224% High density
60482Worth 10,8971,288 4 3.5 223% High density
60202Evanston 32,3417,547 12 3.3 214% High density
60160Melrose Park 24,54917,614 11 3.3 212% High density
60608Chicago 80,73729,377 31 3.2 209% High density
60636Chicago 32,1983,505 11 3.2 208% High density
60647Chicago 84,74918,625 30 3.2 205% High density
60419Dolton 20,8252,530 7 3.2 204% High density
60651Chicago 63,3356,154 21 3.2 203% High density
60457Hickory Hills 14,5033,211 5 3.1 200% High density
60803Alsip 22,10615,497 9 3.0 194% High density
60626Chicago 49,6627,775 16 3.0 192% High density
60640Chicago 65,44517,714 22 3.0 190% High density
60619Chicago 59,5036,093 18 2.9 185% High density
60411Chicago Heights 52,17515,397 17 2.8 183% High density
60633Chicago 12,47410,315 5 2.8 182% High density
60467Orland Park 24,3988,422 8 2.8 180% High density
60804Cicero 82,79714,661 25 2.8 178% High density
60617Chicago 74,7909,915 22 2.8 177% High density
60176Schiller Park 11,3936,458 4 2.7 176% High density
60458Justice 14,2001,189 4 2.7 174% High density
60155Broadview 7,9066,792 3 2.7 171% High density
60621Chicago 28,3013,833 8 2.6 170% High density
60618Chicago 91,90120,260 27 2.6 170% High density
60620Chicago 64,8717,319 18 2.6 169% High density
60005Arlington Heights 28,84320,389 10 2.6 165% High density
60656Chicago 29,5385,140 8 2.5 160% High density
60628Chicago 60,4317,654 16 2.5 160% High density
60630Chicago 55,4869,520 15 2.5 160% High density
60629Chicago 108,3248,370 28 2.5 160% High density
60056Mount Prospect 55,81817,452 16 2.5 159% High density
60302Oak Park 32,8627,083 9 2.5 159% High density
60625Chicago 76,76012,820 20 2.4 155% High density
60622Chicago 54,60925,035 16 2.4 153% High density
60649Chicago 48,0564,778 12 2.4 153% High density
60615Chicago 42,9757,045 11 2.4 152% High density
60430Homewood 19,83812,628 6 2.3 148% Above average
60632Chicago 89,10720,101 22 2.2 143% Above average
60067Palatine 38,20413,951 10 2.2 142% Above average
60074Palatine 36,4608,793 9 2.2 142% Above average
60805Evergreen Park 19,4206,844 5 2.2 141% Above average
60304Oak Park 16,9552,964 4 2.2 140% Above average
60634Chicago 73,8859,038 17 2.2 139% Above average
60107Streamwood 38,8866,624 9 2.1 137% Above average
60076Skokie 32,95319,696 9 2.1 135% Above average
60610Chicago 44,88324,563 12 2.1 135% Above average
60169Hoffman Estates 33,40110,355 8 2.1 133% Above average
60409Calumet City 35,1007,660 8 2.1 132% Above average
60452Oak Forest 26,7395,281 6 2.0 131% Above average
60025Glenview 41,68915,355 10 2.0 130% Above average
60402Berwyn 63,72112,054 14 2.0 129% Above average
60462Orland Park 41,45617,270 10 2.0 128% Above average
60643Chicago 45,9429,019 10 2.0 127% Above average
60439Lemont 24,19212,721 6 2.0 126% Above average
60827Riverdale 24,7132,241 5 1.9 124% Above average
60018Des Plaines 27,95247,694 10 1.9 124% Above average
60154Westchester 16,4369,124 4 1.9 123% Above average
60131Franklin Park 18,05417,688 5 1.9 120% Above average
60090Wheeling 38,29820,419 9 1.9 119% Above average
60070Prospect Heights 15,4961,603 3 1.8 118% Above average
60415Chicago Ridge 14,0994,484 3 1.8 118% Above average
60613Chicago 52,24415,412 11 1.8 118% Above average
60637Chicago 52,72131,368 12 1.8 113% Above average
60173Schaumburg 13,65052,694 7 1.8 113% Above average
60641Chicago 68,89412,906 13 1.7 111% Above average
60016Des Plaines 60,89817,329 12 1.7 111% Above average
60478Country Club Hills 16,3902,171 3 1.7 110% Above average
60130Forest Park 13,9437,440 3 1.7 109% Above average
60445Midlothian 14,2686,940 3 1.7 109% Above average
60091Wilmette 27,3335,627 5 1.7 107% Above average
60026Glenview 14,0698,480 3 1.6 105% Above average
60477Tinley Park 35,97613,621 7 1.6 105% Above average
60453Oak Lawn 56,86120,791 11 1.6 105% Above average
60546Riverside 16,3224,686 3 1.6 103% Above average
60707Elmwood Park 41,1166,357 7 1.6 102% Above average
60077Skokie 28,50120,601 6 1.5 99% Below average
60646Chicago 28,7808,214 5 1.5 98% Below average
60465Palos Hills 18,0813,499 3 1.5 97% Below average
60133Hanover Park 36,7326,371 6 1.5 97% Below average
60068Park Ridge 38,65015,904 7 1.5 97% Below average
60473South Holland 21,22510,974 4 1.5 96% Below average
60104Bellwood 18,2563,868 3 1.5 96% Below average
60007Elk Grove Village 32,59244,419 8 1.5 94% Below average
60657Chicago 71,90420,985 12 1.5 94% Below average
60614Chicago 70,69327,556 12 1.4 91% Below average
60612Chicago 35,74444,360 8 1.4 89% Below average
60153Maywood 23,20111,871 4 1.4 88% Below average
60652Chicago 41,0745,715 6 1.4 88% Below average
60487Tinley Park 26,0436,646 4 1.4 88% Below average
60193Schaumburg 40,1469,409 6 1.3 86% Below average
60660Chicago 42,72411,098 6 1.2 80% Below average
60438Lansing 28,8067,275 4 1.2 79% Below average
60642Chicago 21,78921,425 4 1.2 79% Below average
60093Winnetka 19,86710,004 3 1.2 78% Below average
60008Rolling Meadows 22,80021,481 4 1.2 77% Below average
60525La Grange 31,32441,056 6 1.2 74% Below average
60653Chicago 33,3833,171 4 1.1 74% Below average
60661Chicago 11,39864,670 5 1.1 74% Below average
60004Arlington Heights 51,83520,130 7 1.1 73% Below average
60062Northbrook 41,40646,099 7 1.1 70% Below average
60201Evanston 43,74425,259 6 1.1 68% Below average
60605Chicago 36,21022,820 5 1.0 68% Below average
60053Morton Grove 24,61910,528 3 1.0 65% Below average
60631Chicago 30,92423,781 4 0.9 60% Below average
60638Chicago 57,07437,741 7 0.9 59% Below average
60645Chicago 48,2084,307 4 0.8 51% Below average
60607Chicago 32,39268,600 5 0.7 48% Far below average
60611Chicago 37,70589,024 6 0.7 47% Far below average
60601Chicago 15,23583,170 4 0.7 45% Far below average
60606Chicago 3,840203,655 3 0.3 18% Far below average
60006Arlington Heights —36 0–2 — — Not published
60017Des Plaines —170 0–2 — — Not published
60022Glencoe 8,3522,391 0–2 — — Not published
60029Golf 51888 0–2 — — Not published
60043Kenilworth 2,503555 0–2 — — Not published
60065Northbrook —201 0–2 — — Not published
60078Palatine —40 0–2 — — Not published
60082Techny —184 0–2 — — Not published
60141Hines 1953,318 0–2 — — Not published
60159Schaumburg —14 0–2 — — Not published
60161Melrose Park —61 0–2 — — Not published
60162Hillside 8,0847,285 0–2 — — Not published
60163Berkeley 5,1991,517 0–2 — — Not published
60164Melrose Park 20,8728,892 0–2 — — Not published
60165Stone Park 4,4821,140 0–2 — — Not published
60168Schaumburg —27 0–2 — — Not published
60171River Grove 10,4512,096 0–2 — — Not published
60179Hoffman Estates —1,237 0–2 — — Not published
60192Hoffman Estates 16,4617,007 0–2 — — Not published
60196Schaumburg —3,103 0–2 — — Not published
60203Evanston 4,680390 0–2 — — Not published
60204Evanston —160 0–2 — — Not published
60208Evanston 25520,972 0–2 — — Not published
60301Oak Park 3,4754,793 0–2 — — Not published
60303Oak Park —20 0–2 — — Not published
60412Chicago Heights —43 0–2 — — Not published
60418Crestwood 10,5722,133 0–2 — — Not published
60422Flossmoor 9,5421,424 0–2 — — Not published
60425Glenwood 8,7141,909 0–2 — — Not published
60428Markham 10,9273,809 0–2 — — Not published
60429Hazel Crest 14,8644,802 0–2 — — Not published
60443Matteson 20,6637,534 0–2 — — Not published
60454Oak Lawn —156 0–2 — — Not published
60456Hometown 4,215339 0–2 — — Not published
60461Olympia Fields 4,7613,726 0–2 — — Not published
60463Palos Heights 13,7226,296 0–2 — — Not published
60466Park Forest 21,4612,093 0–2 — — Not published
60469Posen 5,205774 0–2 — — Not published
60471Richton Park 12,8481,435 0–2 — — Not published
60472Robbins 4,563217 0–2 — — Not published
60475Steger 10,035887 0–2 — — Not published
60476Thornton 1,940780 0–2 — — Not published
60480Willow Springs 5,388773 0–2 — — Not published
60499Bedford Park —77 0–2 — — Not published
60501Summit Argo 11,4324,212 0–2 — — Not published
60513Brookfield 19,3433,146 0–2 — — Not published
60526La Grange Park 13,4591,746 0–2 — — Not published
60534Lyons 10,3272,008 0–2 — — Not published
60558Western Springs 13,4462,222 0–2 — — Not published
60602Chicago 1,48033,916 0–2 — — Not published
60603Chicago 1,29860,606 0–2 — — Not published
60604Chicago 61641,171 0–2 — — Not published
60654Chicago 25,75568,006 0–2 — — Not published
60655Chicago 28,4343,995 0–2 — — Not published
60666Chicago —37,159 0–2 — — Not published
60673Chicago —7 0–2 — — Not published
60680Chicago —80 0–2 — — Not published
60690Chicago —25 0–2 — — Not published
60699Chicago —50 0–2 — — Not published
60712Lincolnwood 13,11210,293 0–2 — — Not published

Scroll the table sideways to see all columns.

Find an actual space in Chicago

The numbers above tell you how the market looks. To find a specific storefront, these marketplaces list available retail space for lease.

LoopNet
Largest commercial marketplace
Browse Chicago retail space →
Crexi
Free listings + market data
Browse Chicago retail space →
CityFeet
Retail space for lease
Browse Chicago retail space →

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.

Follow Cook County and grocery stores

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.

Subscribe to updates (RSS) How these numbers are built →

Methodology & sources

Establishments. U.S. Census ZIP Code Business Patterns (ZBP 2023), NAICS 445110 — supermarkets & other grocery stores. Counts establishments with paid employees. ZBP is published annually with a ~2-year lag.

Fresh county signal. BLS QCEW (quarterly) is newer than ZBP — 2026 Q1 shows 1,144 establishments county-wide for this industry. 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 (1.55 per 10,000 present). It is a supply-side density measure; it does not capture income, rent, tourism, or whether locals actually want more.

Read the full methodology →  ·  Data sources & vintages →

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.