Get paid what you agreed

How to Spot Underpayments by CPT Code

An underpayment is rarely dramatic: a few dollars on a common code, repeated hundreds of times a year. Because each claim looks normal, most practices never notice. Here is a simple check you can run with data you already have.

An underpayment happens when a payer allows less for a service than the rate it agreed with you. This guide walks through a check you can run in an afternoon, with no patient data.

Allowed amount, paid amount and contracted rate

Three numbers get confused:

  • Contracted rate: what the payer agreed to pay you for a code.
  • Allowed amount: what the payer decided a specific claim was worth.
  • Paid amount: what the payer actually sent, after the patient's share.

An underpayment is when the allowed amount is below the contracted rate. Comparing paid amounts alone won't find it, because deductibles and copays change the paid amount from claim to claim. Our guide to allowed vs paid vs contracted covers the differences in detail.

Step 1: Get your contracted rates

You need a reference rate for each code, at each payer. Options:

  • your contract's fee schedule exhibit, if it has one;
  • a written fee schedule from the payer's provider relations team;
  • the rates the payer published for your NPI in its transparency files. RateBench's free lookup returns these for your specialty's six most-billed codes; see finding your contracted rate and payer fee schedules 2026.

Step 2: Export allowed amounts by code

From your practice management system, export claims for the last three to six months, totalled by payer, CPT code and modifier, and place of service, with the average allowed amount and the number of claims.

No patient details are needed. For most practices this is a few dozen rows. Our free underpayment audit template has the columns ready.

Step 3: Compare code by code

For each row, subtract the average allowed amount from the contracted rate. A positive gap means the payer allowed less than agreed. Multiply the gap by the claim count: that's the money at stake for that code over the period.

Step 4: Rank by dollars, not by percentage

A 20% gap on a code you bill twice a year matters less than a 5% gap on 99214. Sort by total dollar gap and start at the top. A handful of high-volume office visit and therapy codes usually account for most of it.

Step 5: Rule out the usual explanations

Before calling it an underpayment, check:

  • Modifiers. Some modifiers reduce the allowed amount by design.
  • Place of service. Facility and office rates can differ.
  • Multiple procedure rules. Second and later procedures on a claim are often reduced.
  • Rate changes. Your contract may have changed, and payers republish rates monthly.
  • Wrong network. The claim may have been priced under a different network than your contract.

What's left after those checks is worth raising.

Step 6: Raise it with the payer

Send provider relations a short list: code, contracted rate, average allowed amount, claim count and total gap, with your source for the contracted rate. Ask for reprocessing where your contract allows it, and for the rate to be corrected going forward.

What it can add up to

An illustration: say a payer allows $8 less than your rate for 99214, and you see 15 of those visits a month. That's $120 a month, or $1,440 a year, from one code at one payer. Your numbers will differ, which is why it's worth checking.

Doing it automatically

RateBench's underpayment check does steps 3 and 4 for you. Upload your allowed-amount totals by code for one payer (no patient data) and it compares each with the rate that payer published for your practice. Claims with a modifier that changes payment are set aside rather than flagged. You get the codes allowed below the published rate, the claims affected and the dollar gap, worst first.

Common questions

How common are underpayments?
There’s no reliable public figure, and it varies by payer and practice. The only way to know for your practice is to compare allowed amounts with your rates, code by code.
Do I need patient data to check for underpayments?
No. Totals of allowed amounts and claim counts by CPT code, modifier and place of service are enough.
How far back can I ask a payer to reprocess claims?
It depends on your contract and state rules. Check your contract’s dispute and timely filing terms.
What if I don’t know my contracted rates?
Start with the rates your payer published for your NPI in its Transparency in Coverage files, then confirm them with the payer in writing.

Sources

  1. Transparency in Coverage, final rules (85 FR 72158) — Federal Register / U.S. Departments of the Treasury, Labor and HHS, November 12, 2020
  2. price-transparency-guide: technical implementation guide and in-network rates schema — CMS, accessed October 2026

See what your payers published for your NPI.

One rate lookup is free, no account. Full fee schedules across your payers start at $99 a month.

Get startedMore from the blog →