How we calculate what you see
Reviewed by our clinical advisor, Anthony Ciccaglione, M.D., a practicing internal medicine physician.
Every rule on this page is enforced in the database, not in the page.
Two kinds of data, never mixed
Some numbers come from public filings: visa wage filings, public payroll, and pay ranges employers post by law. Others come from clinicians who share their own pay. We show these separately. A public filing and a self-reported salary measure different things, and blending them would hide that. Public records and self-reported pay are never blended into one figure.
Every public figure links to its filing
You do not have to trust us. Click through.
Every source has a blind spot, and we print it
Visa filings usually show base pay and lean toward international graduates and academic centers. Public payroll often leaves out practice-plan income. Each section of each page says this at the top. The full list is on the sources page.
A physician filing under $80,000 a year stays on its employer page with its link but is not part of any specialty median: at that level it is a trainee position the title rule missed, or a misfiled figure, not what an attending is paid.
Pay means nothing without workload
Anyone sharing pay must also share wRVUs, rate, threshold, withhold, and hours, or tell us their employer does not track them. Every summary can be viewed as pay per wRVU or pay per hour.
Pay per wRVU is total pay divided by the annual wRVUs the clinician reports. Pay per hour is total pay divided by the clinical hours a week the clinician reports, times 50 weeks: the 2,000-hour year that fair-market-value work in health care uses to turn annual pay into an hourly rate. A 30-hour week and a 60-hour week each get their own denominator.
We do not show small groups
If fewer than 5 clinicians have shared pay for a specialty in an area, we do not show that area. Their data counts toward the next larger area instead. With 5 to 9 we show only the median; with 10 to 19 the quartiles; with 20 or more the 10th to 90th percentiles. We never rank anything on a handful of rows.
Hiding one small area is not enough on its own, because a reader could subtract the areas we do show from the total we show. So when the rows a total holds that no shown area accounts for number fewer than five, the smallest shown area is hidden too. The same rule applies to an employer whose rows all sit in one area.
Old data drops out
Summaries use the last 18 months, counted from each row's own effective date. Older rows are shown separately and labeled with their year. After 36 months a row appears nowhere.
One count, everywhere
Every total on this site comes from the same nightly calculation. If you see two different numbers for the same thing, that is a bug. Tell us.
Verification
Every submission comes from a verified clinician. We match each contributor's NPI against the national NPPES registry: the record must carry the last name, the profession and the state they gave, and one NPI can open one account. The NPI itself is not kept, only a one-way fingerprint of it. Every row then passes the automated screen, and a row it flags waits for a person. Rows are labeled self-attested, document-verified, or payroll-verified. Where enough verified rows exist, we show a verified-only median beside the overall one.
Outliers
Every salary is screened automatically for outliers, data-entry errors, and numbers that do not add up. Anything flagged goes to a person for review before it is published. Nothing flagged is ever shown first and fixed later.
What we promise about your row
We don't ask where you work. Your pay is never shown with your name, NPI, or email. It is never shown in any group smaller than five. Before you submit, we show you exactly how your row will appear, and you can delete it at any time. We verify that you are a clinician, then keep that record separate from your pay.
This is narrower than “fully anonymous” on purpose. We promise only what the database enforces.
Money never touches the math
We earn recruiting fees through MedStaff Nationwide, which has the same owner as this site. No referral, recruiter, or revenue information is an input to any number, ranking, or filter on this site. The two systems run on separate databases with separate permissions. See how we make money.
Change log
- Reviewed by the clinical advisor, Anthony Ciccaglione, M.D., Internal Medicine, as written on this date.
- Page published with the method as built. Pay per hour uses the clinician's own weekly hours times 50 weeks.