For agencies and teams
Run this for your condition, your state, your people
The whole application is one download and it runs on your own machine in three commands.
The rule that has to survive the fork. No model, average or interpolation produces a dollar figure anywhere in this codebase. Every number on the screen is a row of a published federal file, carrying its year, its basis and the population it describes. If you keep one thing when you adapt this, keep that.
On this page — 4 sections
Take it
This page is the procedure, not the pitch: the files you change, the command that refuses a figure that does not reproduce, and what happens when no federal file describes the people you serve.
No account, no request, nothing to sign. The archive is the tree this site is built from, minus the build output and our own credentials: app/, components/, lib/, data/, cf/functions/, cf/migrations/, scripts/, tests/, and a README that is these commands with the reasons attached.
# the whole application: source, data, migrations, tests, README
curl -sL https://waypoint-ledger.pages.dev/waypoint-ledger-source.tar.gz | tar -xz
cd waypoint-public
npm install
npm test # the suite that guards every rule below
npm run dev # http://localhost:3000
# the full stack, with the database, on your own Cloudflare account
npx wrangler d1 create waypoint-ledger # put the id in cf/wrangler.toml
npx wrangler kv namespace create LEDGER # put the id in cf/wrangler.toml
npm run db:migrate:local
npm run dev:full # http://localhost:8788The Cloudflare configuration ships with placeholders rather than our project’s identifiers, so a first run cannot point at somebody else’s deployment. Nothing in the archive talks to us: take it offline and every figure on this page still reproduces from the federal files it cites.
What you are starting from
| File | What is in it | Take it |
|---|---|---|
| data/prices.json | 274 published federal figures, 251 of them priced and addable, each with its file, year, basis, population and combination rules. Version 2026-09-09.1. | price-table.csv |
| data/state-prices.json | 5,668 figures: 52 CMS codes priced for each of the 109 Medicare payment localities in 53 states and territories, every one re-derived from CMS’s own formula. | locality-prices.csv |
| data/conditions.json | 9 conditions. 6 carry an ICD-10-CM code from the CDC/NCHS file; 3 point at a published year-ahead figure and the rest carry an explicit null, because no federal file publishes one. | /api/table |
| data/synonyms.json | Extra plain-language phrases that map to a unit of care, beyond the ones each price row already carries. This and the row synonyms are the whole matcher; there is no model behind it. | dictionary.csv |
| public/data.json | A DCAT-US v1.1 catalog describing every open file here — the metadata standard data.gov harvests — validated against the government’s own published JSON Schema. Point a harvester at it and these files appear in a catalog beside the federal files they came from. | /data.json |
| cf/migrations/0001_init.sql | The whole schema: journeys, corrections, gap reports, survey responses, interviews, the change log. One file, no ORM. | what each column holds |
Column meanings: price-dictionary.csv and locality-dictionary.csv. The data is CC0 1.0 — the federal figures are U.S. Government works and already public domain, and our arrangement of them is dedicated to the public domain too. The code is Apache-2.0. Both are files you can read, not sentences on a page: LICENSE and NOTICE, which says line by line which licence covers what.
1 · Another condition
One object in data/conditions.json, pointing at a row that already exists in the price table. No figure lives in the conditions file, so adding a condition cannot introduce a number nobody checked.
# 1. find or add the published figure, in data/prices.json
# a row needs the file it came from, the year, the population it describes
# and its basis. Nothing else may carry a dollar amount.
# 2. prove the row reproduces from the file it cites
python3 data/verify_price_table.py # exits 1 if your row does not
# 3. name the condition, in data/conditions.json
{
"id": "sickle-cell",
"label": "Sickle cell disease",
"icd10cm": "D57.1",
"icd10cm_source": "CDC/NCHS, ICD-10-CM code descriptions, FY2026",
"price_row_id": "your-new-row-id", # or null, and the product says so
"figure_kind": "condition_attributed", # or "excess" — they are not the same number
"note": "…"
}
# 4. nothing else. The panel renders whatever that row says.When there is no published figure. Set price_row_id to null. The product then says, in its own voice, that no federal source publishes an annual figure for that condition, and sends the person to the gap so the absence is counted. An absence you count is data. An absence you fill with the nearest number is a fabrication.
2 · Another state
Nothing to edit. All 109 CMS payment localities ship with the tool, so a person in any state sees their own locality’s figure and the drawer shows the three geographic indices that produced it. What you change is what you build on top: hand the API your state and it reprices every line without the interface.
# every state is already priced. To check one:
grep '^cms-99213,.*,TX-31,' public/data/locality-prices.csv
# to add a service, add a row to data/prices.json with its CPT/HCPCS code,
# then re-derive every locality figure from the CMS files:
python3 data/build_state_prices.py <dir-with-PPRRVU2026_Jul_nonQPP.csv-and-GPCI2026.csv>
node scripts/gen-locality-table.mjs # recomputes all 5,668, exits 1 on a cent of driftOne curl returns your state’s figure with the arithmetic: GET /api/table?locality=IA-00, or /api/localities/IA-00 for every figure published for one place. A locality we cannot honour is refused with a sentence, never answered with the national number.
The generator is also the audit: it recomputes every one of the 5,668 figures from the RVUs and the geographic indices on its own row and exits non-zero if a single one is off by a cent. A published number that drifts from the formula printed beside it cannot leave this repository.
3 · Another population
lib/fit.ts holds the whole rule in one function: given a published row and a person, does this figure describe them. It chooses between published figures and never computes one.
// lib/fit.ts — fitOf() is the whole rule, in one function.
// Add the coverage to COVERAGE_OPTIONS, then add its branch:
case 'tricare':
return base('REFERENCE PRICE',
'TRICARE pays its own rates and they are not in this table. '
+ 'This is the federal reference figure for the same service.');
// A population with no published figure returns NOT DESCRIBED with
// offerGap: true. That is the honest answer and it is counted at /gap,
// never filled with the nearest number.The API answers the same question as the screen, from the same module: POST /api/price with coverage and state returns the fitted figure and the verdict per line. See the API.
4 · Your own community, counted separately
The burden instrument takes a channel. Give your organisation a slug and every response through your link carries it, in the public export as well as in your own reading of it.
https://waypoint-ledger.pages.dev/survey?c=your-org-slug
# the slug is validated /^[a-z0-9-]{1,24}$/ and published as the channel
# column of /api/export/survey.csv, so your community's responses are
# separable from everyone else's — by you, and by anyone reading the export.Small cells are suppressed before anything is published. The instrument, its exact wording and every response option are in dictionary.csv, so a reviewer can read the questions without running the site.
The two commands that keep it honest
| Command | What it refuses |
|---|---|
python3 data/verify_price_table.py | Re-downloads every federal file, hashes it, and re-derives every figure. Exits 1 if a row does not reproduce from the file it cites. |
node scripts/gen-locality-table.mjs | Recomputes all 5,668 locality figures from the published RVUs and geographic indices. Exits 1 on one cent of drift, and names the row. |
npm test | Runs the rules as tests, not as prose: that no code path can produce a dollar figure, that figures on different bases are never added, that the published catalog validates against the government’s schema, and that the licence on the page is the licence in the tree. |
What we would want to know
If you stand this up, the thing worth sending back is not a thank-you. It is the corrections: which published figure your community says does not describe them, and what care never entered a claims file at all. That signal is addressed to the agency that published the number, and it travels better with more than one community behind it. Here is what one of those looks like — the provenance and the counts for a single row, in a form that needs nothing of ours to read.
Questions, or a row you think is wrong: bo@precisionfederal.com.