← Back to all work
AI Product Strategy Revenue Cycle Automation Human-in-the-Loop AI Enterprise EMR/RCM

AI-Powered Revenue Cycle Automation: Denial Appeals & Payment Posting

Designing and training AI agents to assemble payer appeal packets and post both electronic (ERA) and scanned (EOB) payments — including teaching a bot to read poor-quality scans, payer-specific terminology, and complex reimbursement math — for an enterprise EMR/RCM platform.

45 sec vs. 10 min for manual appeal packet assembly
12 CO denial codes mapped to appeal letter logic
2 Payment sources automated: ERA & scanned EOB
1 PM owning process design, AI training & reporting end-to-end

A revenue cycle team buried in repetitive, high-stakes manual work.

Every denied claim required a billing staff member to manually identify the denial code, locate the right appeal letter template, retrieve the EOB (either from the system or via fax), generate the claim form, pull medical records, assemble everything into a packet, save it to the patient's chart, and update the collections record — roughly 10 minutes per claim, multiplied across hundreds of denials a day.

Payment posting carried a different but equally heavy burden. Some payments arrived as electronic remittances (ERA) that could be matched and posted directly in the system. Others arrived as scanned EOB packets, faxed weekly from facilities — sometimes dozens of EOBs in a single document, with inconsistent scan quality, payer-specific terminology, and reimbursement math that staff had to interpret and calculate by hand.

The assignment: As the sole product manager on this initiative, define the end-to-end process logic, AI training requirements, and human-in-the-loop design for two automated workflows — denial appeal packet assembly and payment posting (both ERA and scanned EOB) — for an enterprise EMR/RCM platform.

Two very different automation problems, both with no margin for error.

Denial Appeals

Payment Posting

Document the logic a 10-year billing veteran knows by instinct — then teach it to a bot.

01 Process Definition

Mapped the complete denial appeal workflow: denial code identification, appeal letter logic, EOB/HCFA/medical records retrieval paths, packet assembly, and chart filing — including every blocked/needs-review condition

02 AI Training: ERA

Defined matching logic for electronic remittances — check number, carrier, and amount — to enable high-confidence auto-posting

03 AI Training: Scanned EOBs

The hardest phase — built a payer-by-payer normalization framework and global mapping rules to read inconsistent, unstructured EOB formats

04 Human-in-the-Loop & Audit

Defined exactly when the bot auto-completes vs. routes to staff (Completed / Needs Review / Blocked), and designed dual reporting

Phase 03 was the hardest part of the project. Across more than a dozen payers, the same data point — the amount the insurance allows for a service — appeared under entirely different labels: “Allowed Amount,” “Eligible Expense,” “Contract Allowance,” “Payable,” “Allowed/QPA.” The same was true for write-offs (“Provider Discount,” “Disallowed,” “Fee Reduction/Excluded,” “Not Covered”), and for the patient's portion (“Patient Liability,” “Member Owe,” “Patient Resp.,” or “Co-Pay/Co-Insurance/Deductible” as three separate fields).

I built a normalization framework — a payer-by-payer field map plus a single AI prompt with global mapping rules — that taught the bot to:

This wasn't a one-time prompt — it was a living specification, refined payer by payer as new EOB formats surfaced. The mapping covered carriers including Aetna, Humana, UnitedHealthcare (Optum Pay), BlueCross BlueShield, Cigna, UMR, NALC, Amguard, Premera, Employee Benefit Systems, Medical Mutual, Allegiance, and Nationwide.

Aetna Humana UnitedHealthcare (Optum Pay) BlueCross BlueShield Cigna UMR NALC Amguard Premera Employee Benefit Systems Medical Mutual Allegiance Nationwide

A fully documented, trainable process — covering the easy data and the hard data.

Denial Appeal Automation

ERA & EOB Payment Posting

Daily Productivity & Audit Reporting

From 10 minutes of manual assembly to 45 seconds of AI processing — for the easy cases. For the hard cases, an AI that finally understands the paperwork.

10min → 45s Denial appeal packet assembly time
2 for 2 Both ERA and scanned EOB payments now automated
100% Auditable: daily reporting plus per-claim history notes

What this project taught me.

“Posting an ERA is the easy version of this problem — the data is already structured. The real work was the scanned EOB packets: faxed weekly, sometimes dozens of patients in one file, every payer using slightly different language for the same thing. Teaching the bot to find the right EOB in that packet, read it despite a bad scan, and do the math correctly — that's not a prompt, that's a process. You have to document every variation a human would recognize instinctively, because the bot won't recognize anything you didn't tell it about.”

This project reinforced that AI automation in revenue cycle isn't about replacing judgment — it's about encoding judgment so clearly that a system can apply it consistently, and flagging the moment that judgment runs out. The blocked/needs-review logic wasn't a limitation of the AI — it was the most important design decision in the whole project.