Massive Bio has made its inaugural strategic investment in Rivvi. Read the announcement

← Blog
OPERATIONSRivvi · October 1, 2026 · 6 min read

Denial Analysis With AI: Read Your Aging Report Faster

Claim denial analysis means grouping denied claims by payer, reason code, provider and service to find patterns you can fix. With AI, you upload your 835 remittance data or aging report and ask it to sort denials by CARC code. It splits recoverable from non-recoverable and flags claims near their filing deadline. A person still reviews every appeal.

Takeaways

  1. Reason codes tell you why

    CARC codes give the reason for an adjustment. RARC codes add detail.

  2. Four cuts find most patterns

    Group denials by payer, code, provider and service.

  3. Not every denial is worth chasing

    Separate fixable errors from patient responsibility and true non-coverage.

  4. AI drafts the appeal

    A person sends it. Remittance and aging data are PHI, so use a tool that has signed a BAA.

The codes on your remittance, explained

When a payer pays, reduces or denies a claim, it sends an electronic remittance advice. In the X12 standard this is the 835 transaction, often just called "the 835." It's the electronic version of an explanation of benefits for providers. Your clearinghouse or practice management system turns it into the denial and payment reports you see.

Each adjustment on the 835 carries two kinds of codes, both maintained by X12.

CARC (Claim Adjustment Reason Code) says why the payment differs from the billed amount. Some common ones:

  • CARC 16: "Claim/service lacks information or has submission/billing error(s)."
  • CARC 29: "The time limit for filing has expired."
  • CARC 97: "The benefit for this service is included in the payment/allowance for another service/procedure that has already been adjudicated."
  • CARC 197: "Precertification/authorization/notification/pre-treatment absent."
  • CARC 50: non-covered because the payer doesn't deem the service a "medical necessity."
  • CARC 22: "This care may be covered by another payer per coordination of benefits."
  • CARC 27: "Expenses incurred after coverage terminated."
  • CARC 1, 2 and 3: deductible, coinsurance and copay amounts.

Group codes come before the CARC and tell you who owes it. CO is contractual obligation, so the provider writes it off or fixes it. PR is patient responsibility, so you bill the patient. OA is other adjustment. PI is payer-initiated reduction.

RARC (Remittance Advice Remark Code) adds detail to a CARC. A CARC 16 with RARC M127 ("Missing patient medical record for this service") tells you exactly what was missing.

So "CO-16 with M127" means: you owe the fix, the claim was incomplete, and the payer wants the medical record.

What to upload

You have two common starting points.

  • The denial or remittance report. Exported from your practice management system or clearinghouse. It should have claim ID, patient, date of service, payer, CPT code, rendering provider, billed amount, paid amount, group code, CARC and RARC.
  • The A/R aging report. Shows unpaid claims by how long they've been open: 0 to 30 days, 31 to 60, 61 to 90, 90 plus. Use it to find claims at risk of aging out.

Both contain PHI: patient names, dates of service, procedure codes. Upload them only to an AI tool that has signed a business associate agreement (BAA) with you. OpenAI says ChatGPT Free, Plus, Pro and Business are not eligible services. Anthropic says its Team and individual plans can't enable HIPAA. Rivvi includes a HIPAA BAA on the free plan, logs PHI access, and doesn't use patient data to train third-party models.

Delete columns you don't need, like full Social Security numbers. HIPAA's minimum necessary standard asks you to limit PHI to what the task requires.

The analysis to run

  1. 1

    Denials by payer

    Where is it concentrated?

    Count denied claims and denied dollars per payer. One payer with an outsized share usually means a contract, enrollment or authorization issue with that payer.

  2. 2

    Denials by code

    Why is it happening?

    Group by group code plus CARC. A cluster of CO-16 points to front-end data errors. A cluster of CO-197 points to the authorization process. CO-22 points to insurance verification at check-in.

  3. 3

    Denials by provider and service

    Who and what?

    Cut by rendering provider and CPT code. If one provider or one procedure drives a code, the fix may be documentation or coding training, not billing.

  4. 4

    Recoverable vs. not

    What's worth working?

    Sort denials into fixable (missing info, coding errors, missing auth where the payer allows a retro review), patient responsibility (PR codes, billed to the patient), and likely final (non-covered, expired filing limit).

  5. 5

    Timely filing risk

    What's about to expire?

    Flag every open claim near the payer's filing limit. For Medicare, claims must be filed within one calendar year of the date of service. Commercial limits are set in each payer contract.

On timely filing: under 42 CFR 424.44, a Medicare claim must be filed "no later than the close of the period ending 1 calendar year after the date of service." Commercial and Medicaid plans set their own limits, often shorter. Put your contract limits in a short table and ask the AI to apply them per payer.

If you plan to appeal a Medicare denial, the first-level appeal is a redetermination. CMS gives you 120 days from receipt of the initial determination, and receipt is presumed 5 calendar days after the notice date.

Upload last month's denial report

Free for you and two colleagues, with a HIPAA BAA. No card. No clock.

Prompts to copy

  • "Here's our August denial export. Group denials by payer and show count and denied dollars for each, highest first."
  • "Group the same file by group code plus CARC. For the top five, explain in one line what each code means and the usual fix."
  • "Cut CO-16 and CO-197 denials by rendering provider and CPT code. Is any provider or procedure overrepresented?"
  • "Sort every denial into fixable, patient responsibility or likely final. Show your rule for each bucket."
  • "Here's our aging report and our payer filing limits. List every open claim within 60 days of its limit, oldest first."
  • "Compare this month's denials by code to last month's. Which codes went up?"
  • "Write a one-page summary for our providers: top three denial causes this month and what each of them can do differently."

Save your payer filing limits and your bucket rules to the workspace memory. In Rivvi, your team can view, edit or remove that memory, and next month's analysis starts from it.

Drafting appeal letters

Once you know which denials to fight, the AI can draft the appeal. Give it the remittance line, the payer's denial reason, and the supporting documentation, such as the visit note or the authorization number.

Ask it to:

  • State the claim, patient, date of service and denial code at the top.
  • Explain in plain terms why the denial should be reversed.
  • Cite the specific documentation attached.
  • Leave a blank for anything it can't confirm from what you gave it.

Rivvi drafts the letter. A person on your billing team reviews it, checks every claim detail against the source, and sends it. Email from Rivvi is draft-only. AI can produce confident errors, called hallucinations, so never send an appeal nobody has read.

Fix the cause, not just the claim

Appeals recover money on claims already denied. The bigger win is stopping the next batch. Use the analysis to change something upstream:

  • CO-16 clusters: tighten registration and charge entry checks.
  • CO-197 clusters: fix the authorization workflow for the services involved. See prior authorization.
  • CO-22 and CO-27: verify coverage at every visit, not just the first.
  • CO-29: work the aging report weekly, not monthly.

Then rerun the same analysis next month and compare. For more operations prompts, see 25 AI prompts for medical practice managers.

Read your aging report in minutes, not days

Upload the export and ask what's driving denials. Free, with a HIPAA BAA.

Sources

Try it on your own data today.

Free to start. Most teams are using it the same day.