Home Platform Soro Data Patient portal The app (soon) Solutions For teams For patients Open it Soro Data ↗ Capabilities Bill audit Hospital rates Payer rates Security Company Pricing Resources About Contact Log in Get started
Dataset

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

What it is

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.

Shape

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.

hospital-negotiated-rates.jsonformatVersion 2
FieldShapeWhat it is
meta.hospitalstringFacility name as the hospital publishes it
meta.locationsstring[]Reporting entity and campus names in the same file
meta.npisstring[]National Provider Identifiers, the join key to payer data
meta.reportedOndateThe date the hospital itself stamped on the file
meta.contentHashstringSHA-256 of the exact bytes the rates were parsed from
meta.rowsScanned / rowsRetainedintHow much of the file was read, and how much survived
payers / plans / settingsstring[]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.

Coverage

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.

Audit sample
0

rates re-read against the live file

Our own accuracy audit, re-read at source
Match rate
0

matched exactly

Across 110 hospitals; the other nine could not be re-read at all
Refresh cadence
0×

drift check each month

1st and 15th; only what changed is refreshed

Start 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.