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

Payer negotiated rates

The same contracts, read from the insurer's side. We take what Horizon BCBSNJ has agreed to pay, network by network, join it to hospitals by NPI, and compare it against what the hospitals say themselves.

Already have a seat? Open it at data.soro.health

What it is

In-network, out-of-network, and the agreement report

In-network rates, by hospital

What Horizon pays each facility, per billing code, across every current network: MGCN, PPO and TRAD, OMNIA OMT1 and OMT2, HMO and MCEX, AEPO, OEX1 and OEX2, and Indemnity. Hospitals are joined to the payer side by NPI, and 48 currently match a Horizon NPI and carry payer-side rates.

Out-of-network allowed amounts

Per billing code, the most a provider billed against the most Horizon actually allowed, split institutional and professional. This is the number that tells you what an out-of-network charge is really worth.

The agreement report

Per hospital, the hospital-published rate against the payer-published rate for the same code: how many codes overlap, the median ratio between the two, and the worst disagreements. It ships with the data rather than being something we say in a sales call.

Rebuilt every month

Payers republish on a monthly cycle, so the payer side is rebuilt on that cycle rather than left to go stale between releases.

Shape

What a row looks like

The payer side arrives as tens of gigabytes per network, far too large to hold in memory, so it is streamed and reduced to per-code aggregates as it passes.

in-network-rates-by-hospital.jsonformatVersion 1
FieldShapeWhat it is
payerstringThe publishing plan, here Horizon BCBSNJ
builtAttimestampWhen this build of the artifact was produced
hospitals[].hospitalstringFacility, matched to the hospital dataset
hospitals[].npisstring[]The NPIs the match was made on
hospitals[].codes["DRG:470"][number, int]Highest negotiated dollar amount, and how many rates backed it
out-of-network-allowed-amounts.jsonformatVersion 2
FieldShapeWhat it is
codes["CPT:70450"].institutional[number, number, int]Highest allowed, highest billed, and the count behind them
codes["CPT:70450"].professional[number, number, int]The same three, for the professional side of the claim

Payer-wide benchmark, not per facility. Amounts are dollars, held to the cent.

hospital-vs-payer-agreement-report.jsonShips with the data
Per hospitalWhat it tells you
Overlapping codesHow much of the comparison is real rather than sampled
Median ratioWhether the two publishers broadly agree
Worst disagreementsExactly which codes to look at by hand

Where the sides disagree, the report names the codes rather than averaging the problem away.

Why both sides

The hospital and the insurer publish the same contract.

When the two filings agree, the number is close to unarguable. When they do not, the gap is the finding, and the agreement report names the codes it turns on.

  • Errors do not survive both sides. A parsing mistake or a hospital's misfiled column shows up as a disagreement instead of shipping as a rate.
  • Known disagreements stay named. Case-rate structures legitimately differ between the two filings. We identify those clusters rather than quietly dropping them.
  • New hospitals inherit the check. The join is on NPI, so a facility added to the hospital dataset is picked up on the payer side without anyone editing a list.

See both sides before you decide

Ask for a sample and we will send a real slice, agreement report included, so you can see where the two publishers agree and where they do not.