# US coffee expansion robustness study — protocol locked before results

Protocol prepared 14 October 2026 by Locus; methods fixed before scoring, with later amendments explicitly identified below.

## Question and contribution

How much does an illustrative coffee-expansion screen change when the analyst changes the radius, category definition, existence-confidence filter or commercial priorities? Integrate the latest publicly available Overture Places with the latest released small-area ACS estimates. Report changes as model sensitivity, never predictive accuracy, unmet demand or profitable-site rankings.

## Population, fixed before looking at scores

Eight purposively selected US urban counties spanning different regions and urban forms: Travis, TX (Austin); Denver, CO; Fulton, GA (Atlanta); Mecklenburg, NC (Charlotte); Cook, IL (Chicago); Maricopa, AZ (Phoenix); King, WA (Seattle); Philadelphia, PA. County coverage is not municipal or metro coverage, and the sample is not nationally representative. Use every matching Census tract with population >= 1,000, land area > 0 and <= 5 km², positive median household income, and population/income relative margins of error <= 50%. Report all exclusions. No selection on an observed ranking or dramatic change.

Anchor each screen at the Census 2024 tract internal point, aligned to the ACS vintage, not a frontage or commercial-premises candidate. Compare local geographic competition around these fixed anchors. A tract's residential density and median household income describe that tract, NOT the circular catchment's population or spending. This is an illustrative residential-area screen, not a live site recommendation.

## Inputs and definition checks

- Resolve latest Overture release from its official STAC catalog. Retain selected original rows, exact source metadata and query. Exclude explicitly closed records; retain unknown operating status separately. Existence confidence is not open-status verification.
- ACS: 2020–2024 five-year tract estimates, with corresponding 90% margins of error. Census announced 2025 one-year publication for 29 October; do not label unreleased estimates current data. Tract GEOIDs must match the Gazetteer one-to-one; unmatched data is excluded and reported, not filled with zero.
- Narrow competitors: primary category `coffee_shop`. Expanded coffee competitors: coffee-shop primary, alternate or hierarchy membership, plus cafe primary/hierarchy. Do not silently count every bakery, restaurant or fast-food outlet as coffee competition. Report taxonomy distributions before treating these definitions as suitable.
- Distances: great-circle 1 km baseline versus 3 km sensitivity; distances are not walking/driving travel times. Download a bbox halo sufficient to cover every retained anchor's 3 km circle and check coverage mathematically.
- Baseline confidence >= 0.8; sensitivity >= 0.7 and >= 0.9. Null confidence excluded and counted. Inspect near-duplicate name/distance pairs without automatic fuzzy removal; retain an exclusion/validation ledger.

## Fixed scenarios

Use within-county percentile ranks with averaged ties and raw precision retained. A higher residential density and income are assumptions of this illustrative concept, not universal retailer preferences. Fewer mapped competitors gives higher competitive-headroom rank; it is not measured unmet demand.

Baseline score: 0.50 residential-density rank + 0.20 median-household-income rank + 0.30 inverse competitor-count rank. Compare one change at a time: 3 km radius; expanded category; confidence 0.7; confidence 0.9; demand-led weights 0.65/0.20/0.15; headroom-led weights 0.30/0.10/0.60. Include a combined expanded/3 km scenario but do not attribute its result to one factor. Score ties resolve by GEOID and the score gap at each shortlist cutoff is reported. Also report tie-inclusive results so arbitrary tie order cannot create the headline.

Within each county compare the top 10% (round up) with baseline using retention, top-set intersection and rank movement. Present county results, not only pooled extremes. A change in business priorities legitimately changes rankings; do not call that model error. Test central findings under ACS estimate-plus/minus-MOE bounds and 200 deterministic independently perturbed uniform draws within each estimate's +/-MOE range (seed 20261014), recomputing ranks in each draw. These are stress-test scenarios, not confidence intervals or modeled real-world probabilities; covariance is unknown. Count anchors whose population-minus-MOE crosses the eligibility threshold separately. Preserve the entire eligible tract table and all scenarios.

### Pre-results method-review amendment

An independent editorial/method review on 14 October, before scoring or viewing shortlist results, identified geography-vintage and correlated-bound stress-test weaknesses. Use 2024 Gazetteer instead of 2025 for ACS alignment, and add the fixed independent perturbation check above. The initial 2025 Gazetteer receipt remains historical, not silently substituted. Inspect actual extraction-query bounds to ensure all final anchors still have complete 3 km halos. No market or scoring parameters were selected on results.

### 14 October post-result implementation repair and diagnostic checks

The final audit found that the first implementation included `cafe` alternate-only matches, although the locked rule above does not. Repaired the implementation and independent validator to the original rule; preserved eleven pre-repair outputs in `before-locked-taxonomy-correction/`. Seven bubble-tea records no longer qualify; fourteen 1 km anchor counts change, but neither headline shortlist total changes. No county, weight, radius, eligibility rule or seed was changed to obtain a stronger result.

Additional diagnostics were explicitly added after the results: remove the fixed unresolved website sample; remove three flagged-format records; remove cat/dog/internet-cafe primary taxonomy; keep one deterministic highest-confidence/ID representative per nearby connected group; remove all active records in those groups; and retain source-open-only records. Groups use the original same-name <=50 m and different-name <=20 m review rules, not proven identity. The exact removal IDs, county comparisons and pooled results are in `business-category-qa.json`. Both sides are recomputed under identical treatment. These are not pre-registered hypotheses, closure/duplicate adjudications, error rates or worst-case completeness bounds. Method-scoped article preparation can finish with these stated unknowns; commercial current-venue claims cannot.
