Overview Datasets Pricing Get access Coverage Schema Methodology Trust FAQ
HomeDataSchema
Schema

Every column we sell

The complete column list for every dataset, taken from the production tables themselves rather than written up separately. Types and descriptions are what you would actually receive. Published up front, because whether this fits your model is a technical question and you should be able to answer it yourself.

key part of the primary key — read these first Every column below is in the current build. Nothing here is aspirational.
Read the key line first

Each table lists its key above the columns. Most trouble people hit with rate data comes from combining rows that should have stayed separate. In particular modifier is part of the key — averaging across modifiers gives you a number that looks fine and is wrong.

The tables

rate_intel

Specialty and infusion rates at tax-ID level, with the ghost count, the confidence interval and the federal benchmark already on every row. This is the production table, column for column.

Key vintage × payer × state × billing_code × billing_code_modifier × billing_class × tin

ColumnTypeWhat it is
vintage key TEXT Which quarterly build the row belongs to. Current is 2026-Q2-06.
payer key TEXT The insurer the rate is attributed to.
src_payer TEXT The file it came out of. Kept because one insurer’s file can carry rates for several.
state key TEXT Two-letter state.
billing_code key TEXT HCPCS or CPT.
billing_code_modifier key TEXT Part of the key. Averaging across modifiers gives a wrong number that looks right.
service_code TEXT Place-of-service grouping as the insurer filed it.
billing_class key TEXT professional or institutional.
negotiated_type TEXT negotiated, fee schedule, derived, or blank.
tin key TEXT Tax ID. This is what makes the table entity-level rather than market-level.
n_obs BIGINT Observations behind the row after filtering.
n_raw BIGINT Observations before filtering.
n_ghost BIGINT How many were ghost rates — codes that provider would never bill. Counted, not silently dropped.
n_unit_uncertain BIGINT Rows whose billing unit could not be resolved. Per-vial against per-milligram lives here.
rate_raw DOUBLE Before unit normalization.
rate_final DOUBLE After. This is the number to use.
sd_used DOUBLE Standard deviation behind the interval.
ci_low DOUBLE Lower bound of the confidence interval.
ci_high DOUBLE Upper bound. A wide interval is telling you something.
veracity TEXT measured where the rate is observed, otherwise how it was derived.
proxy_source TEXT What stood in when the rate was not directly observed.
confidence DOUBLE 0 to 1. Set your own floor; ours is high.
medicare_bench DOUBLE Medicare allowed for the same code and locality.
asp_per_unit DOUBLE CMS average sales price. Drugs only, null for procedures.
asp_plus6 DOUBLE ASP plus 6 percent, the federal drug benchmark.
ratio_vs_medicare DOUBLE The rate over the Medicare allowed amount.
ratio_vs_asp6 DOUBLE The rate over ASP+6%. Under 1 means commercial pays less than the federal benchmark.
anchor_source TEXT What the row was anchored against, usually medicare.
triangulation TEXT Whether independent sources agreed.

rate_market

Every billing code, summarised by insurer, state and billing class. Full percentile spread, hospital charges alongside, and a quality score on each row.

Key payer × state × billing_code × billing_class

ColumnTypeWhat it is
payer key TEXT The insurer.
state key TEXT Two-letter state.
billing_code key TEXT HCPCS or CPT. 353,270 distinct codes in the current build.
billing_class key TEXT professional or institutional.
rate_count BIGINT How many rates are behind the row.
mean_rate DOUBLE Arithmetic mean.
median_rate DOUBLE The middle rate.
stddev_rate DOUBLE Spread around the mean.
p10 DOUBLE 10 percent of rates fall below this.
p25 DOUBLE 25 percent fall below.
p50 DOUBLE The median again, as a percentile.
p75 DOUBLE 75 percent fall below.
p90 DOUBLE 90 percent fall below.
min_rate DOUBLE Lowest observed.
max_rate DOUBLE Highest observed.
chargemaster_median DOUBLE What hospitals list for the same code, from their published prices.
chargemaster_gross DOUBLE Gross charge before any discount.
chargemaster_hospitals BIGINT How many hospitals are behind that figure.
medicare_rate DOUBLE Medicare allowed. Currently populated for procedures, not yet for drug codes.
medicare_ratio DOUBLE The rate over Medicare.
payers_with_code BIGINT How many insurers publish anything for this code. A 1 here means no comparison exists.
cross_payer_median DOUBLE The median across every insurer, so you can place one against the market.
volume_score DOUBLE Component of the quality score — how much data sits behind it.
payer_agree_score DOUBLE Component — how closely insurers agree.
chargemaster_score DOUBLE Component — consistency against hospital charges.
medicare_score DOUBLE Component — plausibility against Medicare.
confidence_score DOUBLE 0 to 100, combining the four components above.
outlier_flag BOOLEAN Marks rows that look wrong. Shipped rather than deleted so you can see what we would have excluded.
normalized_rate DOUBLE The rate after unit correction, where one was applied.
normalization_divisor DOUBLE What it was divided by.
normalization_ref_rate DOUBLE The reference used.
normalization_method TEXT How it was corrected, e.g. asp_unit_correction for a per-vial filing.

coverage_cell

One row per drug and insurer: whether prior authorization applies, what has to be tried first, which diagnoses are covered, and where the drug may be given.

Key payer_slug × drug × lob

ColumnTypeWhat it is
payer_slug key TEXT The insurer. Joins to the rate tables.
drug key TEXT Active ingredient. Coverage rules are written at this level, not at code level.
lob key TEXT Line of business, taken from the policy and never inferred. Every row in the current build is commercial; Medicare Advantage, Medicaid and exchange are the same column and are not yet populated.
prior_auth_required BOOLEAN Whether approval is needed before the drug is given. True on 81% of rows.
preferred_products TEXT[] What the insurer wants tried first.
products JSONB Product-level detail where the policy distinguishes brands or biosimilars.
covered_dx JSONB Covered diagnoses with their ICD-10 codes and any dose ceiling, keyed by indication.
site_of_care JSONB Whether a site-of-care program applies and what it says.
citations JSONB The quote behind each field, so any value can be traced to a sentence.
source_url TEXT Direct link to the insurer’s own document.
effective_date DATE The insurer’s policy date. Present on 85% of rows.
veracity TEXT How the row was established: verified on 1,625 rows, corroborated on 798.
confidence TEXT Confidence in the extraction, high or medium. Nothing lower is shipped.
signals JSONB Supporting evidence found while reading the policy.
attested_absent TEXT[] Requirements we looked for in the policy and confirmed are not there — a step-therapy rule, a TB screen, a site-of-care program. A verified absence, not a gap. Non-empty on 1,577 of 2,423 rows.

coverage_rule

The individual rules behind each cell, each carrying the sentence it came from.

Key rule_id — one row per rule

ColumnTypeWhat it is
rule_id key TEXT Primary key. One row per rule. A single drug-and-insurer pair routinely carries many rules of the same type — one policy states twenty separate clinical prerequisites — so the other columns do not form a key and joining on them fans rows out.
payer_slug TEXT The insurer. Joins to coverage_cell and to the rate tables.
drug TEXT Active ingredient.
rule_type TEXT covered_indication, step_therapy, site_of_care, quantity_limit, reauth, exclusion and so on.
indication TEXT What the rule is about, e.g. rheumatoid_arthritis. Empty where the rule applies to the drug generally rather than to one diagnosis.
hcpcs TEXT The billing code the rule attaches to, and the join to the rate tables. Present on 43% of rules: the rest are written about the drug rather than about a code, and we do not attach a code the policy did not name. At the cell level 76% carry at least one coded rule.
value JSONB The parsed rule — ICD-10 list, dose ceilings, required prior drugs, notes.
citation_quote TEXT The exact sentence from the policy. Never reworded.
source_url TEXT Link to the document the quote came from.
effective_date DATE When the policy version took effect.

practice

One row per tax ID, resolved to a single practice name. 890,761 practices.

Key tin

ColumnTypeWhat it is
tin key TEXT Tax ID. Joins to the rate tables.
practice_name TEXT One canonical name, chosen across every spelling that appears.
city TEXT Primary location.
state TEXT Primary state.
n_states BIGINT How many states the practice operates in.
n_clinicians BIGINT How many providers bill under this tax ID.
max_payers BIGINT The most insurers any one of its providers is contracted with.
evidence BIGINT How much evidence sits behind the resolution.
is_aggregator BOOLEAN True for billing companies and management groups. Without this a biller looks like a practice.
name_consensus DOUBLE How strongly the sources agreed on the name.
name_source TEXT Where the chosen name came from.

practice_member

Which providers bill under which tax ID, and which insurers each one is contracted with. 18.6 million links.

Key tin × npi

ColumnTypeWhat it is
tin key TEXT Tax ID.
npi key TEXT National Provider Identifier.
n_payers BIGINT How many insurers this provider is contracted with under this tax ID.
payers TEXT The insurers themselves, as a list. This is the answer to which insurers a practice accepts.

See these columns with real values in them

The sample uses the production schema and real rows, so you can load it straight into your own model. It downloads directly, with no form in front of it.

Download the free sample