You’ve got a CO-97 sitting in your queue. Before you touch it, answer one question.
Can this denial ever be paid?
Because two of the five things that trigger a CO-97 are permanently unwinnable. If you appeal those, you’re burning $25 of staff time to lose. And three of them pay out at a very high rate — if you attack them the right way.
Most billers can’t tell the difference in under a minute. After this, you will.
The 60-second triage (do this before anything else)
Pull the ERA. Not the summary. The actual 835 line detail.
- Find the RARC. CO-97 rides with a remark code more often than people notice. N390 (“this service/report cannot be billed separately”) points one direction. M80, M15, or N19 point another.
- Identify the paid line. What did the payer actually pay on that claim or a recent claim? That’s your Column One code.
- Look up the pair in the current CMS NCCI PTP file. Current quarter. Not the one your scrubber cached.
- Read the CCMI. 0, 1, or 9. This single digit decides everything.
- No NCCI edit exists? Then you’re in scenario 3, 4, or 5 — and your appeal argument changes completely.
That’s the whole triage. Under a minute once you’ve done it fifty times.
What CO-97 actually says and the three words that matter
The official Claim Adjustment Reason Code text:
CO-97: “The benefit for this service is included in the payment/allowance for another service/procedure that has already been adjudicated.”
Three words carry the weight: “already been adjudicated.”
That means the payer isn’t questioning whether you did the work. It’s saying it already cut a check that covered it. Different problem, different fix.
The CO prefix matters too. CO = Contractual Obligation. You cannot bill the patient. Not with an ABN signed after the fact, not as a courtesy invoice. Balance-billing a CO-97 is a contract violation with most payers and a compliance problem with Medicare.
Write it off or win it. There’s no third door.
The 5 bundling scenarios master table
Here’s the taxonomy. Find your row.
| # | Scenario | The tell | Winnable? | Your move |
|---|---|---|---|---|
| 1 | NCCI PTP edit, CCMI = 1 | Code pair exists in CMS PTP file, modifier column shows 1 | ✅ High — if documentation supports it | Correct modifier on the Column Two code + resubmit as corrected claim |
| 2 | NCCI PTP edit, CCMI = 0 | Same file, modifier column shows 0 | ❌ Never | Adjust off. Fix the front-end so it stops happening |
| 3 | Global surgical package | Denied DOS falls inside a 10- or 90-day window from a prior surgery | ✅ Moderate-high | Global modifier (24, 25, 57, 58, 78, 79) + documentation of unrelatedness |
| 4 | Payer-proprietary edit | No NCCI edit exists, but a commercial payer still bundled it | ⚠️ Depends on contract | Appeal on contract + medical policy, never on CMS rules |
| 5 | Incidental / packaged service | Small service integral to a bigger one; often status-B or packaged | ❌ Usually never | Stop billing it. It’s not a denial problem, it’s a charge-master problem |
Now the details.
Scenario 1 NCCI PTP edit with indicator 1 (this is the money)
This is the one worth your time.
Here’s how the machine works. CMS maintains Procedure-to-Procedure edits: pairs of codes that normally shouldn’t be billed together on the same patient, same date, same provider. Each pair has a Column One code (the payable one) and a Column Two code (the denied one).
When you bill both, Column Two dies automatically. That’s your CO-97.
But every pair carries a Correct Coding Modifier Indicator:
| CCMI | Meaning | Reality on the desk |
|---|---|---|
| 0 | No modifier can ever bypass this edit | Dead claim. Stop. |
| 1 | An NCCI-associated modifier may bypass it when clinically justified | Your appeal lane |
| 9 | Edit deleted (deletion date equals effective date) | Pair is billable, no modifier needed |
Indicator 1 means CMS accepts that there are real clinical situations where both services deserve payment. Different site. Different session. Different practitioner. You just have to prove it.
Picking the right modifier (stop defaulting to 59)
This is where practices bleed money — and invite audits.
| Modifier | Use when | Real example |
|---|---|---|
| XS | Separate structure or anatomic site | Lesion excision on right forearm + separate lesion left shoulder |
| XE | Separate encounter, same day | Stress test at 9 a.m., unrelated ECG at 4 p.m. |
| XP | Separate practitioner | Your surgeon does one; a different specialist does the other |
| XU | Unusual, non-overlapping service | Diagnostic procedure clearly outside the therapeutic procedure’s scope |
| 59 | Only when none of the four above fit | Genuine last resort |
CMS has been explicit since the X modifiers launched in 2015 (Change Request 8863): use the most precise modifier available, and fall back to 59 only when nothing else describes the situation.
Why this isn’t just pedantry. When a claim carries 59, an auditor has to pull the whole chart to figure out why the service was distinct. When it carries XS, the provider has made a specific, checkable assertion — separate anatomy. If the note shows same structure, that’s an automatic overpayment finding. Precision cuts both ways, and that’s exactly why payers reward it and auditors hunt for lazy 59s.
Put the modifier on the right code
The OIG found that 11% of modifier 59 claims in one review period were paid with the modifier attached only to the primary code — about $27 million in improper Medicare payments. (OIG, Use of Modifier 59 to Bypass Medicare’s NCCI Edits)
The modifier belongs on the Column Two code. Not the higher-paying one. Not the first one on the claim. Column Two.
Here’s the trap: Column Two is not always the cheaper code. In the classic example, 31575 (flexible fiberoptic laryngoscopy) is Column One and 31231 (nasal endoscopy) is Column Two — even though 31231 carries more RVUs. Column position governs, not dollars.
What documentation actually has to say
Payers reject vague. “Separate and distinct procedure” in the note is worthless.
What survives review:
- Named anatomic site with laterality — “1.2 cm lesion, right lateral forearm” and “separate 0.8 cm lesion, left deltoid”
- Separate incisions or separate lesions explicitly described
- Times documented when you’re claiming XE
- A distinct clinical indication for the second service
- Separate diagnosis codes actually linked to the right claim lines
What fails: a canned macro that says “distinct procedural service” and nothing else. Auditors have seen that template ten thousand times.
Scenario 2 — NCCI PTP edit with indicator 0 (stop appealing these)
⛔ Hard stop. A CCMI of 0 means no NCCI-associated modifier — not 59, not XS, not XE, not any of them — will ever bypass that edit. CMS has decided the two codes are inseparable in every clinical scenario.
I’ll say the part most vendor blogs won’t: appealing an indicator 0 edit is a waste of payroll. I’ve watched AR teams cycle the same indicator 0 claim through three levels of appeal because “we did the work.” You did. It’s still bundled. The rate structure for Column One already accounts for it.
The classic example: 52648 (laser vaporization of prostate) versus 52281 (urethral dilation). The comprehensive code includes the dilation by definition. Indicator 0. Nothing to argue.
And here’s the compliance edge: slapping modifier 59 on an indicator 0 pair to “see if it goes through” isn’t an aggressive billing strategy. It’s a documented pattern of attempting to bypass a hard edit. That’s the exact behavior that turns a routine payer review into something much less routine.
What to actually do:
- Adjust the line off same day. Don’t let it age.
- Log the code pair in a suppression list.
- Push the pair into your scrubber so the second code never leaves the building again.
- Tell the provider — once, with the CMS citation, not as a lecture.
One correctly killed edit pair prevents a hundred future denials. That’s the real ROI here, and it’s zero appeals.
Scenario 3 — Global surgical package bundling
No NCCI edit in sight, but the claim still bundled? Check the calendar.
Medicare’s global surgical package rolls routine pre-op, the procedure itself, and routine post-op care into one payment:
- 0-day: endoscopies and minor procedures. Same-day visits not separately payable.
- 10-day: day of surgery plus 10 days. 11 days total.
- 90-day: major surgery. Actually 92 days — the day before, the day of, plus 90 after.
Bill an office visit on day 43 of a 90-day global without a modifier and you get a CO-97. The payer already paid for that visit inside the surgical fee.
One rule that catches people constantly: physicians in the same group practice and the same specialty are treated as a single physician. Your partner’s post-op visit is your post-op visit.
The global modifier cheat sheet
| Modifier | When | Starts a new global period? |
|---|---|---|
| 24 | Unrelated E/M during the post-op period | No |
| 25 | Significant, separately identifiable E/M same day as a minor procedure | No |
| 57 | E/M that led to the decision for major surgery | No |
| 58 | Planned, staged, or more extensive related procedure during post-op | Yes |
| 78 | Unplanned return to the OR for a related complication | No |
| 79 | Unrelated procedure by the same physician during post-op | Yes |
What Medicare does not consider part of the global package — meaning it’s separately payable:
- The initial evaluation that determined surgery was needed (modifier 57)
- Visits unrelated to the surgical diagnosis
- Treatment of an underlying condition that isn’t part of normal recovery
- Diagnostic tests and diagnostic radiology
- Distinct surgical procedures during the post-op period that aren’t re-operations or complication treatment
2025–2026 wrinkle worth knowing: CMS now requires transfer-of-care modifiers on 90-day globals, and HCPCS G0559 exists for post-op follow-up furnished by a practitioner outside the surgeon’s group. Two things that didn’t exist a few years ago and that older billing guides get wrong. (CMS Global Surgery Booklet)
The modifier 24 appeal that wins
Diagnosis linkage is the whole game. If a patient had a knee replacement and comes in during the global period for a UTI, modifier 24 works — when the claim’s diagnosis is the UTI and the note reads like a UTI visit. If the note wanders into how the knee is healing, you’ve handed the reviewer a reason to deny.
Scenario 4 — Payer-proprietary bundling (the one nobody writes about)
Here’s the gap in every article ranking above this one.
Commercial payers don’t only run NCCI. They run licensed claim-editing engines — Lyric (formerly ClaimsXten), Optum’s Claims Editing System, and homegrown rule sets layered on top. Those engines contain thousands of bundling rules that do not exist in any CMS file.
I spent years having this argument with payer reps. It ends the same way every time: “Our policy is more restrictive than CMS, and your contract says we apply our policies.”
How to spot it in 20 seconds
- You looked up the pair in the current NCCI file. No edit exists.
- It’s a commercial payer, not Medicare or a MAC.
- The same code pair pays cleanly at a different payer.
- The remark language references “payer policy” or “clinical editing” rather than correct coding.
Your appeal argument has to change
This is where teams lose winnable money. They write a beautiful appeal citing the NCCI Policy Manual and Column One/Column Two logic — to a payer that isn’t using NCCI. The reviewer reads two lines and upholds.
| Don’t cite | Cite instead |
|---|---|
| NCCI PTP tables | The payer’s own published reimbursement policy (by name and version date) |
| CMS NCCI Policy Manual | Your contract’s reimbursement and correct-coding provisions |
| “CMS allows this” | The payer’s medical policy bulletin permitting separate reporting |
| General coding principles | CPT code descriptors and AMA CPT Assistant guidance |
And ask for the rule. Most contracts and many state prompt-pay statutes obligate the payer to disclose the specific edit applied. In writing: “Please identify the specific reimbursement policy, policy number, and effective date supporting this adjustment.” That request alone reverses a meaningful share of these — because sometimes the rule doesn’t cleanly exist, and someone has to go find it.
Track by payer. If one plan generates 3x the CO-97 volume of the others on the same code pairs, that’s not a coding problem. That’s a contract negotiation item for renewal, backed by your own data.
Scenario 5 — Incidental and packaged services
The quiet revenue leak. Nobody’s denying these unfairly — you shouldn’t be billing them separately in the first place.
Usual suspects:
- Surgical supplies and dressings used during a procedure
- Routine dressing changes inside a global period
- Specimen handling billed alongside an office visit
- After-hours codes at a facility that’s always open
- 99024 post-op visits (tracking code, never payable)
- Status-B codes on the Medicare Physician Fee Schedule — always bundled, no exceptions
- Packaged services under OPPS where the payment status indicator says packaged into the primary procedure
- Pulse oximetry billed with an E/M
- Local anesthesia as part of the procedure it supports
The fix isn’t in AR. It’s upstream. Pull 90 days of CO-97s, sort by CPT, and look at the codes that appear over and over with near-zero payment history. Those aren’t denials. They’re charge-master entries that should never fire.
I’ve seen a practice generate 1,100 CO-97s in a year from one autopopulated supply code. Nobody appealed a single one — they just clogged the queue and made the denial dashboard look like a crisis.
The CO-97 appeal that actually wins
Short, specific, evidence-first. Reviewers spend maybe 90 seconds on your letter.
Structure it like this:
Re: Claim #_____ | Patient _____ | DOS _____ | Denied line: CPT _____ | CARC CO-97
1. What we’re disputing. CPT [X] was denied as included in CPT [Y]. We are requesting reconsideration and separate payment for CPT [X].
2. Why it’s separately reportable. [One of these:]
- The NCCI PTP edit for [Y]/[X] carries a Correct Coding Modifier Indicator of 1, permitting an NCCI-associated modifier when documentation supports distinct services. Modifier [XS/XE/XP/XU] has been appended to the Column Two code.
- No NCCI PTP edit exists for this code pair as of the [Q_ 2026] CMS edit file. Please identify the specific reimbursement policy, number, and effective date applied.
- The service on [DOS] was unrelated to the [date] procedure. Modifier 24 applies; the encounter diagnosis was [ICD-10], unrelated to the surgical diagnosis [ICD-10].
3. What the record shows. Operative/progress note dated [date], page [#], documents: [quote the exact clinical language — site, laterality, separate incision, time, indication].
4. What we’re asking for. Reprocess claim line [#] for separate payment of CPT [X] at the contracted rate.
Enclosed: operative note (highlighted), NCCI PTP file excerpt showing the CCMI, relevant CPT descriptors.
Three things that raise your win rate:
- Highlight the note. Physically mark the sentence that proves your point. Don’t make a reviewer hunt.
- Attach the edit file excerpt. A screenshot of the CCMI column is more persuasive than any paragraph you’ll write.
- Quote, don’t paraphrase. Your summary of the note is an assertion. The note itself is evidence.
Watch the clock. Medicare redetermination is 120 days from the initial determination notice. Commercial appeal windows are often much shorter — 60 or 90 days, sometimes 180. Check the contract, not your habit.
CO-97 vs. the codes people confuse it with
| Code | What it actually means | Different because |
|---|---|---|
| CO-97 | Benefit included in another already-adjudicated service | About the relationship between two services |
| CO-234 | Service not paid separately | Closely related; often a component of a larger service, sometimes payer-specific phrasing |
| CO-236 | This procedure/combination not compatible with another service per NCCI or payer rules | About the combination being disallowed, not payment absorption |
| CO-4 | Procedure code inconsistent with the modifier, or required modifier missing | About the modifier on a single line |
| CO-B15 | Required qualifying service not received or adjudicated | About a missing prerequisite, not bundling |
| OA-18 | Duplicate claim/service | About resubmission, not bundling |
They look similar on a denial dashboard. They need entirely different work queues. If your team routes all six to the same bucket, your resolution rate will stay flat no matter how many people you add.
Prevention: kill them at the scrubber, not in AR
The quarterly cadence problem. CMS updates NCCI PTP edits four times a year — effective January 1, April 1, July 1, and October 1. Updates add pairs, delete pairs, and change CCMI values.
Ask your clearinghouse one question: what date is the edit file you’re running? I’ve found scrubbers two quarters stale. Every claim they passed was a CO-97 in waiting.
The prevention checklist:
- Confirm your scrubber’s NCCI file version every quarter
- Build hard stops for known CCMI 0 pairs in your specialty
- Require documented justification before any modifier 59 or X modifier leaves the building
- Track modifier 59 utilization by provider and compare to specialty peers — an outlier is a self-audit trigger, and you want to find it before a payer does
- Flag every claim with a DOS inside an active global period automatically
- Maintain a payer-specific bundling matrix for your top 5 commercial plans
- Purge charge-master entries that produce chronic incidental denials
- Review CO-97 volume by CPT monthly, not by dollar amount
Benchmark to hold yourself to: if any single denial code shows up on more than about 5% of your claims in a month, that’s not bad luck. That’s a broken workflow.
On modifier 59 specifically: OIG audit attention on 59 has never gone away — physical therapy, orthopedics, dermatology, podiatry, and pain management get the most scrutiny. Multiple 2026 industry analyses put modifier 59 misuse near the top of the improper-payment list, second only to E/M level issues, with recoupment rates on those audits reported north of 80%. Treat every 59 as a claim you may have to defend two years from now, because that’s the actual timeline.
The write-off math nobody puts in writing
KILLCRITIC moment: not every CO-97 deserves a human.
| Denial type | Avg. staff time | Loaded cost per touch | Win rate | Worth working? |
|---|---|---|---|---|
| CCMI 1, documentation clearly supports | 12 min | ~$9 | High | Always |
| CCMI 1, documentation ambiguous | 35 min (needs provider query) | ~$26 | Moderate | Only above your threshold |
| CCMI 0 | 20 min | ~$15 | ~0% | Never |
| Global period, clearly unrelated | 15 min | ~$11 | High | Always |
| Payer-proprietary, first occurrence | 45 min | ~$34 | Variable | Yes — you’re buying the rule, not the claim |
| Payer-proprietary, known losing rule | 45 min | ~$34 | Low | No — fix the front end |
| Incidental / packaged | 10 min | ~$8 | ~0% | Never — fix the charge master |
(Cost figures are illustrative at roughly $45/hr fully loaded. Run your own numbers — your threshold is your number, not mine.)
Most practices I’ve audited have no written low-balance write-off threshold for bundling denials. So a $19 line gets 40 minutes of attention while a $2,400 CCMI 1 appeal sits untouched for three weeks.
Set the threshold. Publish it. Let people follow it without asking permission.
And here’s the part that actually moves the needle: the highest-value work on a CO-97 is usually not the appeal. It’s the root-cause fix. Winning one $340 claim is nice. Killing the edit that generated 90 of them is the job.
FAQ
What does CO-97 mean in medical billing?
The benefit for the billed service is included in the payment for another service that’s already been processed. It’s a bundling denial, and the CO prefix means it’s a contractual obligation — you can’t bill the patient for it.
Can I bill the patient for a CO-97 denial?
No. CO means contractual obligation. The provider absorbs it. Billing the patient is a contract violation with most payers.
Will modifier 59 fix a CO-97?
Only sometimes. It works when the code pair has a Correct Coding Modifier Indicator of 1 and your documentation genuinely supports distinct services. On a CCMI 0 pair, no modifier works — ever. And if an X modifier (XE, XP, XS, XU) describes the situation better, use that instead of 59.
How do I find the NCCI edit for my code pair?
Download the current quarter’s Procedure-to-Procedure edit file from the CMS NCCI page. Look up your pair, note which code sits in Column One and Column Two, and read the modifier indicator. CMS doesn’t offer a real-time lookup tool, so most practices use a scrubber or a coding-reference subscription.
What’s the difference between CO-97 and CO-234?
Both signal that a service isn’t separately payable. CO-97 specifically says the payment was absorbed into another already-adjudicated service. CO-234 more broadly says the service isn’t paid separately. Payers apply them somewhat inconsistently — read the accompanying remark code.
Why did a commercial payer deny with CO-97 when there’s no NCCI edit?
Because they’re running proprietary claim-editing rules that go beyond CMS. Appeal it on their published reimbursement policy and your contract language, not on NCCI. And ask them in writing to identify the specific policy applied.
How long do I have to appeal a CO-97?
Medicare redetermination is 120 days from the initial determination notice. Commercial windows vary widely — 60 to 180 days. Check the specific contract.
Should I appeal every CO-97?
No, and the practices that try have the worst net collections. Two of the five bundling scenarios are permanently unwinnable. Route those to adjustment on day one and spend the hours on CCMI 1 and global-period claims, where the win rate justifies the touch.
Sources & primary references
- CMS — Medicare NCCI Procedure-to-Procedure (PTP) Edits (quarterly files, CCMI values): https://www.cms.gov/medicare/coding-billing/ncci-medicare
- CMS — Medicaid NCCI FAQ Library (CCMI 0/1/9 definitions, Column One/Column Two logic): https://www.cms.gov/medicare/coding-billing/ncci-medicaid/medicaid-ncci-faq-library
- CMS — Proper Use of Modifiers 59, XE, XP, XS, and XU (MLN guidance; CR 8863, eff. 1/1/2015)
- CMS — Global Surgery Booklet (0/10/90-day packages, included and excluded services, transfer-of-care modifiers)
- HHS OIG — Use of Modifier 59 to Bypass Medicare’s National Correct Coding Initiative Edits (OEI-03-02-00771): 11% of reviewed modifier 59 claims had the modifier on the wrong code; ~$27M in improper payments
- Noridian Medicare — Reason Code 97 / Remark Code N390 denial resolution guidance
- AAPC Knowledge Center — NCCI PTP mechanics and modifier 59 audit history
Reviewer sign-off — Priya Raghunathan, RHIA, CCS, CDIP:
“The section I’d underline for anyone reading this is scenario 4. When I worked on the payer side, the single most common provider mistake I saw was an appeal built entirely on CMS logic sent to a plan that never adopted that logic. Those got upheld in under two minutes. Cite the plan’s own policy back to it and the outcome changes.”
Verified July 2026.