Methodology
How DocDollars gets its numbers, what we change, and what we refuse to do.
We store nothing
DocDollars holds no copy of the Open Payments database. Every figure on every page is fetched from the CMS Open Payments API at the moment you request the page. There is no nightly import, no snapshot, no local table. When CMS corrects a record, this site reflects the correction on the next request.
How a profile is built
A name is resolved against the CMS Covered Recipient Profile Supplement to obtain a covered_recipient_profile_id. Every payment query is then keyed on that ID. This matters for accuracy as well as speed: names collide constantly in a dataset of this size, and the profile ID is the only reliable identity key CMS provides.
Profile totals come from the CMS pre-aggregated all-years recipient table. Per-year figures come from the year-scoped aggregates. Company breakdowns and product names are computed by CMS server-side using SQL aggregation over the detail tables — we do not download rows and add them up in your browser.
What we compute ourselves
Exactly three things, all arithmetic:
- The characterisation sentence at the top of each profile, derived from the share of the total falling in each nature-of-payment category. The thresholds are published in our source and are the same for every physician.
- Rankings and percentage shares, derived from CMS totals.
- Averages, which are simple division.
The nature-of-payment code mapping
CMS’s aggregate tables use numeric category codes while its detail tables use text labels, and no public crosswalk is published. We derived the mapping empirically, by matching exact (transaction count, total amount) pairs between the two table families across program years 2019–2025 until all 19 codes resolved unambiguously. The result is in our sources page.
What we will not do
- We do not describe any payment as improper, and we do not rank physicians by “most compromised” or anything like it.
- We do not total research funding into a physician’s personal figure. Research money is shown separately and labelled as institution-directed.
- We do not hide disputed records, and we do not hide the fact that most of this data is small meals.
- We do not allow search-result pages to be indexed, so no one’s name ranks through a query string.
Corrections
DocDollars cannot edit federal data. If a record naming you is wrong, the correction has to come from CMS and the reporting company. The process is real and it works — we have written it up in a short guide, and the official entry point is cms.gov/openpayments.
If you believe this site is displaying CMS data incorrectly — as opposed to displaying incorrect CMS data — that is our problem and we want to hear about it.
Known limitations
Everything in What Open Payments does not tell you applies here in full. The short version: this dataset covers reportable transfers from manufacturers with Medicare-reimbursable products to physicians, covered practitioners and teaching hospitals. It is not a complete map of a physician’s financial life and should never be read as one.