When the pandemic hit, people did not stop buying groceries. They changed where they bought them. We tracked about 2,200 North Carolina grocery stores from 2017 to 2026 and split them by how built-up their neighbourhood is.
First, how we compare stores fairly
Phone panels grow and shrink, and every store gets busier in December. So we never compare raw visit counts. We compare each store with the average North Carolina store of the same kind in the same week.
Two ideas carry the whole story: a fair yardstick, and three kinds of place
Top: how one store's week becomes an index (example numbers). Bottom: how stores are sorted into city, suburban and rural. Hover a band for its numbers.
City stores lost their share of the state's grocery trips
In 2019, stores in city neighbourhoods drew 17.7% of the visits to the grocery stores we track. By 2021 it was 15.0%, and it has stayed there. Card spending tells the same story from a separate dataset.
City stores' share of NC grocery visits fell during COVID, and stayed down
Share of all visits (or card spend) to tracked grocery stores that went to stores in each kind of place. Pick a place type. Lines are 3-month averages; hover for any month.
Caveat: the city share was already slipping before 2020, by about a point a year. COVID sped it up: against similar stores, city stores lost ground nearly three times as fast in 2019–21 as in 2017–19.
All three kinds of place, side by side
Indexed to 2019, the gap opens within months. By 2022, city stores sat 17% below their 2019 level against similar stores, and rural stores 20% above.
From spring 2020, city and rural stores moved in opposite directions
Each line: stores in one kind of place, against similar NC stores; 100 = that group's 2019 average; 3-month averages. Switch between phones and cards. Hover to compare.
The denser the neighbourhood, the bigger the drop
This is not just three buckets. Sort all 2,262 stores by how dense their neighbourhood is and the change slides smoothly from big gains in the countryside to losses in the densest blocks.
A smooth slope: +39% in the emptiest places, −17% in the densest
Stores split into ten equal groups by neighbourhood density. Dot: median change 2021 vs 2019, against similar stores. Bar: middle half of stores. Diamond: the same stores by card spend.
Watch it spread across the map
Month by month, each store against the same month of 2019
Each dot is a store. Green: busier than in the same month of 2019 (against similar stores); orange: quieter. Press play, or drag through 2020–2022. Hover a dot.
Every big metro core turns orange. By 2021, stores within about 7 km of the centre were down 26% in Charlotte, 30% in Raleigh, 33% in Durham, 21% in Greensboro and 15% in Winston-Salem. The ring 25–60 km out was up 18–21% around Charlotte, Greensboro and Winston-Salem, and roughly flat around the Triangle.
It happened inside the same chains
Maybe cities just have different stores? No. The same chain, with the same prices and the same shelves, lost ground in cities and gained it in the countryside.
Food Lion, Dollar General, Walmart: city stores down, rural stores up
Median change 2021 vs 2019 for each chain's stores, by kind of place, against similar NC stores. Only groups of 3+ stores shown. Switch source; hover a dot for store counts.
Every kind of grocery store moved the same way
Supermarkets, dollar stores, small grocers: all down in cities, up in the country
Median change 2021 vs 2019 against similar stores, by store type and kind of place. Hover a bar for the number of stores.
Two datasets, one answer
Phones count visits; cards count money. They come from different companies and different people. Store by store, they line up.
Stores that lost visits also lost spending
Each dot is one store: change in visits (across) and in card spend (up), 2021 vs 2019, both against similar NC stores. Click a place type to isolate it.
It never came back
After Advan's 2023 method change we restart the clock at 2023 = 100. City stores keep losing a little ground every year; rural stores keep gaining. Card spending, with no break at all, shows the city share still falling in 2024 and 2025.
Since 2023: a slow, steady drift in the same direction
Left: yearly index against similar stores, 2023 = 100 (phones). Right: each place type's share of card spend, 2019–2025. Hover a point.
Why? What we could check
We can see where people shopped, not why. One popular theory is that city stores lost commuters and office workers. The data does not show that clearly: weekday share barely moved, and city stores' visitors came from about as far away as before.
The commuter theory doesn't show up clearly
2019 against 2021 for the same balanced stores. Hover a bar.
Weekday share of visits (%)
Median visitor distance from home (km)
Median minutes in store
That leaves the explanations this data can't separate: people moving out to the suburbs and small towns, working from home and shopping close to home, and new stores opening where the growth is. For food access, the lesson is the same either way: the map of where North Carolina buys groceries changed in 2020 and has kept changing since.
Method and caveats
Stores. 4,452 grocery-type stores from the NC POI list, of which those matched to Advan foot traffic (98% of chains, 37% of independents) form the panels. Balanced panels keep only stores seen in 80%+ of weeks in each Advan era, so openings and closures don't drive the trend.
Place types. Each store takes the density of its nearest census block group: city 3,000+ people per square mile of land, suburban 500–3,000, rural under 500.
Fair comparison. A store's index is its visits divided by the average visits per store in the same Advan category across North Carolina that week. Advan changed its method in January 2023, so 2017–2022 and 2023–2026 are indexed separately and never compared.
Cards. SafeGraph Spend, monthly, for 1,834 of the same stores matched by placekey; the balanced card panel is 1,530 stores. It is an independent panel of card transactions, so agreement with the phone data is real cross-validation.
Limits. Phone and card panels are samples, not counts. Independent and ethnic grocers are under-represented. The pre-2020 drift means not all of the change is COVID. Data: Advan Weekly Patterns and SafeGraph Spend via Dewey (deweydata.io); ACS 2019–2023 5-year; Census TIGER 2023.