Payers underpay claims more often than they deny them. The difference: denials are visible (zero payment triggers a flag). Underpayments are invisible (partial payment gets posted without question). The average multi-provider practice has $20,000-$60,000 in recoverable underpayments per year that nobody is catching. A 30-minute monthly audit of your top 10 payment variances will find the majority of it. The codes to watch: CO-97 (procedure adjustment) and CO-131 (contractual adjustment).
Your billing team has a denial workflow. When a claim pays zero, someone notices. It goes in the denial queue. Maybe it gets appealed, maybe it gets written off, but at least it gets flagged.
What happens when a claim pays $92 instead of $145? In most practices: the $92 gets posted, the contractual adjustment eats the $53 difference, and nobody ever checks whether $92 was the right amount. The payment arrived. The account balanced. The biller moved on.
That $53 might be a legitimate contractual adjustment. Or it might be a payer error. The only way to know is to compare what was paid against what should have been paid per your contract. Most practices never do this comparison. The result: thousands of dollars per month in underpayments that are technically recoverable but practically invisible.
Payers maintain fee schedules that are updated annually (sometimes quarterly). When the fee schedule updates and the payer's system doesn't apply the new rates correctly, every claim processed under the old rates is underpaid. This can affect thousands of claims before someone notices.
The most common version: the payer uses the prior year's Medicare fee schedule instead of the current year's. Medicare rates change every January. A practice that doesn't compare January payments against the new fee schedule may not catch the error until March or April, by which time 3-4 months of underpayments have accumulated.
Scenario: A family practice bills 99214 to Medicare. The 2025 rate was $131. The 2026 rate is $138. In January, Medicare pays $131 instead of $138 on several claims due to a fee schedule lag.
Underpayment per claim: $7
99214 claims per month: 320
Monthly underpayment if not caught: $2,240
Recovery: Identified in February audit, disputed in March, corrected payment received in April. $4,480 recovered for January and February combined.
Medicare and most commercial payers have two payment rates for every procedure: a facility rate (lower, because the facility bills separately for overhead) and a non-facility rate (higher, because the practice absorbs all overhead). When a practice performs a service in their office (non-facility) but the payer applies the facility rate, the underpayment can be 20-40% per claim.
This error often stems from an incorrect Place of Service (POS) code on the claim. POS 11 (office) triggers the non-facility rate. POS 22 (outpatient hospital) triggers the facility rate. If your claim goes out with the wrong POS code, the payer applies the wrong rate and the difference is significant.
| CPT Code | Non-Facility Rate | Facility Rate | Underpayment per Claim |
|---|---|---|---|
| 99214 | $138 | $98 | $40 (29% less) |
| 99215 | $193 | $138 | $55 (28% less) |
| 93000 (ECG) | $28 | $11 | $17 (61% less) |
| 36415 (venipuncture) | $5 | $3 | $2 (40% less) |
The National Correct Coding Initiative publishes edit pairs that determine which procedures can be billed together. When the payer's system applies a bundling edit, it reduces or zeroes the secondary procedure using adjustment code CO-97. But bundling edits have modifier indicators. If the modifier indicator is "1," a modifier (59, XE, XS, XP, or XU) overrides the bundle.
Payers sometimes apply bundles even when the correct modifier is present, or apply bundles from outdated NCCI edit tables. The claim gets reduced, the adjustment posts as CO-97, and nobody checks whether the bundle was legitimate.
The standard multiple procedure rule: 100% for the highest-RVU procedure, 50% for additional procedures in the same session. But not all procedures are subject to this reduction. Certain therapy services, endoscopy add-on codes, and same-day E/M visits have different rules. If a payer applies the 50% reduction to a procedure that's exempt, every instance is an underpayment.
Your contract with a payer specifies exact payment rates or a percentage of Medicare. When the payer's system applies a different rate than what your contract stipulates, the difference is an underpayment. This is adjustment code CO-131 and it's one of the hardest underpayments to catch because it requires comparing every payment against the contract terms.
Contract rate errors are especially common after contract renewals. The new rates take effect on the contract date, but the payer's claims system may not update immediately. Claims processed during the lag period pay at the old (usually lower) rate.
You don't need to audit every payment. You need to audit the patterns. Here's the process that catches the majority of underpayments in 30 minutes per month:
Step 1: Pull a payment variance report. Most PM systems can generate a report showing the difference between billed charges and payments by CPT code. Sort by the largest negative variance (biggest gap between what you billed and what you received). The top 10 CPT codes by variance are your audit targets.
Step 2: Compare against your fee schedule. For each of the top 10 CPT codes, look up the contracted rate with the primary payer. Use your Medicare fee schedule for Medicare claims. For commercial payers, check your contract or the payer's provider portal for the current allowed amount. Does the average payment match the contracted rate? If not, how big is the gap?
Step 3: Filter for CO-97 and CO-131 adjustments. Pull all claims with these two adjustment codes in the past month. These are the specific flags for procedure-based underpayments (CO-97) and contractual underpayments (CO-131). Review the top 5 by dollar amount.
Step 4: Check POS codes on high-variance claims. If you find underpayments on E/M codes, check whether the Place of Service code was correct (11 for office). A POS error affecting 99214 claims costs $40 per claim and can affect every claim in a month before someone notices.
Step 5: Submit payment disputes for confirmed underpayments. Payment disputes are different from claim appeals. You're not arguing the claim was denied. You're arguing the claim was paid at the wrong amount. Include: the ERA showing the payment, your contracted rate, the current fee schedule, and the calculated underpayment amount.
The ROI of this audit: 30 minutes per month x 12 months = 6 hours per year. Practices that implement monthly payment auditing typically recover $20,000-$60,000 in the first year. That's $3,300-$10,000 per hour of auditing time. No other billing activity generates a higher return per hour invested.
Underpayments compound. When a payer starts applying the wrong rate and nobody catches it, every claim for that CPT code with that payer is underpaid going forward. Unlike a denial (which is a one-time event on a single claim), an underpayment is a systemic error that affects every subsequent claim until it's identified and corrected.
A $40 underpayment on 99214 visits that runs for 6 months before someone notices affects 600+ claims. That's $24,000 in underpayments from a single fee schedule error. And most payment dispute deadlines are 90-180 days, so claims from the first 2-3 months may have already passed the dispute window by the time the error is discovered.
The dispute deadline trap: Payers set deadlines for payment disputes just like they set timely filing limits for claims. If you discover an underpayment 8 months after it started, the first 2-3 months of underpaid claims may be past the dispute deadline. Monthly auditing catches errors within 30 days, keeping every underpaid claim within the dispute window.
The monthly audit described above is a manual process. It works for practices that are disciplined enough to do it consistently. But the most effective approach is automated payment auditing that compares every payment against contracted rates in real time.
Manual auditing (the minimum): Pull the top 10 CPT code variances monthly. Review CO-97 and CO-131 adjustments. Spot-check POS codes. Takes 30 minutes per month. Catches the biggest errors but may miss low-dollar high-volume underpayments.
Automated auditing (the standard for outsourced billing): The billing system compares every ERA payment against the contracted rate and flags variances above a threshold (typically $5). Underpayments are routed to a review queue automatically. Nothing slips through because every payment is compared, not just the top 10.
This is one of the core differences between a billing company that processes claims and a billing company that manages revenue. Processing claims means submitting and posting. Managing revenue means auditing every payment to ensure the practice collects every dollar it's owed.
If your monthly audit reveals a pattern of underpayments from a specific payer (the same CPT code is underpaid on multiple claims), escalate beyond a single-claim dispute:
1. Document the pattern. Pull every claim affected. Calculate the total underpayment. Create a spreadsheet showing the claim number, date of service, CPT code, expected payment, actual payment, and variance for each claim.
2. Request a provider representative call. Don't file 50 individual disputes. Call the payer's provider relations department and request a review of the systemic issue. Present the pattern with specific claim numbers. Systemic errors are corrected faster through provider relations than through individual claim disputes.
3. Request retroactive correction. If the payer confirms the error, request retroactive correction on all affected claims, including claims that have passed the individual dispute deadline. Payers are more likely to grant retroactive corrections for systemic errors than for individual claim disputes.
4. Verify the correction going forward. After the payer confirms the fix, audit the next month's payments for that CPT code to verify the correct rate is now being applied. Payer systems sometimes "fix" an error in the claims system but continue applying the wrong rate until the system is reprocessed.
Our system audits every payment against your contracted rates and flags underpayments before they compound. Most practices find $20K-$60K in recoverable underpayments in the first year.
Learn About Our Payment Auditing →