Data sources
| Source | Publisher | Used for | Release / snapshot |
|---|---|---|---|
| Medicare Physician & Other Practitioners, by Provider and Service | CMS | Services, beneficiaries and amounts per provider, HCPCS code and place of service | 2024 data: release R26 (May 2026) |
| Medicare Physician & Other Practitioners, by Provider | CMS | Provider-level totals and beneficiary panel characteristics | Same release as above |
| Doctors and Clinicians National Downloadable File | CMS Provider Data Catalog | Group (organization) affiliation | Snapshot date stored with each load |
| Doctors and Clinicians Facility Affiliation file | CMS Provider Data Catalog | Hospital affiliation (NPI to hospital CCN) | Snapshot date stored with each load |
| Hospital General Information | CMS Provider Data Catalog | Hospital names, addresses, type and ownership by CCN | Snapshot date stored with each load |
| Physician Fee Schedule Relative Value File (PPRRVU) | CMS | Work RVU per HCPCS code, matched to the data year | January release of each year |
| Medicare Monthly Enrollment | CMS | Original Medicare and Medicare Advantage enrollment by county; beneficiaries per area | December figure of each data year |
| USPS ZIP Code Crosswalk Files | HUD | ZIP to county and ZIP to CBSA | File name (which carries the quarter) stored with each load |
| CBSA Delineation Files | U.S. Census Bureau | CBSA names and county membership | File name (which carries the delineation year) stored with each load |
| Connecticut county to county subdivision crosswalk; Vintage 2022 subcounty population estimates (SUB-EST2022) | U.S. Census Bureau | Placing Connecticut enrollment reported by the 8 former counties into the 9 planning regions | 2022 crosswalk; April 2020 estimates base |
| USAJOBS Historic Job Announcements API (and Search API) | U.S. Office of Personnel Management | Posted salary ranges of federal physician, physician assistant and nurse practitioner job postings (Posted pay references) | Rolling 24 months of postings; fetch date stored with each file |
| Occupational Employment and Wage Statistics (OEWS), May estimates | U.S. Bureau of Labor Statistics | Occupational wage percentiles for physicians and related roles by metro area, state and nation (Posted pay references) | May reference year of the release (May 2025 released spring 2026) |
The file behind every reference table is recorded in source_log (file name, rows, load time, and snapshot date where the source has one), so the published page lists the exact vintage in use.
All CMS, OPM (USAJOBS) and BLS sources are U.S. government works in the public domain. No patient-level data is used. CMS suppresses any provider-code combination with fewer than 11 beneficiaries before publication.
Data sources and load status
Data years published: 2020 to 2024. The tables below are read from the load log each time this page is built, so they always show the files in use.
Reference files loaded
| Source | Data year | File | Rows | Snapshot date | Loaded |
|---|---|---|---|---|---|
| Census CBSA Delineation File | All years | list1_2023.xlsx | 935 | 2026-11-02 | |
| Census Connecticut county to planning region crosswalk, population weighted | All years | ct_county_to_planning_region.csv | 19 | 2026-11-02 | |
| Doctors and Clinicians National Downloadable File | All years | DAC_NationalDownloadableFile.csv | 1,784,284 | 2026-10-02 | 2026-11-02 |
| Doctors and Clinicians Facility Affiliation file (hospital rows) | All years | Facility_Affiliation.csv | 1,933,611 | 2026-11-02 | 2026-11-02 |
| Hospital General Information | All years | Hospital_General_Information.csv | 5,419 | 2026-11-02 | 2026-11-02 |
| HUD USPS ZIP Code Crosswalk, ZIP to CBSA | All years | ZIP_CBSA_062026.xlsx | 39,484 | 2026-11-02 | |
| HUD USPS ZIP Code Crosswalk, ZIP to county | All years | ZIP_COUNTY_062026.xlsx | 39,484 | 2026-11-02 | |
| Medicare Monthly Enrollment | All years | Medicare_Monthly_Enrollment.csv | 43,375 | 2026-11-02 | |
| Physician Fee Schedule Relative Value File (PPRRVU) | 2024 | PPRRVU24_JAN.csv | 16,323 | 2026-11-02 | |
| Physician Fee Schedule Relative Value File (PPRRVU) | 2023 | PPRRVU23_JAN.csv | 15,854 | 2026-11-02 | |
| Physician Fee Schedule Relative Value File (PPRRVU) | 2022 | PPRRVU22_JAN.csv | 15,582 | 2026-11-02 | |
| Physician Fee Schedule Relative Value File (PPRRVU) | 2021 | PPRRVU21_JAN.csv | 15,331 | 2026-11-02 | |
| Physician Fee Schedule Relative Value File (PPRRVU) | 2020 | PPRRVU20_Jan.csv | 15,243 | 2026-11-02 |
Reconciliation by data year
After each load, rows read from each CMS file are compared with rows loaded, and code-level payment with the by-Provider totals. Code-level payment is expected to be lower because CMS suppresses provider-code lines under 11 beneficiaries. Once CMS's published totals for a release are entered, rows and payment are also checked against them.
2024
| Check | Expected | Loaded | Difference | Status | Run |
|---|---|---|---|---|---|
Provider and Service file: rows in file vs rows loadedPHY_R26_P05_V10_D24_Prov_Svc.csv | 9,781,673 | 9,781,673 | 0 | Matches | 2026-11-02 |
By-Provider file: rows in file vs rows loadedMUP_PHY_R26_P05_V10_D24_Prov.csv | 1,296,739 | 1,296,739 | 0 | Matches | 2026-11-02 |
| Medicare payment: code-level rows vs by-Provider totals Detail excludes CMS-suppressed provider-code lines, so it is expected to be lower. | $120,057,897,700 | $97,290,311,766 | -$22,767,585,933 (-19.0%) | Expected difference | 2026-11-02 |
| Provider and Service rows vs CMS published count | 9,781,673 | Not checked: CMS published figure not yet on file | 2026-11-02 | ||
| Medicare payment vs CMS published total | $120,057,897,700 | Not checked: CMS published figure not yet on file | 2026-11-02 |
2023
| Check | Expected | Loaded | Difference | Status | Run |
|---|---|---|---|---|---|
Provider and Service file: rows in file vs rows loadedMUP_PHY_R25_P05_V20_D23_Prov_Svc.csv | 9,660,647 | 9,660,647 | 0 | Matches | 2026-11-02 |
By-Provider file: rows in file vs rows loadedMUP_PHY_R25_P05_V20_D23_Prov.csv | 1,259,343 | 1,259,343 | 0 | Matches | 2026-11-02 |
| Medicare payment: code-level rows vs by-Provider totals Detail excludes CMS-suppressed provider-code lines, so it is expected to be lower. | $112,861,016,867 | $93,721,075,813 | -$19,139,941,053 (-17.0%) | Expected difference | 2026-11-02 |
| Provider and Service rows vs CMS published count | 9,660,647 | Not checked: CMS published figure not yet on file | 2026-11-02 | ||
| Medicare payment vs CMS published total | $112,861,016,867 | Not checked: CMS published figure not yet on file | 2026-11-02 |
2022
| Check | Expected | Loaded | Difference | Status | Run |
|---|---|---|---|---|---|
Provider and Service file: rows in file vs rows loadedMUP_PHY_R25_P05_V20_D22_Prov_Svc.csv | 9,755,427 | 9,755,427 | 0 | Matches | 2026-11-02 |
By-Provider file: rows in file vs rows loadedMUP_PHY_R25_P07_V20_D22_Prov.csv | 1,230,293 | 1,230,293 | 0 | Matches | 2026-11-02 |
| Medicare payment: code-level rows vs by-Provider totals Detail excludes CMS-suppressed provider-code lines, so it is expected to be lower. | $106,979,419,227 | $89,042,856,516 | -$17,936,562,710 (-16.8%) | Expected difference | 2026-11-02 |
| Provider and Service rows vs CMS published count | 9,755,427 | Not checked: CMS published figure not yet on file | 2026-11-02 | ||
| Medicare payment vs CMS published total | $106,979,419,227 | Not checked: CMS published figure not yet on file | 2026-11-02 |
2021
| Check | Expected | Loaded | Difference | Status | Run |
|---|---|---|---|---|---|
Provider and Service file: rows in file vs rows loadedMUP_PHY_R25_P05_V20_D21_Prov_Svc.csv | 9,886,177 | 9,886,177 | 0 | Matches | 2026-11-02 |
By-Provider file: rows in file vs rows loadedMUP_PHY_R25_P07_V20_D21_Prov.csv | 1,198,754 | 1,198,754 | 0 | Matches | 2026-11-02 |
| Medicare payment: code-level rows vs by-Provider totals Detail excludes CMS-suppressed provider-code lines, so it is expected to be lower. | $109,259,516,579 | $91,535,062,398 | -$17,724,454,181 (-16.2%) | Expected difference | 2026-11-02 |
| Provider and Service rows vs CMS published count | 9,886,177 | Not checked: CMS published figure not yet on file | 2026-11-02 | ||
| Medicare payment vs CMS published total | $109,259,516,579 | Not checked: CMS published figure not yet on file | 2026-11-02 |
2020
| Check | Expected | Loaded | Difference | Status | Run |
|---|---|---|---|---|---|
Provider and Service file: rows in file vs rows loadedMUP_PHY_R25_P05_V20_D20_Prov_Svc.csv | 9,449,361 | 9,449,361 | 0 | Matches | 2026-11-02 |
By-Provider file: rows in file vs rows loadedMUP_PHY_R25_P07_V20_D20_Prov.csv | 1,161,542 | 1,161,542 | 0 | Matches | 2026-11-02 |
| Medicare payment: code-level rows vs by-Provider totals Detail excludes CMS-suppressed provider-code lines, so it is expected to be lower. | $97,448,767,811 | $80,539,388,258 | -$16,909,379,554 (-17.4%) | Expected difference | 2026-11-02 |
| Provider and Service rows vs CMS published count | 9,449,361 | Not checked: CMS published figure not yet on file | 2026-11-02 | ||
| Medicare payment vs CMS published total | $97,448,767,811 | Not checked: CMS published figure not yet on file | 2026-11-02 |
Revealed Medicare activity (reported facts)
Per row of the Provider and Service file (one provider, one HCPCS code, one place of service, one year) [work.load_year]:
- total payment = Tot_Srvcs × Avg_Mdcr_Pymt_Amt
- total allowed = Tot_Srvcs × Avg_Mdcr_Alowd_Amt
- total standardized payment = Tot_Srvcs × Avg_Mdcr_Stdzd_Amt
Amounts are stored as whole cents, rounded once from the unrounded product.
Per provider and year [derive.build_provider_year]. Totals are taken from the by-Provider file, whose totals include services that CMS suppresses at the code level, so they are the most complete figure. If a by-Provider file was not loaded for a year, payment, allowed, standardized payment and services fall back to the sum of code-level rows and beneficiaries are not shown, since beneficiaries cannot be added up across codes.
- Medicare payment = Tot_Mdcr_Pymt_Amt: what Original Medicare paid for the provider's Part B services in the year, after deductible and coinsurance. It is paid to the billing entity (the practice, group or hospital that submits the claim), not to the physician as pay: it covers the practice's costs (staff, space, equipment, malpractice cover, drugs billed under Part B), and Medicare Advantage, Medicaid and commercial patients are not in it. So it does not show what the clinician is paid, and every page that shows a clinician's figures says so in one line next to them: "Figures are traditional Medicare payments to the billing entity. They do not show what the clinician is paid." (DECISIONS D-080)
- Allowed amount = Tot_Mdcr_Alowd_Amt: the Medicare fee-schedule amount for the services, including the beneficiary's deductible and coinsurance and any amount paid by other payers.
- Standardized payment = Tot_Mdcr_Stdzd_Amt: Medicare payment with CMS's geographic adjustments removed. It is used for comparisons across areas.
- Services = Tot_Srvcs: the number of services billed. A service count follows the HCPCS code's unit, so one drug code can count many units in one visit.
- Submitted charges = Tot_Sbmtd_Chrg: what the provider billed Medicare before the fee schedule was applied. It is a list price, not a payment, and is always labeled separately from payment, allowed amount and standardized payment.
- Reported total services (reported) = Tot_Srvcs from the by-Provider file [
provider_year.reported_total_services]. It includes lines CMS suppresses from the Provider and Service file (fewer than 11 beneficiaries). - Disclosed services used for wRVU (calculated) = Σ Tot_Srvcs over the provider's rows in the Provider and Service file [
provider_year.disclosed_services]. Disclosed ≤ reported for every provider-year; the difference is the suppressed volume. Checked on every aggregate (logged asdisclosed_over_reported): in 2024, 4 of 1,296,739 provider-years show disclosed above reported, all ambulance providers with fractional mileage units and an excess under 3 × 10⁻¹¹ services (floating-point summation), none beyond a 10⁻⁶ tolerance. Disclosed services are 80.2% of reported services in 2024 over providers with disclosed lines. - Codes with no work RVU = number of distinct HCPCS codes on the provider's code-level rows with no work RVU in that year's PPRRVU file (drugs, supplies, some labs). They contribute 0 to ffs_wrvu.
- Beneficiaries = Tot_Benes: distinct Original Medicare beneficiaries the provider billed for in the year.
- Services per beneficiary = total services ÷ total beneficiaries (both from the by-Provider file).
- Code-level coverage = Σ total payment over the provider's code-level rows ÷ Tot_Mdcr_Pymt_Amt. It is the share of the provider's Medicare payment that is visible line by line, and so the share their work RVUs are computed from. In 2024 it is about 81% overall, with a median of about 90% per provider, and much lower for specialties that bill many low-volume codes (about 45% for hematology-oncology, mostly drugs).
- Distinct codes = number of distinct HCPCS codes in the provider's code-level rows.
- Beneficiary panel: dual-eligible share = Bene_Dual_Cnt ÷ (Bene_Dual_Cnt + Bene_Ndual_Cnt); average beneficiary age = Bene_Avg_Age and average risk score = Bene_Avg_Risk_Scre, as published by CMS in the by-Provider file.
- Providers with no reportable code lines. A provider can appear in the by-Provider file while every one of their code-level lines is under the 11-beneficiary floor. They are counted as providers, with their published totals, but have no work RVUs, service mix or distinct-code count.
In the Physician Report (and the sample report), the service mix and panel measures are shown next to the median of the same measure among individual providers of the same specialty in the provider's metro and state (the 50th percentile, as defined under market statistics).
Service categories
Each HCPCS code is assigned one category, tested in this order, using the drug flag CMS published for that data year [derive.CATEGORY_SQL]:
- Drug: CMS marks the code as a drug (HCPCS_Drug_Ind = Y).
- E/M: CPT 99202–99499.
- Procedure: CPT surgery section, 10004–69990.
- Imaging: CPT 70010–79999.
- Lab: CPT 80047–89398, and proprietary laboratory analysis codes (four digits followed by U).
- Other: everything else, including anesthesia, the CPT medicine section (90281–99199), Category II and III codes and non-drug HCPCS Level II codes.
FFS work RVUs (derived from reported facts)
ffs_wrvu = Σ over the provider's disclosed code-level rows of (Tot_Srvcs × work RVU of the code for that year) [work.load_year, derive.build_provider_year]
Measure class: calculated. Label: "calculated from disclosed service lines using the physician fee schedule work RVUs for that year."
- RVU schedule year: each data year uses the January PPRRVU file of the same calendar year (2024 services with RVU24A, and so on), so a code whose work RVU changed between years uses each year's value.
- Units are Tot_Srvcs. Modifiers are not applied: the work RVU is the base-code value (no modifier row).
- Codes with no work RVU (drugs, supplies, most labs, codes not in the file, codes with work RVU 0) contribute 0, which reflects that they carry no physician work. Codes with no work RVU (count) = number of distinct disclosed HCPCS codes of the provider in the year whose work RVU is missing or 0 [
provider_year.n_codes_no_wrvu]; the Physician Report shows it. - In a provider's code table, "work RVU each" is that per-service value and "work RVUs" is services × work RVU for the line.
FFS work RVUs cover Original Medicare fee-for-service only, and only the code lines CMS publishes (see reported and disclosed services), so they are a floor on a provider's total work.
Estimated total work RVUs (model)
estimated total wRVUs = ffs_wrvu ÷ FFS share of the provider's county ÷ Medicare share of the specialty's work [derive.build_provider_model]
Measure class: modeled. Aggregate level only (DECISIONS D-070): the per-provider value is computed only inside the statement that builds the specialty × metro, specialty × state and national percentiles in specialty_geo_year_stats [derive.provider_model_sql] and is never stored. A cell gets modeled percentiles only when at least 20 of its providers have a modeled value (derive.MIN_MODELED_CELL); a smaller cell's percentiles would be those named providers' own figures, so they are left empty (the web applies the same floor to n_providers). Cells with modeled percentiles: 2024 metro 5,619 of 40,150 (26,225 before the floor), state 1,934 of 4,436, national 63 of 103; 2020-2023 metro, state and national together about 7,300 a year (about 29,000 before). No estimated figure is stored or shown for a named provider or organization.
- Anesthesia work not measured. Anesthesia services are paid on base and time units, which carry no work RVU in the PPRRVU file, so FFS work RVUs do not measure the work of anesthesia provider types: Anesthesiology, Certified Registered Nurse Anesthetist (CRNA), Anesthesiology Assistant and Dental Anesthesiology. For these types an FFS wRVU of 0 is shown as "not measured", a nonzero value counts only their other (non-anesthesia) services and is labeled so, and no estimated total wRVU is shown.
This is an estimate, not a reported figure, and not an earnings figure. It assumes the provider's Medicare Advantage and non-Medicare work has the same intensity as their Original Medicare work.
Geography
- A ZIP code is assigned to the county and the CBSA holding the largest share of its residential addresses (HUD RES_RATIO). ZIP codes with no residential addresses use the share of all addresses (TOT_RATIO). Ties go to the lower code [
work.load_geo]. - "Metro" means a Core Based Statistical Area (metropolitan or micropolitan). Providers in ZIP codes outside any CBSA are grouped into one non-metro area per state.
- A provider's location is the practice address on their Medicare claims record.
- Connecticut. In 2022 the Census Bureau replaced Connecticut's 8 counties (FIPS 09001-09015) with 9 planning regions (09110-09190) as county equivalents. The ZIP crosswalk and the CBSA delineation use the planning regions for every data year, and CMS enrollment does from 2022, but CMS reports earlier years by the 8 former counties. So that every year uses the same areas, enrollment for those years is moved onto the planning regions before FFS share or beneficiary counts are computed [
work.load_enrollment]: - weight(county → region) = 2020 population of the county's towns that lie in the region ÷ 2020 population of the county. Towns nest in both a former county and a planning region (Census crosswalk); populations are the Census April 2020 estimates base [
etl/reference/geo/ct_county_to_planning_region.csv]. - region count = Σ over former counties of (county count × weight), rounded once to a whole beneficiary, separately for total, Original Medicare and Medicare Advantage enrollment. If any contributing county count is suppressed, the region's count is not computed.
- FFS share of the region = its Original Medicare count ÷ (Original Medicare + Medicare Advantage count), as for any county.
Market statistics
Computed per specialty (provider type on claims) and area (national, state, metro), for individual providers only (entity code I) [derive.build_specialty_stats]:
- Providers = individual providers of the specialty whose practice address is in the area, including those with no reportable code lines.
- Percentiles (10th, 25th, 50th, 75th, 90th, 95th) of Medicare payment, standardized payment, ffs_wrvu, estimated total wRVUs and beneficiaries. The median is the 50th percentile; the 25th and 75th percentiles bound the middle half of providers. Each percentile covers the providers that have the measure: work RVU percentiles exclude providers with no reportable code lines. Percentiles use linear interpolation between ranked values: for n values sorted ascending and percentile p, position h = (n − 1) × p; the result is value[⌊h⌋] + (h − ⌊h⌋) × (value[⌊h⌋ + 1] − value[⌊h⌋]).
- Percentile band: the band (below the 10th percentile, 10th–25th, 25th–50th, 50th–75th, 75th–90th, 90th–95th, 95th percentile and above) that contains the provider's own percentile among peers (see rank within peers), so a band and a percentile shown together always agree. A percentile equal to an edge falls in the band above it.
- Providers per 10,000 beneficiaries = number of providers ÷ (Medicare beneficiaries in the area ÷ 10,000). Beneficiaries are total Medicare enrollment (Original Medicare and Medicare Advantage), December of the data year. Metro totals add up the CBSA's counties; non-metro totals add up the state's counties outside any CBSA.
- Year-over-year change = 100 × (this year − prior year) ÷ prior year, for provider count, median payment and median ffs_wrvu. Median payment change is not shown when the two years' payment totals come from different bases (by-Provider totals in one year, sums of code-level rows in the other). An area the specialty has left still gets a row for the year, with 0 providers and its exits. The same formula gives the payment change of a code, a category or an area total from one year to the next.
- Change in providers = 100 × (providers in the last year shown − providers in the first year shown) ÷ providers in the first year shown, over at most five years. The page names both years.
- Metro and micro areas (home page) = number of CBSAs with at least one individual provider whose practice ZIP code falls in them in the year.
- Entrants and exits: entrants = providers in the specialty and area this year who were not in the same specialty and area the prior year. Exits = the reverse. A provider who moves or changes specialty on claims counts as an exit from one and an entrant to the other. The first loaded year has no entrants or exits.
Metro and state pages list every specialty in the area with these statistics. Summary figures such as the largest specialty or the highest median are the specialty with the largest value of that statistic in the area and year.
- Area percentile. In the Market Comparison for a specialty in a state or metro, a headline figure's percentile places the area among the areas of the same level (states, or metro and non-metro areas) with individual providers of the specialty in the year: 100 × (number of those areas whose value is at or below this area's) ÷ (number of those areas with a value). Payment is ranked on median standardized payment, so CMS geographic adjustments do not move an area up or down; the label says "on standardized payment". For the national market the percentile places the specialty among all specialties nationally. An area percentile compares areas (or specialties), not clinicians: it is written as an ordinal percentile with the number of areas compared ("77th percentile among 436 areas"), never as a rank band, and it says nothing about any one provider's standing. As with ranks, no percentile is given among fewer than 20 areas (or specialties); the number compared is shown instead (D-095).
- States. State tables and state ranks cover the 50 states, the District of Columbia and the territories (Puerto Rico, U.S. Virgin Islands, Guam, American Samoa, Northern Mariana Islands). Practice addresses with armed-forces codes (AA, AE, AP) or unknown codes (XX, ZZ) count in national figures but are not listed or ranked as states.
- Distribution chart. The histogram of a measure in the Market Comparison (and the physician's peer distribution in the Physician Report) runs from 0 to a cap of about 1.25 × the area's 95th percentile, rounded up to a round number, in equal-width bins. Values at or above the cap are pooled in one last bar, labeled "≥ cap" with its provider count and largest value. The chart covers the providers who have the measure, so its count can be lower than the provider count: providers whose code lines are all under the 11-beneficiary floor have no work RVUs.
Code statistics
Per HCPCS code and area, all providers including organizations, with each provider placed in an area by their practice address [derive.build_code_stats]:
- Billers = number of providers with at least one published line for the code.
- Total payment, total standardized payment and total services = sums over those lines.
- Median and 95th percentile of services per biller, with each provider's services summed across place of service, using the percentile method above.
On a code page (nationally or in one state; the per-specialty breakdown and top billers are precomputed per code, area and year when the year is aggregated [derive.build_code_detail, tables code_specialty_year_stats and code_top_billers]):
- Each provider's lines for the code (one per place of service) are combined: services and payment are summed, beneficiaries are the larger line's. A provider is placed in a state by their practice address for the year; a provider with no specialty on file counts under "Unknown".
- Top billers lists the 100 largest billers nationally and the 50 largest in a state, by Medicare payment for the code (ties broken by NPI).
- In the top billers list, beneficiaries on the code are the provider's Tot_Benes on the code (the larger line when billed in both settings), services per beneficiary on the code = the provider's services on the code ÷ those beneficiaries, and share of payment = the provider's payment on the code ÷ the code's total payment in the area. The rank shown next to each clinician is their overall Medicare work RVU rank among same-specialty peers (see "Rank within peers"), not a rank on the code.
- On the code index, codes billed = distinct codes with at least one published provider line in the year; a code's or category's share of payment = its payment ÷ the payment on all codes (or, inside a category, on the category's codes).
- Top billers are ranked by Medicare payment for the code; their share = 100 × the provider's payment for the code ÷ the code's total payment in the area. Services per beneficiary for one code = services ÷ beneficiaries; for a provider who billed the code in both office and facility settings, beneficiaries are the larger of the two lines, since CMS does not publish a de-duplicated count.
In a Market Comparison's code breakdown of one clinician and year (D-176), each row is one of the clinician's published lines (one code, one place of service): Medicare payment per service = the line's Medicare payment ÷ its services (Avg_Mdcr_Pymt_Amt, recomputed from the stored total); work RVUs = services × the code's work RVU in that year's fee schedule (0 for a code without one); share of payment = the line's payment ÷ the payment on all of the clinician's published lines that year (so the shares add to 100%, and they cover the code-level part of the payment; see code-level coverage). The summary's split adds the lines by service category (drugs by the CMS drug flag), with imaging, lab and other services together. The Market Comparison's ranked list orders every individual clinician of the specialty in the market by Medicare payment or Medicare work RVUs; a clinician's position = 1 + the number with a higher value (equal values share a position), and the rank shown beside it is the rank rule's for the same measure (see "Rank within peers"), which equals the position whenever the market has at least 20 peers.
In a code's year table, the payment change is the year-over-year change above; the first published year has no prior year and reads "first year in data".
Small cells on code pages (D-148): a code, state, metro or specialty with fewer than 11 billers in a year shows its count of billers only. Its payment, services and services per biller are not shown, it is left out of the tables ordered by payment (a note gives how many were left out), and it adds no point to a payment trend or year-over-year change, because an aggregate over so few providers is close to one provider's own figures. The threshold is the CMS small-cell convention. Complementary cells are left out too: when the rows left out of a table hold fewer than 11 billers together (counting unlisted state codes such as XX), or the table's total minus its listed rows covers fewer than 11, the smallest listed rows are left out as well, so no subtraction (national total minus the listed states, a code's total minus the listed specialties, a trend year's total minus the listed areas) isolates fewer than 11 billers. A state whose own figures are left out this way shows counts only in its specialty breakdown. The top billers list is a Pro figure and is not shown on the site (D-100).
On the code index, a code's share of all codes (or of its category) = the code's total payment ÷ total payment over all codes (or the category's codes) in the year. Category totals add up the codes in each service category. These sums cover published code-level lines only, so they are lower than by-Provider totals (see code-level coverage).
Group statistics
Per group (organization PAC ID) and activity year, one row per NPI per group, using the Doctors and Clinicians snapshot named with the figures (snapshot_date, shown next to the activity year) [derive.build_group_stats]. Organization pages describe "clinicians affiliated with" the organization; no figure is the organization's revenue, billing or production, and nothing is summed across clinicians (DECISIONS D-073).
- Clinicians found in data = members of the group in the Doctors and Clinicians file who appear in the Medicare data for the year (all clinician types), each counted once however many rows the file has for them. Physicians = those whose provider type is an MD/DO specialty. Groups are ranked by physician count.
- Specialties = number of distinct provider types among those members; clinicians by specialty = members per provider type (
group_specialty_year_stats). - Per-clinician medians and percentiles: median, 25th and 75th percentile of members' Medicare payment and of members' ffs_wrvu, with the percentile method under market statistics. FFS wRVU figures leave out anesthesia provider types (not measured);
n_with_ffs_wrvuis the number of members they cover. The same medians are computed per group and specialty. - Clinicians with other affiliations = members who are also affiliated with at least one other organization that has a page: another group in the same snapshot, or a hospital (see hospital and city pages).
- Main state and metro = the state and metro most of its members practice in.
- Practice locations: for each city or county of the group's listed addresses (Doctors and Clinicians), clinicians listed at the location = distinct members listed with the group at an address there, and ZIP codes = distinct ZIP codes of those addresses. A member listed at several locations is counted at each.
- Peer context: next to the group's per-specialty medians, the median of all clinicians of the same specialty in the group's main metro (or state), from the market statistics, for comparison, in the group's report view. Hospital report views show the same against the hospital's metro (or state), and the city median of all clinicians practicing in the hospital's city.
- Rank among specialty: each member's FFS wRVU rank as defined under rank within peers (
provider_rank_year: the same level, peer count, percentile and band as in the Physician Report). - Other affiliations per member = other groups the member is listed with in the latest snapshot plus hospitals with a page; shown as "also affiliated with k other organizations". Affiliations removed by a correction (
affiliation_exclusion) are left out of member lists. - No group-among-groups percentile is shown: a percentile or rank renders only for clinicians, through the rank rule (D-072).
On a market page, a group is listed for a provider only if the Doctors and Clinicians file shows the provider practicing with that group at an address in that state or metro; the group's figure there is the median ffs_wrvu of its members in the specialty and area.
Hospital and city pages
Built for each data year from individual providers (entity code I) [work.load_hospitals, derive.build_provider_rank, derive.build_place_stats]:
- Hospital affiliation: the CMS Doctors and Clinicians Facility Affiliation file lists each clinician's NPI with the CMS Certification Number (CCN) of facilities they are affiliated with. Only rows whose facility type is "Hospital" are used; home health agencies, hospices, nursing homes, dialysis facilities, inpatient rehabilitation facilities and long-term care hospitals are left out. Hospital name, address, type and ownership come from the CMS Hospital General Information file, matched on CCN; a CCN that file does not list (for example a closed or merged hospital) gets no hospital page. One snapshot is used, and it is applied to the data year, since CMS does not publish affiliation history. A clinician listed with several hospitals is counted at each, with their whole Medicare Part B activity, not only work done at that hospital.
- City: a clinician's city is the city and state of the practice address on their Medicare claims record for the year. City spellings that give the same URL form (lower case, accents removed, "&" read as "and", anything other than letters and digits treated as a separator) are one city, so "Winston-Salem", "Winston Salem" and "Winston - Salem" are combined. The ZIP code is not used to assign the city.
- Hospital location: a hospital is placed in a metro area by the ZIP code of its address, using the same ZIP to CBSA assignment as providers (see geography).
- Percentile, rank and band in specialty: each clinician's FFS wRVU rank as defined under rank within peers (first of metro, state, national with at least 20 peers), precomputed per provider-year in
provider_rank_yearwith the level, area, peer count, percentile, rank and band; this is the same figure as the Physician Report's. Clinicians with no disclosed code lines, anesthesia provider types and clinicians without 20 peers at any level are listed without one. - Affiliated clinicians billing Medicare = clinicians listed with the hospital who appear in the Medicare data for the year; listed = all clinicians the affiliation file lists with it. Clinicians billing Medicare (city) = individual providers whose practice address is in the city. Physicians = those whose provider type is an MD/DO specialty. Specialties = number of distinct provider types among them.
- No median of percentiles is computed: within one place the clinicians' percentiles come from different levels (metro, state, national), so their median has no single peer definition. Median FFS wRVU per clinician and median Medicare payment per clinician, with the 25th and 75th percentiles of both = over the clinicians listed, with the percentile method above (FFS wRVU leaves out anesthesia types). Nothing is summed (D-073). A hospital's clinicians with other affiliations = its clinicians in the data who are also affiliated with another hospital that has a page or with a group; the hospital affiliation snapshot date is stored with the figures (
hospital_year_stats.snapshot_date). Each clinician counts once per hospital. City pages need no such count: each clinician has one practice location on claims per year. - No hospital-among-hospitals or city-among-cities percentile or size rank is shown (D-072, D-073).
- On the free city, hospital, group and specialty x market pages the clinicians are listed by name (last name, first name, then NPI), 100 per page, with their specialty and city, and a specialty filter where offered; no figure, rank or figure-based order is shown there (D-146). The figures, ranks and the orders by rank, FFS wRVU, Medicare payment or beneficiaries are in the report views of the products that cover them; there, clinicians whose page is under review go after everyone else in every order but name.
- Search matches names, NPIs, codes and places; providers are ordered by how well the name matches and then alphabetically, never by a payment or work RVU figure (D-145).
Rank within peers
Measure class: calculated. One rule, used by every page through one component (RankBadge) and by the precomputed list tables (DECISIONS D-072) [derive.build_provider_peer, derive.build_provider_rank]:
- Cohort: individual providers (entity code I) of the same provider type on claims, same year, with at least one disclosed service line in the year. A provider whose lines are all suppressed is in no cohort and has no rank. No adjustment is made for part-year or low-volume activity; the Physician Report shows the years present next to the rank.
- Peers at a level = cohort members in the provider's metro (CBSA, or the state's non-metro area, labeled "<state> non-metro area"), state, or the nation, who have a value for the measure. Measures: ffs_wrvu (unless stated), Medicare payment, beneficiaries, services per beneficiary. Anesthesia provider types get no ffs_wrvu rank (not measured).
- Level shown = the first of metro, state, national with at least 20 peers (MIN_RANK_COHORT); with none, no rank or percentile is shown. The label says which level is shown.
- Percentile = (number of peers with a value at or below the provider's, the provider included) ÷ (number of peers), shown as an ordinal ("87th percentile"). The highest provider is at the 100th percentile.
- Rank = 1 + peers − (peers at or below), so rank 1 is the highest and tied providers share a rank.
- Band = the interval of edges 0.10, 0.25, 0.50, 0.75, 0.90, 0.95 containing the percentile, closed on the left: below the 10th percentile, 10th–25th, 25th–50th, 50th–75th, 75th–90th, 90th–95th, 95th percentile and above.
- Every rank is shown with the metric, the peer definition (same provider type at that level), the area name, the service year and the number of peers.
Both counts (peers with a value, and peers at or below the provider's value) are stored for every provider-year and level (provider_peer_year), and the chosen FFS wRVU level, percentile, rank and band per provider-year (provider_rank_year) for list pages. In 2024, of 1,235,757 individual providers, 1,071,565 have an FFS wRVU rank: 933,784 at metro level, 127,953 at state level and 9,828 nationally; 88,273 have no disclosed line, 75,871 are anesthesia types and 48 have fewer than 20 peers nationally.
Rank badge
Every percentile, rank and band in a report (the Physician Report, the Market Comparison, the views of the earlier products and the fictional sample report) and in report exports is shown by one component with one rule; free pages and Open Graph images show none [web/src/lib/rank.ts, provider_rank_year]. The counts come from provider_peer_year: for each provider-year, metric and level, n = peers with a value and le = peers at or below the provider's value (self included). Peers are individual providers (entity code I) of the same provider_type with at least one disclosed service line in the year.
- Minimum cohort: no percentile, rank or band at a geography with fewer than 20 peers. The level shown is the first of metro (the provider's metro, or the non-metro area of the state), state and national with at least 20 peers, and the badge says which level is shown and why a narrower one was not used ("Urban Honolulu metro has 14 peers, fewer than 20"). With fewer than 20 peers at every level the badge says "not ranked" and gives the counts.
- Percentile = le ÷ n, shown as the ordinal percentile ⌊100 × le ÷ n⌋ ("64th percentile"; rounded down, so the percentile shown always lies inside its band; a value under 1 is shown as "below the 1st percentile"). Rank = 1 + n − le: 1 is the highest and tied providers share a rank.
- Band: the band that contains the percentile, with edges at 10, 25, 50, 75, 90 and 95: below the 10th percentile, 10th–25th, 25th–50th, 50th–75th, 75th–90th, 90th–95th, 95th percentile and above. A percentile equal to an edge falls in the band above it. The band and the percentile are computed from the same le and n, so they always agree.
- The badge always shows, together: the metric (Medicare work RVUs unless stated), the peer definition (same specialty), the geography name and level, the service year and n peers. Anesthesia provider types get no work RVU rank (see anesthesia work not measured).
- No adjustment for part-year or low-volume activity. A provider who billed for part of the year, or very little, is ranked on what they billed. The Physician Report shows the years present in the data next to the rank.
The Physician Report's strip, its peer table (Medicare payment, beneficiaries and services per beneficiary as well as work RVUs) and peer distribution, the report compare view's columns, and every ranked list in a report (the Market Comparison's cohort table and the earlier products' city, hospital and group report views) use the same rule; lists read it from provider_rank_year and show the metric, year and peer definition in the column header. A year without provider_peer_year rows is counted at request time over the same cohort (at least one disclosed line; anesthesia types left out of work RVUs), so every year of a page uses one peer definition. The peer distribution chart uses the metro, or the state when the metro has fewer than 3 peers.
Offer calculator
The calculator applies the user's own offer terms to market work RVU volumes and shows the result as a scenario (measure class: modeled; word "scenario"). Terms are a conversion factor in dollars per wRVU (CF), and optionally a base salary and a wRVU threshold:
- compensation = base + max(0, wRVU − threshold) × CF, where a missing base or threshold counts as 0;
- with no base and no threshold this is compensation = wRVU × CF.
Volumes. The terms are applied to the 25th, 50th and 75th percentile of Medicare work RVUs (calculated, see FFS work RVUs) among the specialty's providers in the chosen area, grossed up under two assumptions the page shows and lets the user edit [web/src/lib/offer.ts]:
- scenario wRVU = Medicare work RVUs at the percentile ÷ Original Medicare share ÷ Medicare share of the specialty's work.
- Low, central and high cases. Central uses the two shares as set (the defaults unless edited). Low adds 5 percentage points to both shares (more of the work is already counted in Medicare, so fewer work RVUs are added for other payers); high subtracts 5 points from both. Shares are clamped to the accepted ranges. Every figure is shown as the low-to-high range with the central value. The 5-point step (D-123) is a stated sensitivity band, not a statistical interval. It is chosen to cover the two things that move the defaults: sampling error, since it is more than one and a half standard errors of every NAMCS share behind a default that produces a scenario (standard errors 0.010 to 0.029), and time, since it is about two years of change in the national Original Medicare share as Medicare Advantage grows (53.6% in December 2022, 49.5% in December 2024), while the Medicare share figures date from 2010 to 2022. One step for both shares keeps the band readable as "both shares 5 points higher or lower"; moving both in the same direction gives the widest range the two assumptions produce at that step.
- Minimum cohort. A scenario needs at least 20 providers of the specialty in the area (as for every modeled cell). A smaller metro falls back to its state, then to the nation, and the page names the area used; the Original Medicare share then is that area's.
Nothing is priced per physician (D-070). A chosen target group shows only its observed median Medicare work RVUs for the specialty (all its clinicians with work RVUs when it has none of the specialty) next to the market's observed median, with the sentence "Observed Medicare work RVUs. Total production depends on payer mix, which this data does not show."
The scenario figures, the target group's figure and the market's observed median are part of the Market Comparison for that market (holders of an earlier Market Report for it, a 30-day pass or 12-month access keep them; a state or national calculator is covered only by those passes). The inputs and the defaults with their sources stay free (DECISIONS D-133 Q1, Q13).
The results are what the stated terms would pay at those volumes under the stated assumptions. They are not reported pay, and they assume the specialty's Medicare Advantage and non-Medicare work has the same intensity per patient as its Original Medicare work.
Offer evaluator
The evaluator turns a user's own offer and workload into a scenario (measure class: modeled; word "scenario" or "estimated") [etl/pbi_etl/encounters.py, web/src/lib/offerEval.ts]. Nothing is computed or shown per physician (D-070); the inputs are not stored.
Work RVUs per encounter (table specialty_encounter_wrvu). For each individual clinician (entity code I) and data year, from the Provider & Service lines:
- Settings are visit-code families, not the CMS place of service (which only says facility or non-facility rate: "facility" lumps inpatient rounds with hospital outpatient clinic visits and nursing facility visits).
- Office and outpatient: 99202-99205, 99211-99215, office consults 99241-99245, wherever billed, so visits in hospital outpatient clinics are included.
- Hospital: inpatient and observation care 99217-99239 (99217-99220 and 99224-99226 were deleted in 2023 and folded into 99221-99239; listed for 2020-2022), inpatient consults 99251-99255, emergency department 99281-99285, critical care 99291.
- Nursing facility and home: nursing facility 99304-99318, domiciliary or rest home 99324-99337 (deleted in 2023), home or residence 99341-99350.
- Encounters = Σ services on the setting's encounter codes. CMS counts services, not visits: each E/M visit code is taken as one patient encounter (one is billed per patient per day; 99291 once per date).
- E/M work per encounter (the default) = Σ services × work RVU over the setting's encounter codes and their E/M add-ons (99292; prolonged care 99354-99357, 99415-99418, G0316-G0318; G2211, G2212) ÷ encounters.
- Other work per encounter (optional add-on) = Σ work RVUs on every other line (procedures, test and imaging interpretations, care management, 99358-99359 and anything else with a work RVU) ÷ all encounters.
- Per specialty x area x setting: the 25th percentile, median and 75th percentile across the clinicians with encounters in the setting (linear interpolation). A cell needs at least 20 clinicians; the page uses the metro (or non-metro area), else the state, else the nation, and names the area used.
- Not applicable: anesthesia types, radiology, nuclear medicine, radiation oncology, pathology, and therapy, testing, counseling and dietitian clinicians (a visit is not their unit of work), and any specialty whose national E/M work share is under 60%.
Scenario.
- encounters a year = patients per day (or shift) × days (or shifts) a week × weeks a year.
- work RVUs per encounter = Σ over settings (share of patients in the setting × the setting's value), at the 25th percentile (low case), median and 75th percentile (high case); plus the other work per encounter at the same percentile when the user ticks the add-on. A mix uses each setting's own percentile, which is not the percentile of a blended clinician.
- work RVUs a year = encounters a year × work RVUs per encounter.
- total pay = salary + max(0, work RVUs − threshold) × bonus $ per wRVU (no bonus: the salary; a bonus with no threshold applies to every wRVU).
- pay per estimated wRVU = total pay ÷ work RVUs; per patient = total pay ÷ encounters; per day or shift = total pay ÷ (days or shifts a week × weeks).
- patients a day (or shift) to reach the threshold = threshold ÷ (work RVUs per encounter × days or shifts a week × weeks).
- Position in the market's work distribution: the median case's work RVUs a year placed among the stored estimated total work RVU percentiles (10th, 25th, 50th, 75th, 90th, 95th) of the specialty in the area (see Estimated total work RVUs; the same figures the Market Comparison shows, empty below 20 clinicians with an estimate, same fallback), linear between cut points, rounded to 5, or "below the 10th" / "above the 95th percentile". The distribution counts all billed work while the default estimate counts E/M work only, so without the procedure add-on the position is understated by roughly the specialty's non-E/M share of work; the page says so and names the national E/M share. The Medicare share of work behind that estimate is named with its basis and data years where it is shown.
- Benchmark: an attributed survey median of $ per wRVU, typed in from the published source into
etl/reference/benchmarks.csv(specialty, metriccomp_per_wrvu_median, value, source, edition, https URL; every field required). It ships empty; nothing is shown without a row.
Limits. CMS service counts are not encounters (two codes on one visit, or a visit not billed, are not seen). The Original Medicare code mix is applied to every patient: if Medicare patients are coded at higher levels than younger patients the estimate is high. Unbilled work (call, teaching, administration, global-period post-operative visits) is not counted. Work RVUs are the base-code values (modifiers are not published). The distribution it is placed in divides each clinician by the Original Medicare share of their practice county; the open item from the handoff evaluation (one stored "typical all-payer work" formula on a pooled metro share, shared with the offer calculator) is not done yet, so the calculator's central figures can differ from these cut points (D-174, D-177).
Posted pay references
Two public reference points shown next to the offer calculator and evaluator inside the Market Comparison, when the site's administrators have switched them on. Neither is ClaimLight's estimate and neither describes a named physician or employer. Both are U.S. government publications; no job board or private salary survey is used (SPEC 2). Each figure is shown with its source, dates and the caveats below. [etl/pbi_etl/postedpay.py]
Federal job postings (USAJOBS)
Agencies post a salary range (minimum and maximum annual pay) on every announcement. The pipeline keeps announcements in occupational series 0602 (Medical Officer), 0603 (Physician Assistant) and 0610 (Nurse; only nurse practitioner, nurse anesthetist, nurse midwife and clinical nurse specialist titles are used) opened in the last 24 months, with their public fields only: title, series, agency, pay plan, salary range and type, schedule, locations, open and close dates. There is no applicant information in the source.
- Specialty. The announcement title is matched against a reviewed pattern table (
etl/reference/usajobs_specialty_map.csv), first match wins. Titles that do not name a specialty ("Physician") are not counted for any specialty. Training, leadership (chief, director, supervisory) and non-clinical roles are left out, because they are paid on other scales. A primary care physician posting counts for both family medicine and internal medicine. - Counted postings. Full-time, salary stated per year, a minimum above zero and a maximum at least the minimum. Two announcements of the same job (same agency, title, salary range, open date and locations, for example one for the public and one for current federal employees) count once.
- Location. Each posting location's city and state are placed in a metro (CBSA) or a state's non-metro area by the area where most providers in the CMS files with that city and state are located. A city that cannot be placed counts for its state only. "Anywhere in the U.S." and negotiable locations count nationally only, and so does a posting that lists more than 5 locations (a nationwide recruitment).
- Cells. For a specialty, an area (metro, state or national) and the 12 months of opening dates up to the load date: n postings; the median of the posted minimums and the median of the posted maximums ("median range"); the 25th, 50th and 75th percentiles of the posting midpoints, midpoint = (minimum + maximum) ÷ 2 (linear interpolation); the agencies with their counts; the first and last opening date. A cell needs at least 3 postings; with fewer, the page shows the state cell, then the national cell, and names the area used.
- Caveats shown with the figure. Federal pay follows federal pay tables (for VA physicians, the VM pay table of base plus market pay; for others, GS or agency plans) and federal benefits, and it differs from private offers. A posted range is what an agency may pay, not what anyone was paid. The postings are a small and specific sample of the market.
BLS occupational wage estimates
The BLS Occupational Employment and Wage Statistics survey publishes, for each occupation and area, employment and annual wage percentiles of wage and salary workers (self-employed physicians and practice owners are not included). Wages include base pay and production bonuses and exclude overtime, shift differentials, nonproduction bonuses and benefits (BLS definitions).
- Occupation. Each provider type is matched to one Standard Occupational Classification occupation (
etl/reference/oews_specialty_map.csv). "Direct" means the occupation is the specialty (for example Family Medicine Physicians); "broad" means the specialty is inside a wider occupation (for example infectious disease in Physicians, All Other), and the page says the figure covers the whole occupation. - Area. The metro (BLS metropolitan statistical area codes are CBSA codes), else the state, else the nation, whichever first has a published median; the page names the area used. BLS nonmetropolitan areas are not matched to a state's non-metro area, so those use the state figure.
- Top coding and suppression. BLS marks some wage cells "#" and gives no figure for them; each file's notes define the mark as a wage at or above $239,200 per year ($115.00 an hour; read from the notes). The May 2025 files nonetheless publish many physician values above that amount (for example a national cardiologist median of $496,010), so the mark is not a uniform ceiling on what BLS publishes. A "#" value is stored as a flag and shown as "at or above $239,200", the bound the notes give, never as a number; it says nothing about how far above that bound the wage is. A wage marked "*" (not published) is left out.
- Figures shown. The median annual wage, with the 25th, 75th and 90th percentiles where published, the May reference year and the occupation's estimated employment in the area.
- Known limitation. Some metro medians sit far below typical attending pay (May 2025: General Internal Medicine Physicians, New York metro, median $105,960; Physicians, All Other, Chicago metro, $94,820), likely because the occupations can include physicians in training and part-year workers. The page says so next to every BLS figure.
Commercial rate index (built, not shown yet)
Commercial prices for a specialty's traditional Medicare service mix, weighted by Medicare volume, as a multiple of the Medicare allowed amount: "about 1.2× Medicare". It is not a measure of commercial utilization, and it describes insurers and markets, never a named physician or organization (D-070). Not a launch source (SPEC 3.10); no page reads it yet. [etl/pbi_etl/commercial_index.py, DECISIONS D-180]
- Source. Insurers' Transparency in Coverage in-network files for one month (2026-11: UnitedHealthcare and Aetna first), read by the national insurer run, which keeps professional dollar rates of the types negotiated, fee schedule and derived for the NPIs in the CMS files and each specialty's top codes. Per network the run keeps, for each NPI, code, modifier, place-of-service list and arrangement, the median rate over its distinct TIN and rate pairs. Only networks whose merge completed are read. Each figure states its insurers and the file dates.
- Medicare reference. The NPI's own Medicare allowed amount per service for the code and setting (facility or non-facility) in the matching Medicare year (2024 for the 2026-11 files), from the Provider and Service file. Allowed is what Medicare pays plus the beneficiary's cost sharing; it is the amount a commercial negotiated rate compares with, so payment is never used (D-175). The comparison crosses the two-year gap between the Medicare year and the rate month, and the observed allowed amount includes multiple-procedure and other claim-level reductions that a base negotiated rate does not, which raises the multiple for procedure codes.
- Code basket. The specialty's 25 non-drug codes with the most Medicare allowed dollars nationally in that year. Codes with many commercial and few Medicare patients (well-child visits, global obstetrics, sports medicine) are not in it.
- Rates kept. Fee-for-service arrangement only; bundled rates are counted and reported separately, and capitation and percentage-of-charge rates are excluded before this step. Modifiers: none, 26 or TC only.
- Billing filter ("ghost" rates). A rate counts only if that NPI billed the code to Medicare in the matching year; insurer contracts list many NPIs who never bill a code. The share of each insurer's rate rows kept by this filter is stored with the comparison. CMS suppresses lines with fewer than 11 beneficiaries, so some rates of low-volume billers are dropped too.
- Professional and technical components (26/TC). The CMS file shows a code without its modifier. For a code with separate professional and technical components, each Medicare line is matched to the component its allowed amount implies: the nearest, on a log scale, of g × total RVUs of the global, 26 or TC row of the fee schedule for the line's setting, where g is that NPI's allowed amount per total RVU on its other codes (its geography; the state median, then the national median, when it has none or its own is outside 0.6 to 1.6 times the national median). The rate with that modifier is used. Other codes use the rate without a modifier. CMS combines an NPI's lines for a code and setting across modifiers, so a line that mixes components (some global, some 26) has a blended allowed amount and is matched to the single nearest component.
- Setting. A rate applies to a facility line when its place-of-service list includes a facility code (02, 19, 21 to 24, 26, 31, 34, 41, 42, 51 to 53, 56, 61), to a non-facility line when it includes any other code, and to both when the list is empty. Rates naming the setting are used over rates for any setting.
- One rate per insurer. An insurer's rates for the same NPI, code and setting (several networks or plans) are combined into their median before weighting, so a rate listed in many networks counts once.
- Index. For a specialty, an area (metro or state non-metro area, state, nation) and an insurer, or all insurers combined:
ratio = Σ (rate × Medicare services) ÷ Σ (Medicare allowed per service × Medicare services)
over every kept insurer, NPI, code and setting. Each rate is weighted by that NPI's Medicare services for the line, so NPIs with large Medicare panels weigh more. Shown with it: the unweighted check Σ rate ÷ Σ allowed over the same rows, each row counted once (a large gap between the two means the multiple depends on the weighting); the 25th, 50th and 75th percentiles across NPIs of each NPI's own ratio (linear interpolation); n billing NPIs, n codes, insurers, file dates; and work RVU coverage, the share of the specialty's Medicare work RVUs in the area on lines with a kept rate.
- Minimum cell. At least 20 billing NPIs, and at least 2 insurers for the combined figure. A metro below that uses its state's figure, then the national figure, and names the area used; with neither, there is no figure (never zero).
- Insurer comparison. For a specialty basket and an area, each insurer with at least 20 billing NPIs, only where at least 2 insurers qualify (no fallback): the index ratio and the Medicare-services-weighted 25th, 50th and 75th percentiles of the line ratios (rate ÷ Medicare allowed for each NPI, code and setting).
- Check.
pbi check-commercial-indexprints one specialty and area, or one code in it, next to a reference ratio, for example the product lead's own 2024 register (D-041: HMSA 99232 1.22, 99291 1.60). A reference from another insurer is a plausibility check, not a test of the same thing.
Medicaid fee ratio (model input, not shown at launch)
A state's Medicaid fee schedule compared with what Medicare allowed for the same specialty's work in that state. It is an input to the payer-mix estimator (SPEC 5.4b) and the all-payer estimate (5.8), aggregate only: one figure per state and specialty, never for a named physician or organization. [etl/pbi_etl/medicaid.py]
- Fee schedules. The state Medicaid agency's own published physician fee schedule file, read with a fixed column layout per state; the register
etl/reference/medicaid_fee_sources.csvrecords each state's URL, effective date, format and status. Loaded: Texas (TMHP physician fee schedule, 2026-09-14), Florida (AHCA practitioner fee schedule, effective 2026-01-01), New York (eMedNY physician medicine, radiology and surgery schedules, effective 2026-07-01 and 2026-10-01). Not loaded, so no ratio: Hawaii (Med-QUEST's site refused our requests; its schedule is a PDF), California, Pennsylvania (no bulk file found), and every other state. - Fee used per code. The adult fee (Texas lists fees by age; the row covering age 65 is used), with no pricing modifier, before any pediatric, specialty, primary-care or program add-on. Fees priced by report or manually, and fees of 0, count as no fee. Anesthesia (base units plus time) is not compared.
- Setting. Medicare lines are split by place of service. Facility lines use the state's facility fee (else its single fee); office lines use the non-facility fee (else its single fee). For codes the state also prices as a professional component (imaging, echocardiography and similar tests), facility lines use the professional component fee, and office lines are left out: the Medicare file does not say whether the whole test or only the interpretation was billed. Codes the state prices only as a professional component, with no global fee (interpretation-only codes such as ECG interpretation 93010), use that fee in both settings.
- Formula. Over the specialty's non-drug lines in the state with a state fee (individual clinicians, practice state, latest Medicare year):
medicaid_ratio = Σ (state fee × Medicare services) ÷ Σ Medicare allowed
Medicare allowed is the amount Medicare and the patient's cost sharing pay together (not the Medicare payment), so the ratio is a multiple of Medicare allowed and must be applied to an allowed amount.
- Coverage = Medicare work RVUs on the lines with a state fee ÷ the specialty's Medicare work RVUs on all its non-drug lines in the state. Below 50% the ratio is not given.
- Weighting. The ratio prices the specialty's traditional Medicare service mix, weighted by Medicare volume. A Medicaid practice's mix differs (more pediatric, obstetric and preventive work, less inpatient and procedural work in older patients), so this is what the state's fees would pay for Medicare-type work, not what Medicaid pays a practice on average. As a check, each figure is stored with the median of the per-code ratios, each code counting once (
ratio_code_median). The two differ when the most-billed codes are priced differently from the rest: for infectious disease, internal medicine, family practice and cardiology in all three loaded states, the high-volume hospital and office visit codes are paid further below Medicare than the median code (Texas infectious disease 0.61 weighted vs 0.75 median code; New York 0.39 vs 0.76). - A fee schedule is not what is paid. The schedule is the state's fee-for-service maximum. Most Medicaid enrollees in these states are in managed care plans, which negotiate their own rates and may pay more or less than the schedule; supplemental and directed payments, cost sharing, and claim edits (multiple-procedure and bilateral reductions, units limits, prior authorization) are not reflected. Medicare figures are 2024 claims and fees are 2026 schedules, so fee updates in between (the Medicare conversion factor and RVU changes) are part of the ratio. Medicare allowed for nurse practitioners and physician assistants is 85% of the physician fee, while states pay them at their own rates, so ratios for those provider types compare unlike amounts.
Compare
Compare mode shows up to four providers, groups or markets (a specialty in an area) side by side for one data year. Each row is a metric defined above: for a provider, their own observed value with its rank by the rank rule (estimated total wRVUs are not shown for a provider or group, D-070); for a group, the median of its members; for a market, the median with the 75th percentile. The trend line under each cell is the same figure for each published year. No new statistic is computed.
The highest value in a row is shown in bold only when every column belongs to the same peer set: providers ranked among the same specialty at the same level and area for that row's metric; markets of the same specialty (and, for payment, provider counts and entrants, the same area, because payment is not standardized across areas and counts follow area size); groups only for their size. Otherwise nothing in the row is bold.
Peer comparison flags
Pro only; not shown on public pages, in CSV exports or in alerts (DECISIONS D-077). For each provider type, HCPCS code and year, across all providers nationally who billed the code [derive.build_peer_comparison_flags, table peer_comparison_flags]:
- Per provider, services and beneficiaries are summed across place of service. Two values are tested: services per beneficiary, and total services.
- modified z = 0.6745 × (value − peer median) ÷ MAD, where MAD is the median of absolute deviations from the peer median.
- A flag exists when modified z ≥ 3.5 and the peer group has at least 30 providers; it is stored with its peer count (
n_peers) and shown as text only: "services per beneficiary above the 3.5 modified-z threshold among n peers billing this code nationally in {year}". - Peer groups with fewer than 30 providers are not scored. A peer group with MAD = 0 (common when the median is 1 service per beneficiary) is skipped for that year, never divided by zero or given a substitute; the skips are counted per year and metric in
peer_comparison_logand in total inaggregate_log.peer_flag_groups_mad0. In 2024: 48,512 (provider type, code) peer groups; 37,876 under 30 providers; services per beneficiary 3,289 skipped for MAD = 0, 7,347 scored, 337,694 flags; total services 0 skipped, 10,636 scored, 768,343 flags. - Before any flag is visible, distribution plots for the top 50 codes by provider count are checked and recorded in docs/validation.
This is a description of where a value sits in a distribution. It does not characterize the provider or the care delivered; many legitimate practice patterns (referral centers, subspecialty focus, infusion services) produce values far from the median.
Code levels
hcpcs.level [derive.LEVEL_SQL]: I (CPT, AMA content) for five-digit numeric codes and for four digits followed by a letter (Category II ####F, Category III ####T, proprietary laboratory analyses ####U, multianalyte assays ####M, vaccine administration ####A); CDT for D followed by four digits (HCPCS D codes are the American Dental Association's CDT; their descriptors are ADA content, not CMS's); II (HCPCS Level II, CMS content) for any other letter followed by four digits (for example J codes). Any other shape has no level and is handled like Level I. 2024 data: 6,529 Level I, 1,139 Level II and 6 CDT codes (D0140, D0330, D4212, D7140, D7210, D7310). Only Level II descriptors render unconditionally; Level I, CDT and codes with no level are shown only when the descriptor flag is on (SPEC 6.1).
Corrections
Errors ClaimLight introduced (identity match, specialty, affiliation, location) are fixed through overrides, never by editing CMS rows (DECISIONS D-074) [overrides.fetch, overrides.apply]. Before each aggregate the app's app.overrides table is copied into the working store; for every data year aggregated, the override in force for an NPI and field (effective date passed; latest effective date wins) replaces the value in that year's derived provider row before ranks and statistics are computed: provider type, city, state or ZIP (county, metro and FFS share are re-derived from the ZIP), or removes one group or hospital affiliation (affiliation_exclusion, also used to leave the clinician off that organization's member list). Each application, rejection (unknown field, invalid value, unknown provider type) or miss is logged in override_log, and the provider row lists its overridden fields (provider_year.overridden_fields).
Known limitations
- Covers Original Medicare fee-for-service Part B only. Medicare Advantage, Medicaid, commercial and self-pay are not included.
- Payments go to the billing entity, not necessarily the rendering physician. Employed physicians' compensation is set by contract and may bear no relation to these figures.
- CMS suppresses any provider-code combination with fewer than 11 beneficiaries, so low-volume services are missing from code-level detail and from work RVU totals.
- Provider type is the specialty on Medicare claims and can differ from board certification.
- Group affiliation comes from the Doctors and Clinicians file and may lag reality. The current snapshot is applied to every data year, because CMS does not publish affiliation history.
- Hospital affiliation comes from the Doctors and Clinicians Facility Affiliation file and may lag reality in the same way. It records an affiliation, not employment or where the clinician's services were billed.
- Work RVU totals assume the base code's RVU without modifier adjustment.
- Estimated totals depend on stated assumptions and are estimates.
- Connecticut FFS shares for data years before 2022 are apportioned from the former counties by population, so a planning region carries the mix of its former counties' shares rather than its own; where a former county split into regions with different Medicare Advantage uptake (Fairfield: Greater Bridgeport and Western Connecticut) the regions show the same pre-2022 share.