Skip to content
Medical coding

Denial-to-Appeal Desk

Turns denial letters into structured records, groups them by root cause, and drafts appeals from the chart for a person to approve.

A denial read

Every payer letter read into a denial record, each value from its line

A payer's notice of claim denial as it arrived, beside the denial record the desk read from it: payer, claim number, member ID, date of service, notice date, billed and denied amounts, the reason code with its illustrative description, the root cause and the last day to appeal. The denied amount is selected and the line it came from is highlighted on the page, with its line reference shown under the value.The real screen, on synthetic data
The denied amount, read from line 20 of the payer's notice

Demo built on synthetic data.

1 of 5: A denial read

The problem

Denials arrive as scanned letters and remittance codes. Someone reads each one, keys it in and writes an appeal from scratch while the appeal window closes. The pattern behind the denials stays invisible because nobody has time to count them.

What it does

Claim deniedAster Demo HealthMissing modifierDenial recordPayerAster Demo HealthClaimCLM-DEMO-20417ReasonMissing modifierDenied2 Oct 2026Amount$1,316.75

It reads denial letters and remittance remarks into a record — payer, claim, reason, dates, amount.

Root causesOctober, by reason and payerDenialsMissing modifier9Aster Demo HealthRepeat cause7Juniper Demo Care2No prior authorisation4Marlow Demo Insurance4Visit level not supported2Aster Demo Health2

It groups denials by reason and payer so repeat causes show up.

Progress noteCH-DEMO-01471Right knee OA23Appeal draftTo Aster Demo Health123Drafted by the toolApprove and send

It drafts each appeal from facts already in the chart and marks every fact it used.

Appeal deadlinesToday, 12 OctUrgent firstDec1CLM-DEMO-20471Aster Demo HealthIn 50 daysNov6CLM-DEMO-20452Marlow Demo InsuranceIn 25 daysOct24CLM-DEMO-20417Aster Demo HealthIn 12 daysOct14CLM-DEMO-20388Juniper Demo CareIn 2 daysSenior review

It tracks each appeal deadline and moves urgent ones up.

Try to break it

On the call we'll trigger these, live:

  • One PDF holds two claims. It's split, and both are flagged for a check.
  • A fax is unreadable. It goes to a person with the unreadable pages marked.
  • A payer portal is down. Appeals are held, and each is sent once on replay when it's back.
  • An appeal is due in 48 hours. It moves to the top and goes to a senior.
One PDF, as it arrivedCLM-DEMO-20511CLM-DEMO-20512Record 1 of 2CLM-DEMO-20511Check the splitRecord 2 of 2CLM-DEMO-20512Check the split

Where it runs

Inside your network, next to Coding QA Copilot.

Who else does something like this

CombineHealth sells AI agents for revenue-cycle work, including denials and appeals.

Stafflo's version runs in your environment, cites only facts found in the chart, and sends nothing without a person's approval.

The rules it respects

Medical-necessity denials always go to a person. Appeals cite only what the chart says.

What our tests measured

How we test

These figures come from test runs on Google's Gemini (gemini-3.5-flash-lite), a hosted model, on synthetic data. We'll add runs on a local model.

Fields read correctly from denial letters and remittance advice99.44%
Fields a document doesn't state, or a page can't show, left empty100%
Denials put under the right root cause99.61%
Lines in drafted appeals tied to a real span in the chart or the letter100%
Medical-necessity, fraud, audit, recovery and legal denials sent to a person100%
Chart facts an appeal should cite that the draft cited87.13%
PDFs holding two claims split into the right two records100%
Median time to read one document and draft its appeal4239 ms
  • Run on 13 October 2026
  • Model: gemini:gemini-3.5-flash-lite
  • 314 examples
For your engineers
Engines
Extractor, Gatekeeper, Reconciler, Proof Console
Sealed mode
Test passed: with sealed mode on, it refuses every outbound connection except to the model you've approved.

Data flow

Denials from payers (synthetic)Denial lettersfaxes, printoutsRemittance adviceSplit by claimin code, before a modelExtractor engineeach value with its wordsRoot cause, deadlinereason code, payer windowKeyword gatenecessity, fraud, audit, legalNeeds a personno draftChart factswith their spansGatekeeper enginedrafts the appealSentence checkeach line tied to a spanA person approvessigned inReconciler enginesent once, held for replayPayer appeal portalssix, simulatedaudit_log and approvals, append-only