DocDollars

The Open Payments data dictionary, in plain English

What each field in the raw federal dataset actually means.

If you want to work with the raw CMS data, these are the fields that matter and what they really contain.

Identity

covered_recipient_profile_id — CMS’s internal key for a person. This, not the name, is the correct join key. DocDollars uses it for every payment query, which is why profiles here load in seconds rather than half a minute.
covered_recipient_npi — the National Provider Identifier. Present for most but not all recipients.
covered_recipient_type — physician, non-physician practitioner, or teaching hospital.

Money

total_amount_of_payment_usdollars — the value of this record, not a running total.
number_of_payments_included_in_total_amount — one record can bundle several identical small payments.
form_of_payment_or_transfer_of_value — cash, in-kind items, stock, dividends.
nature_of_payment_or_transfer_of_value — the 19-way category. Explained here.

Payer

applicable_manufacturer_or_applicable_gpo_making_payment_name — the paying entity. Note that corporate subsidiaries report under their own names, so one parent company can appear several times.
submitting_applicable_manufacturer_or_applicable_gpo_name — who filed it, which is often the parent.

Product

name_of_drug_or_biological_or_device_or_medical_supply_1–5 — up to five products per record.
product_category_or_therapeutic_area_1–5 — the therapeutic area.
related_product_indicator — whether the payment was tied to a specific product at all.

Caveats

dispute_status_for_publication — the physician contests this record.
delay_in_publication_indicator — publication deferred, usually for research on an unapproved product.
contextual_information — free text from the reporting company. Frequently empty, occasionally revealing.
record_id — unique per row per program year. Not stable across years.

Querying it yourself

CMS exposes a public API at openpaymentsdata.cms.gov/api/1/datastore/query with no key and open CORS. Post a JSON body with a resources array and conditions. One warning from experience: filtering the 15-million-row payment tables by name takes roughly 26 seconds and is not cached. Resolve the name against the profile index first, then query by profile ID — that path returns in about two seconds.

Next

What is the Sunshine Act and Open Payments?

The law that made every industry payment to a US doctor a public record — and what it does and does not cover.