# How to Spot Underpayments by CPT Code

> A six-step check any practice can run from its own claims data: get a reference rate per code, export allowed amounts by code, compare, rank by dollars, rule out the usual explanations, and raise what is left with the payer.

- Published: 2026-10-10
- Author: RateBench
- Human page: https://ratebench.health/blog/spot-underpayments-by-cpt-code
- This document: https://ratebench.health/blog/spot-underpayments-by-cpt-code.md
- Product (sign up / app): https://app.ratebench.health

---

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](/blog/allowed-amount-vs-paid-amount) 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](/blog/find-your-contracted-rate) and [payer fee schedules 2026](/blog/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](/tools/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](/features/underpayments) 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. Federal Register / U.S. Departments of the Treasury, Labor and HHS (November 12, 2020). "Transparency in Coverage, final rules (85 FR 72158)". https://www.federalregister.gov/documents/2020/11/12/2020-24591/transparency-in-coverage
2. CMS (accessed October 2026). "price-transparency-guide: technical implementation guide and in-network rates schema". https://github.com/CMSgov/price-transparency-guide
