Draft for review, not yet in effect. Wording and source attributions are checked before launch.
Tupll Site Check for coffee shops
How the Location Index works
The score is built with machine learning, trained on thousands of real coffee shop locations. This page covers what goes in, how an address is compared, what the grade means, and where the score stops being useful.
What it is built on
We started with about 6,500 independent coffee shops across dozens of metro areas and small towns: single shops and small groups with under five locations. They sit in every kind of place: urban cores, suburbs, second cities and small towns.
For each shop we measured the neighborhood around it from public data: who lives and works nearby, what else is open nearby, how the streets are laid out, and what the local coffee market already looks like. We then trained a machine learning model on those measurements. It learned which neighborhood patterns go with customer traction that correlates with success factors. It learns nothing about the shops themselves, only about the places they are in.
It was checked on whole regions it had never seen, with nearby locations held out, so it could not simply remember what the shop down the road was doing.
Area types
A site downtown and a site in a small town are not competing for the same customers, so we never compare them. Every address is placed automatically in one of four area types, from how many people live around it and the size of the metro it sits in. You do not choose it.
| Area type | What it covers | Report drive area |
|---|---|---|
| Urban | Dense neighborhoods in and around the core of a major metro (2 million people or more) | 5 minutes |
| Suburban | The built-up rings of a major metro | 8 minutes |
| Second city | Smaller cities and their suburbs, outside the major metros | 10 minutes |
| Small town or rural | Towns and open country, where people drive further for coffee | 15 minutes |
The Location Index
The Location Index puts the address on one scale. 100 is a typical independent coffee shop location in the same area type. Above 100 is above typical, below 100 is below. It is a relative scale: it is not a count of customers or dollars.
To rank an address we score about 6,500 existing independent coffee shop locations in exactly the same way, and place your address among those of the same area type. That position is the percentile: the 59th percentile means the address scores above 59 percent of those locations.
Grades A to F
The grade follows the percentile. Each grade holds about 20 percent of the locations in every area type.
| Grade | Word | Percentile within the area type |
|---|---|---|
| A | Excellent | 80th percentile and above |
| B | Strong | 60th to under 80th |
| C | Typical | 40th to under 60th |
| D | Below typical | 20th to under 40th |
| F | Weak | Under the 20th |
A high grade gives you confidence in a site. A low grade can be just as valuable, because it arrives before a lease and a build-out are committed. Neither is a promise about how a shop will do.
Drive areas and rings
The report describes the neighborhood in two ways. Rings of 1, 2 and 3 miles are the same everywhere, so any two reports can be compared. The drive area follows the area type (5, 8, 10 or 15 minutes, as in the table above), because people in a dense city walk or drive a few minutes for coffee and people in a small town drive further.
When data is missing
Public data has gaps. A missing figure never stops a report and is never treated as zero. We fill it, in this order:
- If a source is temporarily unavailable, we use its most recent saved release and say so.
- Inputs to the model are filled exactly the way they were when the model was built.
- Figures shown in the report are estimated from the surrounding neighborhoods, then from the wider census tract, then from the typical value for that area type.
If more than a few values had to be filled, a person checks the report before it is released. If an address cannot be located at all, we refund it in full.
What it cannot tell you
- The Location Index compares locations, not businesses. It is a single relative number, and it is not a sales forecast.
- It cannot see the product, the staff, the prices, the rent, the building, the parking or the entry. Any one of those can matter more than the neighborhood.
- It describes patterns, not causes. It can say that locations like this one tend to draw customers, not that changing something nearby would change a shop's results.
- It scores every address the same way. Treat a score for an unusual site, such as a crossroads far from town or a spot inside a large facility, with more caution than one for an ordinary storefront.
- Sources describe different periods. Each section of the report states its data vintage.
Data sources and attribution
Nearly everything behind the score is public, so you can check what goes in.
| What | Source | Attribution |
|---|---|---|
| Residents | U.S. Census Bureau, 2020 Census | U.S. Census Bureau |
| Households, income, age, education, renters | Census American Community Survey, five-year estimates | U.S. Census Bureau |
| Jobs and daytime workers | Census LEHD Origin-Destination Employment Statistics (LODES) | U.S. Census Bureau, LEHD |
| Local health estimates | CDC PLACES | Centers for Disease Control and Prevention |
| Street design and walkability | EPA Smart Location Database | U.S. Environmental Protection Agency |
| Home purchases | Home Mortgage Disclosure Act data | Consumer Financial Protection Bureau |
| Road traffic | Highway Performance Monitoring System | Federal Highway Administration |
| Land cover | National Land Cover Database | U.S. Geological Survey |
| Population density, used for area type | Kontur Population | Kontur Population dataset |
| Businesses and coffee shops | Overture Maps Places | Overture Maps Foundation |
| Schools | National Center for Education Statistics | NCES |
| Locating your address | Census Geocoder; OpenStreetMap Nominatim | U.S. Census Bureau; © OpenStreetMap contributors |
| Drive areas and maps | Valhalla routing over OpenStreetMap; basemap by OpenFreeMap | © OpenStreetMap contributors; OpenFreeMap |
Data vintages are listed in each report. Exact attribution wording follows each source's terms.