About

Why this exists

Most healthcare access maps show a confident ranking. This one shows how much of that confidence the evidence actually supports.

The problem with the usual approach

A composite index is easy to build badly. Pick some indicators, assign weights that feel about right, add them up, colour a map. The result looks authoritative and is close to unfalsifiable: nobody can tell which of the weights drove the answer, whether the indicators were measuring the same thing twice, or how much the ranking would move under a slightly different choice.

This project began as a rebuild of an earlier San Diego County student piece that did exactly that. Four things were wrong with it, and fixing them is most of what the repository now is.

What is different here

Age-standardised mortality

01

Crude death rates

A map of crude rates is substantially a map of age structure. Standardising means an older population does not by itself register as underserved.

A floating catchment with distance decay

02

Facilities counted inside a boundary

People cross ZIP lines for care, and clinics are shared between the areas around them. Counting inside a line misses both.

Three schemes, published with their agreement

03

Weights that felt about right

If the ranking depended on the weights, that would now be visible rather than hidden. It largely does not, and the number saying so is on the methodology page.

A rank interval from resampling

04

One rank per area

A single number implies a precision nobody has. The map shades the areas whose interval is too wide to place at all.

Two further datasets — the CDC’s Social Vulnerability Index and the federal shortage designations — are held out of the index entirely, so they can check the result without circularity.

What it is not

This measures potential access: whether care exists within reach of where people live. It cannot see whether people are actually able to use it. An area surrounded by clinics scores well on supply even where residents are excluded from them by cost, language, documentation status or discrimination. The barrier layer catches some of that, not all of it.

It is also not a clinical or policy instrument. It is a research tool for finding places worth looking at more closely.

Reproducing it

Every figure on this site is generated by the pipeline rather than typed in, so rerunning the pipeline updates the site. The analysis runs on open data with a tested Python codebase, and the map is a single vector tile archive served as a static file — no server, no database, no API.

A number that is missing from a page is missing because the pipeline could not compute it. Nothing here falls back to a guess.