Whataburger everywhere it would appear, against all eight schemes. The numbers under every stage are computed at load — the colour distances in OKLab, the counts from one survey block in the script — so nothing here can quietly go stale the way a typed figure does.
The dot is orange and the orange is #E98500. It is 0.043 from the
orange on the sign, which is closer than the eye resolves, and it is the only orange
that comes out equidistant from H-E-B, Buc-ee's and Shipley. Nobody else's colour
moves — that was measured too, and it buys 0.013.
The argument, the costs and the four open decisions are in PROPOSAL.md beside this file.
Orange is decided. Whataburger's dot is the big one with the
ring; the thin line under the dots is the roadtrip route, which is
var(--accent) and therefore a different colour on every scheme. All three
swatches are oranges — pick their literal #FF7A00 and watch it sit down on
H-E-B's red, then switch to Hook 'Em and watch any of them sit down on the
route line.
The first is an ordinary stop. The second is one of the eleven Texas Whataburgers that publish themselves Temporarily Closed — which is not "no hours published" and not ordinary hours either. The proposal is that it is never plotted and the chain page counts what was left out.
Southwest & Hwy 83 Whataburger
#524 · 3141 S Danville Dr · Abilene, TX 79605
Commerce & General McMullen Whataburger
#149 · 4646 W Commerce St · San Antonio, TX
Every store publishes drive thru, dining room, curbside and delivery separately. The dining room and the drive thru disagree at 114 Texas stores, so "is it open?" has two answers at one stop in seven. The pill on the card above changes with the option.
The picker and the chain cards both sort by store count, descending. Whataburger would lead every one of those lists, on every load, by a distance — which is true, and is the last open question in the proposal.
Corpus Christi, 1950. Harmon Dobson wanted a burger so big it took two hands to hold, and good enough that the first bite got you saying “what a burger.” Seventy-five years later, it’s in more Texas towns than any chain on this map.
Kerrville, 1905. The ultimate, unparalleled, truly Texas grocery stop.
345 locations · 189 towns
Card copy is hand-written and never rebuilds. This is the chosen wording, at 232 characters against 229–273 for the cards already on the page — the count beneath it is computed, as every count on a card is.
Applying the gates as they stand — five stores for a town, three on the listed side of an attribute, more than one hours pattern, an announced store rechecked inside ninety days.
A chain is not one list. verify-docs.mjs fails the build until every
one of these is there, which is the check that stops a chain being half-added —
and 404.html keeps its own copy of BRANDS, which is the one that gets
forgotten.
| Where | What lands there |
|---|---|
scripts/build.mjs | a row in SOURCES — key, label, files, refetch, cache, title rule, floor |
index.html | BRANDS (with the colour), FEATURES, FACETS, FEATURE_GROUPS, and a CHAINS card |
404.html | BRANDS again — a second copy, on purpose |
data/ | whataburger-stores.json and whataburger-coming-soon.json, the second one generated for the first time on this map |
scripts/ | fetch-whataburger.mjs and verify-whataburger.mjs — and the verify joins the gate, which is listed in four places that have to agree |
| /how-we-know/ | a provenance row, and it writes itself — provenance() reads the built page rather than a second copy of SOURCES, so it cannot drift. It has to say the records come from locations.whataburger.com, store page by store page, on a date the build knows. |
| the three markdown docs | the label named in each — and nothing anywhere counts the chains |
The freshness line on every page is the oldest fetch on the site, so a stale Whataburger fetch drags the whole site's displayed date back. That is correct behaviour and worth knowing before it happens rather than after.
Survey: every Texas store page in
locations.whataburger.com/sitemap.xml, read 30 August 2026 — 784 records
parsed, 0 failed. Nothing stamps this file and no verify reads it; if
index.html moves, this bench goes stale in silence, which is the reason to
delete it once this ships.