← The Infusion Reimbursement Index
Issue 01, v2.0 · Vintage 2026-Q2-06 · Published 2026-08-12
These are **contracted rates published in insurers' own machine-readable files — not amounts
paid on a claim.** Every figure in the report is a contracted rate unless explicitly labelled
otherwise. Nothing here describes what a practice actually collected.
Rates come from Transparency-in-Coverage machine-readable files published by 37 insurer
filings, vintage 2026-Q2-06. Each filing is mined, de-ghosted and rolled to a benchmark cube
at the grain payer × state × billing code × billing class × negotiated type.
The 37 filings are near-redundant snapshots of one corpus rather than disjoint shards: the same
cell appears in as many as 26 filings with an identical median rate to the cent and TIN counts
within 1%. Cells are therefore collapsed across filings (median of the filing medians, max
of the TIN counts), not pooled — pooling would inflate every count roughly 25×.
Per-filing reconciliation: our recomputed median is compared against that filing's own published
benchmark. All 37 reconciled at 100.0% exact across ~21M cells.
| Tier | Rule | Cells |
|---|---|---|
| PUBLISHABLE | n_tin ≥ 25, frac_ok ≥ 0.5, frac_penny < 0.2, rate within [0.5, 10]× ASP, real negotiated or fee-schedule type | 829,646 |
| PROVISIONAL | n_tin ≥ 10, rate within [0.3, 20]× ASP | 508,684 |
| SUPPRESSED | imputed (derived/per diem), thin, out-of-band, or unanchored to ASP | 2,615,117 |
Every headline figure uses PUBLISHABLE cells only. The suppressed share (66.1%) is higher
than the previous issue's 40.7% because the corpus grew 4× by adding all 37 filings, and the
added cells are disproportionately thin — publishable cells themselves rose from 328,877 to
829,646.
Tail truncation is real and matters. The publishable gate requires the rate to fall within
0.5–10× ASP, so percentiles and the underwater list are computed on a variable clipped at both
ends. Rates outside that band are not errors by definition, but we cannot distinguish a genuine
extreme contract from a unit error at that distance, so they are withheld.
Rates are expressed as a multiple of ASP (average sales price). Medicare pays ASP + 6%
by statute, i.e. 1.06×, before sequestration; after sequestration the effective figure is about
1.043×. CMS's ODACS survey puts non-340B acquisition cost at about ASP + 2.7% (1.027×).
These three lines are the benchmarks used throughout.
Reading ×ASP as a margin proxy breaks in two known cases: 340B pricing, where acquisition
cost is far below ASP, and drugs in shortage, where spot acquisition can exceed it.
Drugs are withheld from the practice-facing lookup where the ASP denominator is missing,
provisional or under $1.00, or where the code is an oral formulation — the price is real but
the ratio would not be.
four-letter suffix carried by newly licensed originators. 117 brand biologics ($13.4B of
Part B spend — Darzalex Faspro, Vabysmo, Enhertu, Padcev among them) were wrongly excluded
from the headline universe. Corrected to the CMS Q5xxx range, which is the biosimilar
convention; every hyphenated non-Q5 code in this corpus is an originator or antibody-drug
conjugate.
therapeutic one, and J0129 named the self-administered autoinjector rather than the IV code.
the highest-paying insurer in the country. On the rebuilt corpus it is 1.047× with
essentially unchanged drug coverage (733 → 728 drugs). The earlier figure was wrong. Any
v1.4 citation of it is withdrawn.
The flagship share ("drugs carrying 85% of Part B drug spend…") is computed **excluding skin
substitutes**, consistent with every other conclusion-bearing surface. Including them the figure
is 87.1% of $53.4B — the exclusion makes the headline smaller. Reference lines (ASP = 100):
56.5% of spend below 100, 85.0% below 102.7 (acquisition), 92.0% below 104.3, 94.3% below 106.
estimate (n = 77), margin = median contracted index − measured acquisition index. NADAC
refreshes monthly; the subset skews multi-source and is labeled as such.
excluded). Spend-weighted payment-limit trend; the "double squeeze" list = drugs below the
acquisition benchmark with a falling payment limit.
class, cells with ≥25 practices. Modal share is approximate (row grain includes modifiers).
pages carry per-payer tables, ASP history, and — only where measured — margin sections.
snapshot on Clearance refresh · Part B utilization annually.
Dispersion. The Same-Drug Spread was previously computed as max ÷ min across insurers in a
market. That estimator rises mechanically with the number of insurers filing — measured on this
corpus it climbs from 1.401× at 6 insurers to 1.937× at 20+, while p90/p10 stays flat
(1.256 → 1.181). Max/min therefore partly measures filing coverage rather than disagreement,
and is reported only as a labelled extremes statistic.
Carrier attribution. 119,260 publishable cells (14.4%) carry no resolvable carrier label.
They are retained in the Index and excluded from all payer-level tables.
Tested and rejected. A "shared pricing engine across nominally independent insurers" signal
did not survive removal of the drug × state main effect (residual correlation median 0.056,
p99 0.859) and is not published as a finding.
Known open questions. The site-of-care matched-pair count has not changed across a 4×
corpus expansion and is being re-derived. The preferred-vs-non-preferred steering result rests
on 19 policies and reverses sign when computed unpaired; it is reported paired, with its n, and
carries no directional claim.
A practice is paid rate × (1 − denial) × collection − acquisition − wastage − prior-auth labor.
This report publishes the first term only. No public dataset supports a drug-level denial
multiplier: CMS and KFF publish payer-level rates with no procedure-code field, and no public
days-to-pay or underpayment file exists at any grain. Administration codes (96365, 96413) are
billed separately and are not in this dataset, so a drug-line ratio is not a profitability
finding on its own.
report_data.json carries every published figure. The corpus is rebuilt by aggregating each
filing to cube grain, collapsing across filings, applying the tier rules above, and re-running
the analysis scripts. Source URLs and their checksums are listed in sources.json.
*Corrections: open an issue against the published dataset, or write to the address on the
report. Errata are recorded in the changelog on the page and in this file.*