Where North Carolina Buys Groceries
A state-of-affairs report on grocery access from phone visits, card spending and census data: where people shop, how far they travel, who shops where, and how it has changed since 2017
Abstract
Most food-access measures count the distance from a home to the nearest supermarket. We add what people actually do. We matched 2,806 of 4,452 North Carolina grocery-type stores to weekly phone-panel foot traffic (2017–2026), traced each store's visitors to their home block groups, and joined the census profile of those neighbourhoods. Four findings stand out. First, distance does not explain who uses dollar stores: in cities, the poorest neighbourhoods are as close to a supermarket as the richest (1.2 km), yet send about seven times as many grocery trips to dollar stores, and the number of dollar stores nearby is the strongest predictor. Second, rural residents mostly shop in town: 58% of their grocery visits go to stores in suburban areas, with a median trip of 9.8 km. Third, COVID moved grocery trips out of the cities (city stores −16%, rural +33% against similar stores, 2021 vs 2019), confirmed by card spending, and the shift has not reversed. Fourth, the data can measure shocks: Hurricane Helene's footprint matches FEMA's disaster counties. Coverage is strong for chains and weak for independent and specialty grocers, and the store list itself misses some rural supermarkets; we quantify both.
1Why look beyond distance
The standard picture of food access is a map of food deserts: low-income tracts more than a mile (urban) or ten miles (rural) from a supermarket, as in the USDA's Food Access Research Atlas. That picture counts supply. It does not say where people actually buy food, how far they really travel, or whether a nearby supermarket is used at all. Researchers have pushed on each gap. "Food swamps" describe places where less healthy outlets outnumber healthy ones, and predict obesity better than food deserts do (Cooksey-Stowers et al., 2017). "Food mirages" describe supermarkets that are physically close but economically out of reach (Breyer and Voss-Andreae, 2013). And access changes over the day, week and year, which led Widener and Shannon (2014) to ask not only where but when food deserts are.
Phone-panel foot traffic lets us observe behaviour directly, at scale. This paper takes stock of what that data shows for North Carolina's grocery stores today: where people shop, how they shop, who shops where, how that has changed, and how much of the state the data actually sees. It is a state-of-affairs report, not a causal study. Where a finding is fragile, we say so.
2Data
| Source | What it gives | Coverage |
|---|---|---|
| NC grocery POI list | 4,452 grocery-type stores: name, address, coordinates, Google category, chain | Statewide, 2026 |
| Advan Weekly Patterns (via Dewey) | Weekly visits and visitors per place; visitor home and daytime block groups; visits by day and hour; dwell; distance from home | 508 weeks, Jan 2017 to Sep 2026; method change in Jan 2023 |
| SafeGraph Spend (via Dewey) | Monthly card spend, transactions, customers, ticket size, customer income bands | Jan 2019 to Sep 2025 |
| ACS 2019–2023 5-year | Block-group population, race and ethnicity, income, poverty, vehicles, SNAP | 7,111 NC block groups, 10.6M people |
| Census TIGER 2023 | Block-group boundaries, land area, internal points | Statewide |
| Google Maps reviews | Ratings and review text per store | Collected separately; not yet joined (Section 12) |
Advan's panel is a sample of mobile devices scaled to estimates of visits. Its method changed in the week of 2 January 2023, so we never compare a value from before that week with one after it. SafeGraph Spend is a separate card-transaction panel from a different provider. Where both agree, we have two independent measurements of the same behaviour.
3Methods
Matching stores to foot traffic
Each POI-list store was matched to Advan places within 250 m by name similarity (sequence match, token overlap and containment), restricted to retail categories first, with stricter name rules for gas stations and restaurants, and one-to-one assignment. 2,806 stores matched: 2,610 grade A (strong name and location), 106 grade B and 90 grade C.
A fair yardstick
Raw visits rise and fall with the size of the phone panel and with the season. So each store's weekly visits are divided by the average visits per place in the same Advan category across North Carolina that week. A falling index means a store is losing ground against similar stores, not that the panel shrank.
Neighbourhoods and place types
For every block group we sum the visitors that matched stores draw from it (latest 52 weeks, Sep 2025 to Sep 2026) and compute where those visits go: by store type, by distance, and to which stores. Stores are typed as full-service (supermarket chains, supercenters, clubs, "Supermarket" category), dollar, small grocery (independent grocers, markets), specialty (ethnic, butcher, seafood, health food) or other. Place type follows the block group's density: city 3,000 or more people per square mile of land, suburban 500 to 3,000, rural under 500. Stores take the class of the nearest block group.
Who shops
Shoppers are described by the census profile of their home block groups, weighted by visits, and compared with the people living within 3 km of the store and with the state. This describes neighbourhoods, not individuals.
4Coverage and bias
Before any finding, how much of North Carolina's grocery market does the data see? The answer depends less on city versus countryside than on chain versus independent. Chains match almost perfectly everywhere; independent and specialty grocers do not, and the gap is widest in rural areas (Figure 1).
Three checks bound the damage. First, chain-based comparisons, including dollar stores against supermarkets, are robust: if every unmatched store had the typical visits of a matched store of its type and place, the rural dollar-store share of visits would move from 21.4% to 21.1%. Second, city residents are seen less often per head than rural residents (0.65 against 1.09 grocery visitors counted per resident, relative to the state median), so we report shares and rates, not counts. Third, the store list itself is incomplete. Of 1,306 chain-branded supermarkets, supercenters and clubs in Advan's North Carolina places, 196 (15%) have no full-service store from the list within 1 km. Some are fuel centres, offices or mislocated records, so 15% is an upper bound, but the clear gaps are rural: Ingles in Robbinsville, Cashiers and Andrews, IGA in Robbins and Bladenboro, Piggly Wiggly in Oriental and Vass, Walmart in Biscoe. In Graham County the list has no full-service store at all, although the USDA SNAP retailer data lists an Ingles in Robbinsville. Distances to the nearest supermarket in rural counties are therefore upper bounds.
5Where people shop
Across the state, the people-weighted distance to the nearest full-service store is 1.5 km in cities, 2.3 km in suburbs and 7.2 km in rural areas. What people actually travel is longer: half of rural residents' grocery visits are to stores more than 9.8 km from home, and one in five is over 20 km (Table 2).
Rural North Carolina shops in town. Only 36% of rural residents' grocery visits go to stores in rural areas; 58% go to stores in suburban areas (Figure 2). City residents also spread out: more than half of their visits go to suburban stores.
County averages hide the extremes but show the geography (Figure 3). The dollar-store share is highest in the northeast and the south-central Piedmont: Gates (45%), Richmond (42%) and Montgomery (41%). Distance to a supermarket is longest in the far west and the northeast (Graham, Hyde, Gates), partly because of the list gaps above.
Dollar-store share of grocery visits
Km to nearest full-service store
6Who shops where
Ranking chains by the median income of their shoppers' home neighbourhoods gives a clear ladder (Figure 4): Harris Teeter, Whole Foods and Trader Joe's at the top, near $100,000; Food Lion and Walmart in the middle, near $67,000; dollar stores and small-town chains at the bottom. The twist is in the second marker. Small-town chains such as Fresh Foods, Piggly Wiggly, IGA and Carlie C's draw shoppers from neighbourhoods 17% to 32% richer than their own: they are the hub store for a poor town and pull in the surrounding area. Harris Teeter's shoppers come from neighbourhoods 5% poorer than its own, because it sits in the richest places.
By store type, shoppers look much like the people who live near the store. Dollar-store shoppers come from neighbourhoods with more SNAP households (15.3%) than supermarket shoppers' neighbourhoods (12.0%), and lower median incomes ($62,400 against $71,100).
7Supermarkets, dollar stores and the poverty gradient
Statewide, 67,000 people live in block groups that send half or more of their grocery visits to dollar stores. Poorer neighbourhoods use dollar stores more in every kind of place (Figure 5, left). But in cities, the gradient is not about distance to a supermarket: the poorest quarter of city neighbourhoods is 1.22 km from one, the same as the least poor (1.24 km). What differs is distance to a dollar store: 1.4 km for the poorest, 3.8 km for the least poor (Figure 5, right).
A regression across 1,091 city block groups confirms it (Figure 6; weighted by population, standardized variables, robust errors, R² = 0.54). The number of dollar stores within 2 km is the strongest predictor of dollar-store share, followed by the share of SNAP households. Once those are included, distance to a supermarket adds only a small effect, and the shares of households without a car or below poverty add nothing significant. The ratio of dollar trips to supermarket trips, which is immune to missing independent grocers, rises from 1.3 to 9.5 per 100 across city poverty quarters.
8How people shop
Visits differ by store type (Table 3). Dollar stores are quick stops: a median of 5 minutes, with 78% of visits under 5 minutes, against 8 minutes and 64% at full-service stores. Supercenters pull from furthest: half of Walmart Supercenter shoppers live more than 9.2 km away, and the median visit lasts 16 minutes, the longest of any chain.
9Change over time: COVID and after
Between 2019 and 2021, city grocery stores lost about a sixth of their footing against similar stores, while rural stores gained a third. Card spending, from a separate panel, shows the same shift (Table 4). It holds within single chains (Food Lion −19% in cities, +19% rural; Dollar General −3% and +61%) and slides smoothly with density, from +39% in the least dense tenth of store neighbourhoods to −17% in the densest (Figure 7).
Two cautions. The city share was already falling before 2020, by about a point a year; COVID made the decline roughly three times faster rather than starting it. And it has not reversed: since 2023, city stores keep losing about 1% a year against similar stores, and the city share of card spend fell again in 2024 and 2025. A popular explanation, that city stores lost commuters, finds little support: the weekday share of visits barely moved (67.7% to 68.0%), and visitors to city stores came from about as far away as before (5.7 km to 5.4 km). Moving out, working from home and new stores opening where the growth is cannot be separated with this data.
10Shocks: Hurricane Helene
Hurricane Helene reached western North Carolina on 26–27 September 2024. Comparing each week with the same dates in 2023 removes seasonality (Figure 8). Of the nine counties with the largest median drops (five or more stores), eight are in FEMA's first disaster declaration (DR-4827). Buncombe's grocery visits fell to 74% in the storm week and were back above 90% within two weeks, while Watauga stayed 24% to 43% down for a month, consistent with Appalachian State University's closure after the storm (campus foot traffic in the same data fell from about 7,200 to 2,300 visits a week). Some Asheville-area stores recorded three weeks or more with almost no visits.
11What this means for food-access research
Penchansky and Thomas (1981) described access as five dimensions, a framing widely used in food-environment research (Caspi et al., 2012). Table 5 maps what this data already measures onto each, and what is missing.
| Dimension | Measured now | Gap |
|---|---|---|
| Availability: are there stores? | Store counts by type; dollar-store density; stores residents actually use | Rural supermarkets missing from the list; independents under-matched |
| Accessibility: can people get there? | Straight-line distance; observed trip distance; share of trips over 20 km; no-car households | Road and transit travel times |
| Affordability: can people pay? | Neighbourhood income, poverty, SNAP; card ticket size; dollar-store share | Shelf prices |
| Acceptability: do people want to shop there? | Revealed use: stores bypassed for farther ones | Reviews (collected, not yet joined) |
| Accommodation: do hours and formats fit? | Visits by hour and day; late-night and early-morning shares; dwell | Posted opening hours |
Three lessons follow. First, behaviour and supply disagree in measurable ways: a supermarket 1 km away does not guarantee its use, so access scores should weigh where people go, not only what is near. Second, access is dynamic in the sense Widener and Shannon (2014) urged: it shifted for years after COVID and collapsed for weeks after Helene, so a single snapshot can mislead. Third, every result carries the data's coverage. Measures built on chains are solid; measures of the independent and ethnic grocers that matter most to some communities need other sources.
12Next steps
- Reconcile the store list with the USDA SNAP Retailer Locator and Advan's NC places, then rerun distances. This mostly affects rural counties.
- Join the reviews (ratings and text) to the store profiles to measure acceptability, and test whether low-rated nearby stores are bypassed.
- Score the five dimensions per block group, with sensitivity to the coverage limits above.
- Dollar-store openings as natural experiments: a stacked event study of how nearby neighbourhoods' shopping changes when a dollar store opens.
- Travel times by road and transit in place of straight lines.
- Public map: an interactive statewide view of these measures, with Dewey cited (a working version exists locally).
References
- Breyer, B., and Voss-Andreae, A. (2013). Food mirages: Geographic and economic barriers to healthful food access in Portland, Oregon. Health & Place, 24.
- Caspi, C. E., Sorensen, G., Subramanian, S. V., and Kawachi, I. (2012). The local food environment and diet: A systematic review. Health & Place, 18(5).
- Cooksey-Stowers, K., Schwartz, M. B., and Brownell, K. D. (2017). Food swamps predict obesity rates better than food deserts in the United States. International Journal of Environmental Research and Public Health, 14(11).
- Penchansky, R., and Thomas, J. W. (1981). The concept of access: Definition and relationship to consumer satisfaction. Medical Care, 19(2).
- Widener, M. J., and Shannon, J. (2014). When are food deserts? Integrating time into research on food accessibility. Health & Place, 30.
- USDA Economic Research Service. Food Access Research Atlas.
- USDA Food and Nutrition Service. SNAP Retailer Locator data.
- FEMA. DR-4827-NC, North Carolina Tropical Storm Helene (2024).
- Advan Weekly Patterns and SafeGraph Spend, accessed through Dewey (deweydata.io). U.S. Census Bureau, American Community Survey 2019–2023 5-year estimates; TIGER/Line 2023.
Reproduction: scripts in what-are-people-buying/scripts/ (nc_grocery_foot_traffic.py, nc_grocery_store_profiles.py, nc_grocery_neighborhoods.py, nc_grocery_trends.py, nc_access_eda.py, food_mirage_data.py, covid_groceries_data.py, nc_paper_data.py). Figures are drawn from data.json, which holds aggregates only.