Measured from CMS 2024 data · published August 2026

Is my medical bill markup normal?

Almost every article on this subject repeats the same unsourced rule of thumb: 250% of the Medicare rate is normal, 900% means you are being taken. We went and measured it instead. Across 9,402 billing codes covering 3,554,208,080 services in the 2024 CMS public file, the median charge is 4.72x what Medicare allows.

The short answer

A large gap between what you were charged and what Medicare pays is ordinary, not evidence of an error. 93.3% of codes are billed above 2x. What actually moves a bill is a coding mistake, a duplicate, a service that did not happen, or a charge above the hospital’s own published price. Use the multiple to decide where to look, not as proof on its own.

The measured distribution

Each row below is one billing code in one setting. The ratio is the average submitted charge divided by the average Medicare allowed amount for that same code and setting, so it compares like with like.

PercentileCharge vs Medicare allowedWhat it means for your bill
10th2.33xUnusually restrained billing
25th3.36xBelow typical
50th (median)4.72xCompletely ordinary
75th6.57xHigh, still common
90th9.66xTop decile, worth questioning
99th26.92xRare outside drugs and supplies

93.3% of code-and-setting pairs are billed above 2x the Medicare allowed amount, 63.9% above 4x, and 9.1% above 10x. If your bill is at 3x, you are below the median. That is the part the rules of thumb get wrong.

The same code costs more in a hospital

Splitting the same codes by where the service happened gives a median of 3.69x in an office against 5.4x in a facility. Identical work, identical benchmark, roughly 46% more markup once a hospital is billing it.

This is why a hospital outpatient department bill and a clinic bill for the same procedure are not comparable, and why “place of service” is one of the first fields worth checking on an itemized bill.

Injectable drugs are a different universe

The extreme ratios in the data are almost all J-codes, the HCPCS Level II codes for injectable drugs. These are the ten largest at real volume.

CodeMedicare allowsAverage chargedRatioServices
J2001Injection, lidocaine hcl for intravenous infusion, 1 · office$0.03$8.24274.7x187,604
J0665Injection, bupivicaine, not otherwise specified, 0.5 · office$0.01$2.67267x1,867,192
J1100Injection, dexamethasone sodium phosphate, 1 mg · facility$0.11$26.49240.8x12,445
J9263Injection, oxaliplatin, 0.5 mg · office$0.07$14.51207.3x20,410,899
J7613Albuterol, inhalation solution, fda-approved final p · office$0.05$6.78135.6x148,926
J7614Levalbuterol, inhalation solution, fda-approved fina · office$0.05$6.73134.6x10,848
J2704Injection, propofol, 10 mg · office$0.11$11.18101.6x763,003
J0665Injection, bupivicaine, not otherwise specified, 0.5 · facility$0.01$0.8787x801,550
J1642Injection, heparin sodium, (heparin lock flush), per · office$0.02$1.6582.5x386,515
J0131Injection, acetaminophen, not otherwise specified,10 · office$0.05$4.0480.8x141,918

Read these honestly

A 200x ratio on a J-code is not 200x profit and it is not evidence of fraud. Medicare prices most Part B drugs at roughly the average sales price plus a small percentage, which lands very close to acquisition cost, so the denominator here is about as low as a drug price gets. These codes are also billed per tiny unit, often per milligram, so a single dose is many units. The ratio is real and the comparison is like-for-like, but the conclusion it supports is “drug line items deserve a second look”, not “you were defrauded”.

What to actually do with your number

  1. Get the itemized bill. A summary statement has no codes on it, so there is nothing to benchmark. Ask for every line with its code, date, units, and unit price.
  2. Look up each code’s national figures. Our code reference shows the Medicare allowed amount and the average submitted charge side by side, from the same CMS file used above.
  3. Compare against the percentile, not a slogan. Above the 90th percentile (9.66x) is where a line is genuinely unusual for its code.
  4. Then check the things that actually get bills reduced. Duplicate codes on one date without a modifier, unbundled panels, units that do not match the time you were there, and services you can show did not happen.
  5. Compare to the hospital’s own published price.Under the federal price transparency rule hospitals publish machine-readable files. A charge above a hospital’s own posted rate is a far stronger argument than any national average.

Where these numbers come from

Every figure on this page is computed from the CMS dataset “Medicare Physician & Other Practitioners - by Geography and Service”, national aggregation, 2024 data year. We use two columns most summaries ignore: the average Medicare allowed amount and the average submitted charge. Nothing here is estimated or modelled.

Limits worth stating. These are national averages, so regional and hospital-level variation is real and can be large. The submitted charge is what providers billed, not what anyone paid. Medicare’s allowed amount is not the same as a commercial insurer’s negotiated rate. And an average cannot tell you whether your specific line item is correct.

Check your own bill against these numbers

Clever Dispute pulls the codes off your bill, puts each one next to its national figures, and drafts a letter you review before sending. It does not guarantee a reduction.

Open bill analyzer

Educational information only. Not legal, medical, insurance, or financial advice. A markup multiple is context for a conversation with a billing department, not a finding of error. CPT is a registered trademark of the American Medical Association.