Hospital negotiated rates
Every Blues-family negotiated rate for a hospital in the published pack, normalized, quality-gated, and tied back to the exact row it came from.
Already have a seat? Open it at data.soro.health
A hospital price list, read properly
First-party rates, not estimates
These are the rates the hospitals themselves put out, read at the source. Nothing is modelled, inferred, or averaged up from a sample, and no hospital is asked for anything.
Which rates the pack keeps
Rates come in a mix of dollar amounts, percentage-of-charge formulas, and free-text algorithms. The packed dataset keeps the negotiated dollar rates, packed as the maximum per plan variant. The full-fidelity export keeps everything, including the percentages and algorithms, when you need the raw picture.
Every rate citable to a row
Each rate carries the row it was read from, alongside the fetch time and the content hash of the exact bytes parsed.
What is deliberately not here
No code descriptors. CPT descriptor text belongs to the AMA and is not ours to pass on, so it never enters this platform. You bring your own descriptor source, or you work in codes.
What a row looks like
The packed artifact is one JSON document, one entry per hospital, with payers and plans held as dictionaries so a million rates do not repeat the same strings a million times.
| Field | Shape | What it is |
|---|---|---|
| meta.hospital | string | Facility name as the hospital publishes it |
| meta.locations | string[] | Reporting entity and campus names in the same file |
| meta.npis | string[] | National Provider Identifiers, the join key to payer data |
| meta.reportedOn | date | The date the hospital itself stamped on the file |
| meta.contentHash | string | SHA-256 of the exact bytes the rates were parsed from |
| meta.rowsScanned / rowsRetained | int | How much of the file was read, and how much survived |
| payers / plans / settings | string[] | Dictionaries the rate tuples index into |
| rates["DRG:470"] | tuple[] | payer index, plan index, setting index, dollar amount, source row |
Code keys are prefixed by system: DRG:, CPT:, HCPCS:, REV:. Amounts are dollars, held to the cent exactly as the hospital published them.
Flat CSV, one hospital, everything
If a packed JSON document is not what your team works in, we export a single hospital in full to CSV: every payer, every plan, every code, dollar rates and percentage and algorithm rows alike. Faithfulness is checked field by field before it ships.
Care setting is kept
Inpatient, outpatient, emergency and professional are distinct settings for the same code and the same plan, and they are priced differently. Collapsing them produces a tidier table and a wrong answer, so the setting stays on every rate.
Where the pack reaches
What we hold, and what is packed
Rate files are pulled and parsed from 4,802 hospitals. This dataset is the market that has cleared the admission gates, the payer-side cross-check, and the accuracy audit. The rest are held, not sold, because holding a file and standing behind what is in it are two different bars.
New Jersey, complete for the north and center
Every acute care hospital in North and Central New Jersey, including the Atlantic Health, Hackensack Meridian, RWJBarnabas, Virtua and Valley systems.
Everything major within about 50 miles
New York City, Long Island, the Hudson Valley, Fairfield County in Connecticut, and the Lehigh Valley in Pennsylvania. Crossing state lines matters, because a Blues plan pays an out-of-state facility through BlueCard and that rate belongs to the facility, not the plan.
How the pack grows
New facilities are added market by market, and every one is reviewed by a person before it enters the pack. Because the files are already pulled for most of the country, a new market is usually a packing job rather than a collection job. Ask for a market and we will tell you how long it takes.
Why entries and sources differ
We work from 122 sources and the pack holds 119 hospital entries, because some sources cover several campuses. The count we publish is the entries actually in the pack, not the number we attempted.
Where it is thin, we say so
Nine facilities in the pack could not be re-verified in the August audit. They are reported as unreachable rather than quietly counted as covered.
rates re-read against the live file
Our own accuracy audit, re-read at sourcematched exactly
Across 110 hospitals; the other nine could not be re-read at alldrift check each month
1st and 15th; only what changed is refreshedStart with a free sample of the pack
A real slice of the dataset, with its provenance ledger, so your team can check it against the source before anyone pays.