HealthcareFree
ERA 835 Remittance and Denial Triage
Every adjustment on the remittance decoded to its group and reason code, then called rework, appeal or write-off and ranked by what you can actually recover.
River's remittance and denial triage reads an 835 remittance file or a pasted EOB and turns it into a worklist. Every adjustment comes back decoded to its group code and its reason code, with the dollar amount attached and a call on each one: rework it, appeal it, or write it off. What you get is a sheet you can sort and a short document naming the patterns worth fixing upstream, so the same denial stops arriving next month.
Unlike the 835 reference guides that rank for this search, this does not stop at telling you what a segment means. Those explain that CLP carries the claim and CAS carries the adjustment, then leave you to work a queue of hundreds by hand. A reference tells you how to read one line. This one reads the whole file, prices every adjustment, and hands back the order to work them in. The single denial decoder is the better tool when you have one letter rather than a batch.
This is for medical billers and revenue cycle staff working a denial queue, practice managers deciding where two people should spend a Tuesday, and billing companies triaging remittances across several clients at once. Use it when a remittance lands carrying more adjustments than anyone has time to read, when the write-off column has grown and nobody can say why, or when the same reason code keeps reappearing. Once the queue is triaged, the denial appeal pack writes the appeals it turned up, and a root cause analysis across a quarter says why they arrived.
Why claim age is the wrong queue
Most denial queues are worked oldest first, which guarantees staff hours go to the claims least likely to pay. Age tells you when a claim was adjudicated. It says nothing about whether the money is still available. The group code answers that, and it settles the question before the dollar amount matters: X12 defines only four claim adjustment group codes, and a contractual obligation is money your contract already gave away. Sorting by age or by size, without reading the group code, is how a biller loses a morning to an uncollectable line.
Take two lines on one remittance. Claim 4471 billed $2,400, carries a CO-45 adjustment of $900, paid $1,200, and leaves $300 as coinsurance. Claim 4468 billed $310, paid nothing, and carries CO-197 for the full amount. A queue sorted by adjustment size opens the $900 first. But reason code 45 is a charge above the contracted rate, which X12 notes can arrive under either group code depending on liability, so the group code makes this one a write-off worth zero. Code 197 is authorization absent, and if that authorization existed, the whole $310 is collectable.
The second pass pays for itself. Group the file by reason code and payer, and a repeating pair stops looking like bad luck and starts looking like a process defect: a provider filing authorizations late, a front desk collecting the wrong plan identifier. CMS is blunt that the format is no help here, since the 835 is meant for electronic transfer and cannot easily be read without translator software, so the pattern stays invisible while the file stays unopened. Fixing the cause upstream removes next month's copy of the same denial.
How it works
Paste the remittance
The 835 as text, or the EOB if that is what the payer sent, plus one line on the practice.
River decodes every line
Each adjustment resolved to its group and reason code, priced, and checked against the claim arithmetic.
Get the triaged queue
A sheet with the call on every denial, ranked by recoverable dollars, and the repeating patterns.
Keep working in chat
Ask for one payer's lines only, or paste next month's file and see which patterns actually closed.
What you get
- Every adjustment on the file decoded to its group code, reason code and dollar amount
- A rework, appeal or write-off call on each denial, with the reason it got that call
- The queue ranked by what is genuinely recoverable, not by claim age or adjustment size
- Contractual write-offs held apart from denials, so nobody appeals a rate you agreed to
- Patient responsibility split out and ready for statements instead of sitting in the denial queue
- The reason code and payer pairs that keep repeating, with the upstream cause worth fixing
Common questions
Can it read a raw 835, or do I have to convert it first?
Paste it raw. The segment lines are what it wants, because CLP carries the claim totals and each CAS carries the adjustments underneath it. If your system only exports a human-readable remittance report or a PDF EOB, that works too, though a converted report sometimes drops the group code and the triage is weaker without it.
How does it decide what is worth appealing?
By what is recoverable, then by amount. The group code comes first, since a contractual obligation is not collectable however large it is. Among the rest it separates a coding or information failure you can rework from a policy decision you have to appeal, and ranks those by dollars. It flags anything ambiguous rather than guessing.
Will it tell me to appeal a contractual write-off?
No, and separating those out is most of the point. A charge adjusted down to your contracted rate is money the contract already allocated, so appealing it wastes the hour and annoys the payer. Those lines are labelled as write-offs and kept out of the work queue. If the adjustment looks larger than your contracted rate should produce, it says so.
What about the patient information in the file?
You control what you paste. Triage runs on group codes, reason codes, procedure codes and dollar amounts, so names, member identifiers and dates of birth are not needed for any part of it. Removing the identifying columns before pasting costs you nothing in the output. Treat this as administrative work on your own data and follow your practice's policy.
Does it work on an EOB instead of an 835?
Yes. An EOB is the same adjudication described for a person to read rather than a machine, so the codes and amounts are usually all there. The trade-off is that some payers print the reason code without the group code, which is the field triage leans on hardest. When that is missing it asks rather than assuming which side owes the money.
Can it handle a file with hundreds of claims?
Yes, and that is the case it is built for. A handful of denials does not need a worklist. It decodes every line, then reports the ranked queue and the repeating patterns rather than printing all of it back at you. When those patterns hold across months rather than one letter, denial root cause analysis traces each one back to the step that caused it.
ERA 835 Remittance and Denial Triage
Fill in the form and your workspace opens with the work already underway.