Auto-Posting Rules
Auto-posting is a posting engine matching a structured remittance advice to the claims it decided about and booking the payment and its coded adjustments with no one keying anything. The rules are what decide which lines it may close on its own and which it must hold for a person. And the design problem is not the lines it posts — a clean, matched, expected line is the easy case and needs no rule beyond book it. It is the lines the engine must refuse to post: the conditions under which it stops. A rule set is only as trustworthy as the exceptions it agrees to make.
Updated 12 min read
On this page
Key takeaways
- An auto-posting rule is a standing decision to close an account without a human looking at it, executed forever without review. So the design work is in the hold criteria — the conditions under which the engine stops and routes a line to a person — not in the lines it posts.
- A rule routes by category; it cannot check an amount. A group code tells the engine whose an amount is, not whether it was the size the contract required — no code does — so no rule can catch a contractual adjustment that came in too large. Routing is not correctness.
- A rule fails the way automation fails: consistently, at volume, without hesitation. A misconfigured mapping applies the same wrong outcome to every matching line, which makes the rule set a governed artifact — change-controlled, tested before it runs live, and its output sampled.
- A held line is the rule set working, not failing. The exception queue is the point of the design — but a hold only helps if the queue is worked, or the payment sits as unapplied cash while the account it belongs to waits.
A rule is a standing decision to close an account no one will look at
Automated posting is worth doing, and where a remittance can be posted automatically it usually should be. Software matching a structured remittance to structured claims is faster and more consistent than a person keying it line by line, and manual keying introduces exactly the transcription errors that How Payment Posting Works is about. Federal guidance describes the electronic remittance, once reassociated with its payment, as something that enables a provider to auto-post payments to its receivables. The engine reads the payment and the coded adjustments off the transaction and books them against the accounts.
On every line the engine makes two decisions in sequence. First it matches — pairs the remittance line to the claim and line it belongs to. Then it decides post or hold — book the amounts and close the balance, or route the line to a person in an exception queue. The whole subject of auto-posting rules is that second decision, and the reframing that matters is this: every automatic post is a decision made once, in a rule, and then executed forever without anyone reviewing it again.
That changes what you are actually designing. You are not writing rules for the lines the engine should post — a clean, matched, expected line needs no rule beyond a default to book it. You are writing rules for the lines it must not post on its own: the conditions under which it has to stop. The quality of a rule set lives entirely in its hold criteria, because those are the only part whose job is to keep a balance open when closing it would be a mistake.
You design the stops, not the posts
What a rule set has to refuse to post
The hold criteria are a short list of situations where an engine has no business closing a balance by itself. Each of these belongs to another article that owns the task in full; the point here is only that a rule set is the thing that recognizes them and routes the line instead of posting it.
- A line that did not match a claim, or matched more than one. There is nothing to post it against, and forcing it onto the closest-looking account is one of the ways a payment becomes unapplied cash — money holding in suspense while the account it truly belongs to still shows outstanding.
- A denied or zero-pay line. An engine can record the zero, but the work a denial creates — reading the reason and group codes, deciding whether to appeal — is a person's, and Reading a Denial owns those codes. A rule that closes a denied line as though it were resolved buries the very thing that needed working.
- An adjustment carrying a code the rule set does not recognize, or does not expect on that kind of claim. An unmapped or surprising code is by definition the case the rules cannot handle — routing it to a person is the only honest outcome.
- A provider-level amount. An offset or recoupment and a late-payment interest amount ride on the remittance but are not payments on any current claim; posting them as though they were invents false claim activity. How each is posted belongs to Posting a Payer Offset and Posting a Payer Interest Payment.
- A line whose secondary billing or patient balance turns on detail the automatic path would flatten. A secondary claim has to carry what the primary did; a rule that closes the primary without preserving that detail leaves nothing to send.
- A line whose amounts fall outside a tolerance the practice set. Including a contractual adjustment larger than the loaded contract implies — though, as below, a rule can only flag the discrepancy for a person, never resolve it.
The through-line is that each of these is a case where posting the line closes something that should have stayed open — an unresolved denial, an unbillable secondary, a suspense item, a possible underpayment. A rule set's real function is to keep those open. This is the concrete content of a general truth How Payment Posting Works states plainly: automation does not remove the difficult work, it concentrates it in the exception queue, and the queue is the job. The hold criteria are what decides what the queue contains.
A rule routes by category; it cannot check an amount
What makes auto-posting possible at all is that the remittance is standardized. The electronic remittance is a structured, machine-readable transaction adopted as a national standard, and its adjustments are coded — a claim-adjustment group code naming the category of an amount, paired with a reason code that names the specific reason. Industry operating rules push the standardization further, maintaining a defined set of allowed combinations of those codes mapped to a small number of business scenarios, precisely so that the same situation is expressed the same way on every payer's remittance and an engine can map it to an action. That coded, standardized structure is the substrate a rule set is built on.
But it is worth being exact about what a rule can and cannot read from that structure. It reads a category, and it routes on the category. It cannot read a magnitude. A group code tells the engine that an amount is the provider's contractual obligation to absorb, or the patient's responsibility to pay; it never tells the engine that the amount was the size the contract actually required — and no code does. So a rule can send a contractual-obligation adjustment down the auto-post path entirely correctly, judged by category, and be closing a balance over a shortfall. Checking the size of that adjustment is a different control, the one Validating Contractual Adjustments owns, and it needs a reference the engine does not hold: the loaded contract. The rules route; they do not validate.
Routing is not correctness
A rule fails the way automation fails
Manual posting produces scattered transcription errors — a wrong figure here, a mis-keyed account there, each one its own mistake. A rule produces one error, repeated. A mapping that sends a code combination to the wrong bucket does it to every line that matches, at volume, without a moment of hesitation, which is exactly what a person doing it by hand would not do. Automation removes the typing error and scales the configuration error. That trade is worth making, but it is a trade, and it decides how a rule set has to be treated: because a wrong rule is systematic rather than occasional, the rule set is an artifact to be governed, not a convenience to set once and forget.
- Change control. A change to a rule is a change to how every future remittance posts. It is reviewed and recorded, with a reason, not edited live on a hunch.
- Test before it runs live. A new or changed rule is run against known remittances and its postings checked before it is turned loose on volume — the cheapest place to catch a mapping that closes what it should have held.
- Sample what auto-posted. The auto-post path produces no exceptions by definition, so nothing surfaces its errors unless someone deliberately looks. Reviewing a sample of what closed automatically is the only feedback the silent path gives.
- Reconcile regardless. Auto-posting does not relieve the completeness control; the cash still has to be proven against the bank, which Payment Reconciliation owns. An engine that posts everything perfectly against the wrong total still has to answer to the deposit.
And a rule set is never finished, because the codes it reads do not hold still. The reason and remark code lists are externally maintained and updated on a published schedule; payers and plans are added; contracts amend. A mapping that was complete last year silently drops the combinations added since into the unmapped-and-therefore-held pile — the safe failure — or, if a rule was written too broadly, posts them under an assumption that no longer holds, which is the unsafe one. Maintaining the rule set against the current code lists and the current payers is not preparation for the work; it is part of the work.
The held pile is the design working
It follows that a rule set which holds too little is more dangerous than one that holds too much. The lines it wrongly holds are visible — they sit in a queue, waiting, costing time. The lines it wrongly posts are invisible — they closed. So the failure worth designing against is under-holding, and the measure of a good rule set is not how much it manages to auto-post but whether everything it does auto-post was genuinely safe to close without a human. A high auto-post rate bought by closing things that needed a look is not efficiency; it is loss that does not show up as loss.
But a hold is only half of a control. A line routed to an exception queue and then not worked is not resolved — it is a payment sitting in suspense while the account it belongs to still shows outstanding, the unapplied cash problem seen from the automation side. Everything else in Payments & Posting is about posting money correctly as it arrives; auto-posting rules are about deciding, correctly, which money the machine may post and which it may not. Good hold criteria move the judgment to one place. They do not do the judging — the queue still has to be worked, or the rule set has only relocated a backlog rather than prevented one.
A rule you cannot explain, you cannot trust
Common questions
What is an auto-posting rule, exactly?
It is a stored instruction that tells the posting engine, for a given kind of remittance line, whether to book it and close the balance or route it to a person. The engine makes two decisions on every line: first it matches the line to the claim it belongs to, then it decides post or hold. The rules govern that second decision. Each automatic post is a decision made once and then executed on every matching line thereafter without anyone reviewing it again, which is why the rules — not the individual postings — are what has to be right.
If we auto-post, will the engine catch an underpayment or a contractual adjustment that is too large?
No. A rule routes a line by the category its codes carry, not by the size of the amount. A group code can tell the engine an amount is the provider's contractual obligation to absorb, but no code says whether that amount was the size the contract required — so an oversized contractual adjustment posts down the automatic path looking entirely normal. Catching it is a separate check, validating the adjustment against your loaded contract, which needs a reference the posting engine does not hold. Auto-posting is a routing decision; validation is a correctness one.
What should never be auto-posted?
Anything an engine cannot safely close on its own: a line that did not match a claim or matched more than one; a denied or zero-pay line, because the work it creates is a person's; an adjustment carrying a code the rule set does not recognize or does not expect on that claim; a provider-level offset or interest amount, which is not a payment on a current claim; a line whose secondary billing or patient balance depends on detail the automatic path would flatten; and any line whose amounts fall outside a tolerance you set. Each of these is a case where posting the line would close something that should have stayed open.
Does auto-posting reduce the posting work?
It moves the work rather than removing it. Automation handles the unambiguous lines; what it cannot resolve lands in an exception queue, and that queue is now where the judgment is concentrated. It also adds a kind of work that manual posting did not have: governing the rule set itself. A misconfigured rule fails consistently, at volume, so the rules need change control, testing before they run live, a periodic look at a sample of what closed automatically, and maintenance as the code lists and payers change. The typing goes away; checking the rules and working the queue do not.
Key terms in this article
Defined once, on their own pages.
Continue learning
Where to go next.
How Payment Posting Works
Why automation moves the work to an exception queue rather than removing it, and scales configuration error rather than transcription error.
Validating Contractual Adjustments
The correctness check a rule cannot make: re-deriving what the contract should have allowed for the one figure auto-posting books as transmitted.
Unapplied Cash
Where a payment ends up when a rule closes it against the wrong account — or when a held line is never worked.
Payment Reconciliation
The completeness control auto-posting does not relieve — proving the posted record against the bank.
Net collection rate calculator
The metric computed from posted data — only as trustworthy as the rules that produced the posting.
Authoritative sources
- CMS — Electronic Funds Transfer (EFT) and Electronic Remittance Advice (ERA) Transactions (opens in a new tab)
Describes the adopted ASC X12 835 electronic remittance and states that, once reassociated with its EFT payment, the ERA enables a provider to auto-post payments to accounts receivable — the automation an auto-posting rule set governs.
- CAQH CORE — Uniform Use of CARCs and RARCs (835) Operating Rule (opens in a new tab)
An industry operating rule written so that providers can automatically post claim payment adjustments and denials: it defines a maintained set of allowed CARC, RARC, and claim-adjustment group-code combinations mapped to a minimum set of standard business scenarios, so the same situation is reported consistently across payers and an engine can map it to an action.
- CMS — Medicare Claims Processing Manual, Ch. 22 (Remittance Advice), §30 and §60.1 (opens in a new tab)
Requires the 835 remittance to balance and defines a claim-adjustment group code as naming the general category of an amount — a Contractual Obligation (CO) amount generally a provider write-off — without certifying that the amount is the size the contract required. A rule routes by that category; it does not judge the amount.
- X12 — the 835 transaction and its external code lists (opens in a new tab)
Maintains the ASC X12N 835 claim payment/advice transaction a posting engine reads, and the claim-adjustment reason and group codes carried in its CAS segment. The reason and remark code lists are externally maintained (CARCs by X12, RARCs by CMS) and updated on a published schedule, so a rule set keyed to them has to be maintained as they change.
