The Chicago Grocery Grid maps every retail food establishment in the city, built from cross-referenced city licensing records and health inspection data to create a verified, ground-truth view of grocery access.
The platform includes six interactive tools:
1). 3D Store Landscape, 2). Food Mirage Index, 3). Distribution Gap, 4). Store Composition by Zip Code, 5). Grocery Share vs. City Wide Median, 6). Bivariate Access Map
Every grocery store, independent grocer, and specialty fresh retailer in Chicago, rendered as a 3D column on a dark basemap. Taller columns are supermarkets and big box stores. Shorter columns are specialty shops like bakeries, butchers, and produce stands.
The base layer colors each zip code by stores per 10,000 residents, running from red (no stores) through orange and yellow to green (above average). The overlay panel on the right toggles three demographic layers:
% Non-White Population — highlights the most and least diverse areas
Median Household Income — where wealth concentrates vs. where it doesn't
SNAP Recipient Rate — which communities rely most on food assistance
Each overlay lets you see how store density lines up with the communities that need access most. Right-click and drag to rotate and tilt.
For every one grocery store in a zip code, how many dollar stores, gas stations, convenience stores, and liquor stores are there? This map answers that question.
Teal — grocery stores outnumber the alternatives
Yellow — ratios around 3-6:1
Deep red — 10:1 or higher, or no grocery stores at all
The term "food mirage" captures what's happening in those red zones. Food retail exists. Storefronts are open. Shelves are stocked. But almost nothing on those shelves is fresh produce, raw meat, or affordable staple groceries. Hover any zip code for the full breakdown.
Two maps. One city. Two completely different stories.
Left panel — every grocery store as a teal dot
Right panel — every dollar and convenience store as a red dot
Both panels are synced, so panning or zooming one moves both. The north side is dense with teal. The south side below 63rd Street is nearly empty. Flip to the right panel and red dots blanket the entire city, south side included.
The infrastructure for processed, shelf-stable food reaches everywhere. The infrastructure for fresh food does not.
Every horizontal bar is one zip code's complete retail food picture, segmented into five categories:
Teal — Grocery
Gold — Dollar stores
Tan — Convenience stores
Orange — Gas stations
Red — Liquor stores
Start in count mode to see which zips have the most total food retail. Then switch to percentage mode and sort by grocery share. Zips at the top have almost no teal. Their "food access" is gas stations and liquor stores. Zips at the bottom are dominated by grocery. Hover any bar for exact counts and percentages. Use the sort dropdown to reorder by total stores, grocery percentage, grocery count, or zip code.
Each zip code's grocery stores as a percentage of its total food retail, compared against the citywide average.
Green — higher grocery share than most of Chicago
Red — lower grocery share than most of Chicago
Neutral — right around the city average
This map avoids the trap of measuring grocery access against an impossible standard. Grocery stores will never outnumber corner stores in any major city. So instead of asking an unfair question, this map asks a useful one: compared to the rest of Chicago, how does this neighborhood's food retail mix hold up?
The red zones aren't just underserved in absolute terms. They're underserved compared to their own city.
This map plots two variables at once using a 3x3 color grid. The vertical axis is grocery stores per person. The horizontal axis is non-grocery stores per person.
Deep red-brown (bottom right) — few grocery stores, lots of non-grocery stores. Plenty of storefronts, almost none selling real food. The worst combination.
Blue (top left) — lots of grocery stores, few non-grocery stores. The best scenario.
Muted grays and purples (diagonal) — both types are present at similar levels
The key distinction: this map separates neighborhoods with no food retail at all (light gray) from neighborhoods with lots of food retail that happens to be the wrong kind (deep red). Those two situations need very different solutions.