Two published, citable distance conventions read side by side over the same estate on the same day — so the movement in the number can be attributed to the definition rather than to the branch network.
Section 42 of the FDI Act requires a 90-day advance notice to the primary regulator. The OCC's Branch Closings manual says the notice must carry "a detailed statement of the reasons" and "statistical or other information that supports the reasons for closing the branch."
A document, due ninety days out, that must contain a statistic about the effect on a community — and no prescribed method anywhere for producing it. That is the most concrete demand in the entire study, and it is the app's brief.
The service test itself counts branches, never people: 12 CFR 25.24(d) evaluates the distribution of branches across income classes. There is no distance in it, no travel time and no population. So the honest answer to "who is out of reach?" has no official form — it has to be constructed, and labelled.
Move any one of the three and the population outside changes without a single branch opening or closing.
Every incumbent artefact publishes one number produced by one set of three choices, and shows none of them.
The CRA service test measures the distribution of branches across low-, moderate-, middle- and upper-income tracts. The unit is a branch; the denominator is a set of tracts sorted by income. Nobody is ever asked how far a person has to go.
2 / 5 / 10 miles is the Federal Reserve banking-desert research convention. 3 miles (or five driving minutes) is a compliance-vendor convention used in branch-closing analysis. Both are real, both are citable, neither is a requirement.
The agencies' annual list designates nonmetropolitan middle-income tracts on remoteness codes — 59 in California. In metropolitan California the regulator's own word is definitionally unavailable, and it is never about distance to a bank.
The published brief named CRA 12 CFR 25 · FFIEC geocoding. Both are real and both are used here — but neither supplies the line. The app therefore prints the definition it used, on every number, every time.
| Whose line | What it is | Who may move it | Is it a requirement? |
|---|---|---|---|
| The bank's line | the assessment area — whole geographies, adjustable to "only the portion… it reasonably can be expected to serve" | the bank | Reviewed for compliance — not scored |
| The regulator's line | tract income class on fixed MFI thresholds (<50 · 50–80 · 80–120 · ≥120 %), plus a remoteness-based underserved designation | the agencies, annually | Yes — but it is not about distance |
| The analyst's line | the distance standard: 2/5/10 miles, or 3 miles, or 5 driving minutes | whoever is writing the report | No regulatory source whatsoever |
The failure mode of every incumbent artefact is that it publishes one number produced by one set of three choices and shows none of them.
So the six choices in force — service points, assessment area, income class, urban/rural, and both standards — are named on the face of the app, printed beside every numeral, pushed to the URL and carried into every export. And the app never prints the word underserved as a designation without saying whose definition it is. The choices are visible and switchable, never a settings dialog — hide them and this becomes a worse version of a consulting report.
| What is produced | By whom | Denominator | Standard used |
|---|---|---|---|
| Branches, and % of branches by tract income class | every CRA tool; the exam itself | tracts | none — no distance exists in the rule |
| Lending & CD activity inside vs outside the assessment area | Kadince · RiskExec · Ncontracts | the bank's own activity | none |
| Accounts and balances at risk if a branch closes | Bancography | the bank's own customers | distance to nearest surviving branch |
| One branch's closing narrative, drafted | GeoDataVision (on Maptitude) | that branch's service area | one convention — 3 mi / 5 min |
| People in banking deserts, nationally | Fed Communities / Philadelphia Fed | everybody | one fixed standard — 2/5/10 mi |
| The population reached and not reached by this institution's estate, under more than one standard at once | — | — | Nobody |
The nearest incumbent to this deliverable is a per-branch, one-standard, human-drafted document — professionally written after management review. The nearest published number is national, fixed-standard, and about no institution in particular, built on a licensed branch data set a bank cannot reproduce inside its own perimeter. The real incumbent, as always, is a spreadsheet.
Also read and recorded as verified non-benchmarks: Climate X · XDI · Jupiter · Moody's/RMS · HazardHub · ZestyAI carry no financial-inclusion, branch-coverage or CRA surface at all. They compete for the same budget, not for the same question.
Same estate. Same day. Same held 2020 population denominator. Move only from one published standard to the other and the California coverage gap changes by 905,077 people — 79 % of the smaller reading — while not one branch opens or closes.
So the definition worth arguing about is the distance standard — and the app says so on its face rather than making a reader discover it. The other axes are on screen too, because measuring which choice does not matter is what earns the right to say which one does.
Not "1.1 million people are beyond the standard" and not a league table of the worst-covered tracts, but the count of tracts that change status when nothing changes except the line — and the population they carry.
This is the only figure that can be handed to an examiner, or read out at a community meeting, as an honest statement of what the record does and does not depend on. It also protects the institution: a coverage claim that survives both standards is a far stronger sentence in a 90-day notice than one that survives the single standard its author picked.
Four classes, never a continuous ramp. A ramp invites a reader to eyeball a threshold that is the entire subject of the app.
| beyond both standards | 220 | 714,395 | 1.81 % |
| beyond 3 mi only | 375 | 1,340,152 | 3.39 % |
| beyond 2/5/10 only | 97 | 435,075 | 1.10 % |
| within both standards | 8,437 | 37,048,601 | 93.70 % |
The reading follows the reader; the definition does not follow the reading. That asymmetry is the whole design.
Every source is ingested at build time; the app opens having made no outbound network call, and ships a No basemap (on-prem) option that leaves the perimeter untouched. Asserted from the browser's own network log.
The domain module re-derives every tract's class from the two standards on every reading, so switching a chip cannot leave a stale figure behind. The §4 control totals are asserted to reproduce exactly.
The California gap is not primarily an LMI phenomenon: 40,346 people in low-income tracts are beyond Standard A, against 433,693 in middle-income and 267,684 in upper. An app that assumed the answer would have shown the opposite.
Reading the figures: boundaries (US Census TIGERweb, 1 January 2022 vintage), the income classification (FFIEC 2026 flat file, released 9 July 2026) and the branch estate (FDIC BankFind, index locations_20260814090007) are real, published and probed. The assessment-area polygon and the SYN_* lending columns are GENERATED (seed 20260818), labelled on every screen — and neither enters any of the three numerals.
Every one of these is written into the delivered application's own README. A tool that hides its edges costs you the project it cannot finish.
Your offices with their coordinates and service types, your declared assessment area, and the standards you intend to defend. Two weeks, and this scoreboard reads your estate instead of a public register — inside your perimeter, calling nothing.
Swappable by configuration, not by code: the boundary set, the population source, the classification, and the standards themselves. The distance standard is a field, not a constant — the app renders a typology of lines, it does not ship a list of US numbers.