During the most recent rush for GPUs, I’ve seen this said multiple times on this board, on r/buildapc, r/buildapcsales, r/hardware etc…
Mostly the conversation goes something like this.
“The best way to get close to MSRP is to go to Microcenter in the morning”
“Well lucky you, but you have to realize not everyone lives close to a Microcenter”
OR
“Microcenter had 500 cards at MSRP. Everyone in line at 8am was able to get one without fighting bots and scalpers.”
“The nearest Microcenter to me is 500 miles away. What am I supposed to do?”
There were even requests to ban Microcenter posts on r/buildapcsales under the justification of “most people can’t just go to a Microcenter and buy something”.
Now, presumably, Microcenters tend to be build near population centers, but this got me to ask the question “How many people actually DO live close to a Microcenter”.
I had some free time at work today, enough to at least try to brute force an answer to this question.
Basic Assumptions:
There are 28 Microcenter stores, plus one more in Santa Clara on the way. I created a data set that contains these 29 shops, their addresses, and their lat/lon coordinates. Because this is a simple project, I didn’t bother with fancy ways to get this. I just used a Google API to find the lat/lon of every store.
The file looks like this:
store_name,address,zip,lat,lon “Tustin”,”1100 Edinger Ave, Tustin, CA 92780″,”92780″,”33.724548″,”-117.832899″ “Denver,”8000 E Quincy Ave, Denver, CO 80237″,”80237″,”39.637539″,”-104.896152″
I assume zip codes are centralized. Using https://simplemaps.com/ I downloaded a free data set that contains every zip code in the US, it’s central lat/lon coordinates, and its population estimate as of 2023. After some basic scrubbing, the file looks like this:’
zip,lat,lon,population 00601,18.18027,-66.75266 00602,18.36075,-67.17541
I ignore transportation logistics. It would be really hard to do this correcting for things like public transportation, traffic patterns, and the like.
I assume US Population demographics are uniform. This is clearly not true, but for a quick hobby dataset, assuming that age, family, and income distributions are the same across every zip code is the best I could do. Given a long enough time, we could correct for things like localities with higher incomes or populations between 15yo and 75yo. We could also further control changes in the “gamer” demographic (male adults, between the ages of 20-40, with disposable income, for example). But ain’t nobody got time fo’ that today.
Brute Force Calculations
With access to a SQL database, it’s relatively straightforward load these static files and to calculate the distance in miles between every zip code (as mentioned above, the centroid of the zip code), and every Microcenter. Luckily for me, Amazon Redshift comes prepackaged with a calculation for spherical distance in meters on a flat sphere of a certain radius, defaulting to the radius of the Earth:
https://docs.aws.amazon.com/redshift/latest/dg/ST_DistanceSphere-function.html
Because roads are not straight, and traffic can be weird, I made some assumptions.
A zip code qualifies as “close to a Microcenter” if it is within 40 spherical distance miles of a Microcenter. This is my crocodile-brained guess for “you can probably drive to Microcenter in under an hour”. This builds in a margin of error for winding roads and traffic, since a spherical distance of 40 miles might equate to 50 miles of actual road.
From here, the SQL is easy:
with zip_data as ( select *,st_point(zip_code_demo_2023.lon, zip_code_demo_2023.lat) as zip_coordinates from my_schema.zip_code_demo_2023 ), microcenter as ( select *,st_point(microcenter_locations.lon, microcenter_locations.lat) as m_coordinates from my_schema.microcenter_locations where store_name != ‘Santa Clara’ ), calculation as ( select microcenter.store_name,zip_data.*, 0.621371 * st_distancesphere(m_coordinates, zip_coordinates)/1000 as distance_miles -0.621371 is number of miles per kilometer from microcenter left join zip_data on 1=1 ), final as ( select distinct zip,population -do this to eliminate zip codes that are close to two different Microcenters from population_summary where distance_miles <= 40 ) select sum(population) from final
This yields a result of about 117M people.
So for a baseline calculation that took a couple hours, using only free data sets and a laptop, and no fancy data cleaning tools that would have taken longer to spin up, we can conclude that about 35% of all Americans live reasonably near a Microcenter. Of course, of this 35%, we know that about 18% of them are under the age of 15, and about 7% of them are over the age of 75, but as noted above, we’re assuming uniform demographic distribution.
