EOB Posting Errors: How to Catch Adjustment Errors
The costliest EOB posting mistakes rarely look like mistakes. A contractual adjustment posted a little high, a CO code dropped where a PR code belongs, one CDT line…
The costliest EOB posting mistakes rarely look like mistakes. A contractual adjustment posted a little high, a CO code dropped where a PR code belongs, one CDT line skipped on a multi-procedure claim — each looks routine in the moment and only shows up later as a distorted AR balance, a wrong patient bill, or an appeal window that already closed. Dental billing audits keep landing on adjustment errors as one of the biggest sources of unexplained AR.
This guide is for office managers, billing coordinators, and DSO operations teams who want a repeatable way to catch adjustment errors before they age out. We will cover the five most common types, a daily audit you can actually run, and where cleaner front-desk intake quietly removes a major upstream cause. Velano does not post EOBs or do billing — but the section at the end explains the part of this problem that starts on the booking call.
Key takeaways
- CO-45 contractual adjustments are the most-missed error type because a large write-off looks normal at posting time. Verify it against your current contracted rate, not last year's fee schedule.
- CO (Contractual Obligation) and PR (Patient Responsibility) codes get swapped constantly. A CO amount posted to the patient ledger is improper patient billing, not just an accounting slip.
- A daily three-way match — ERA/EOB, PMS, and bank deposit — is the single most reliable control. When two of the three diverge, you have an error to chase.
- Elevated AR days (often 45–60+) usually signal a posting problem, not a collections problem. The root cause is frequently upstream intake data.
- Auditing adjustments above a small threshold (many teams use $5–$10) each week recovers underpayments that would otherwise disappear.
What an adjustment error actually is
An adjustment error happens when a payment posts with the wrong adjustment amount, the wrong adjustment code, or an adjustment applied to the wrong party. The most common form is a contractual adjustment recorded incorrectly: the gap between your billed fee and the carrier's contracted rate gets written off at the wrong number, or charged to the patient instead of absorbed by the practice.
Both directions cost you. Write off too much and you give away revenue you were owed. Push a contractual amount onto the patient and you have billed someone for money they don't owe under your payer contract — a compliance exposure that can trigger a state dental board complaint. These errors hide in AR aging and write-off reports until a systematic audit surfaces them.
The five most common adjustment errors
| Error type | Codes involved | Who absorbs it | How you catch it |
|---|---|---|---|
| CO-45 misposting | CO-45 | Provider or patient | CO-45 exception report |
| CO/PR code mix-up | CO-45, PR-1, PR-2, PR-204 | Varies by code | Patient balance audit |
| Partial/missed posting | All codes | Provider | Open claim line review |
| Decimal/transposition | Any | Provider or patient | Daily reconciliation |
| Fee schedule mismatch | CO-45 primarily | Provider | CDT fee schedule audit |
CO-45 means "charge exceeds fee schedule / contracted fee arrangement" — the difference between your billed fee and your contracted rate. It should post as a contractual write-off the practice absorbs; it can never be billed to the patient. A $500 CO-45 on a procedure with a $400 contracted rate is a red flag, usually a stale fee schedule, the wrong plan applied, or a payer processing error.
CO vs. PR comes down to who owes the money. CO is the provider's obligation and may never be billed to the patient. PR is the patient's — deductibles, coinsurance, non-covered services. Swap them and you send the wrong balance to the wrong party. Partial postings leave phantom balances when a CDT line is skipped or an EOB page missed. Decimal and transposition errors ($123.45 keyed as $1,234.50) come from high-volume manual entry. Fee schedule mismatches appear when a payer renews rates and your PMS still carries the old ones, so every claim on those codes posts a wrong adjustment.
A daily audit that catches most of it
Step 1: Run the three-way match
Each morning, compare three numbers for the prior day's postings: the ERA 835 or paper EOB (what the payer says it paid), the PMS claim record (what you posted), and the bank deposit (what actually cleared). When all three agree, posting was accurate. When any two diverge, you have an adjustment error, a timing gap, or a payment that didn't post correctly. For most practice volumes this takes 10–15 minutes and catches errors while they're still inside the payer's response window.
| Check | When to run | Action if it doesn't tie |
|---|---|---|
| EOB total vs. bank deposit | Each morning | Flag unmatched payments same day |
| PMS posted vs. ERA total | During posting | Review each claim line for a missed post |
| CO-45 vs. contracted rate | During posting | Verify fee schedule; dispute payer math |
| Patient balance = PR only | Before statements | Reverse and repost any CO in the patient column |
| Payment less than contracted allowed | During posting | Open a 48-hour follow-up for a payer dispute |
Step 2: Verify CO-45 against your fee schedule
For every CO-45, pull the current payer fee schedule and check the specific CDT code. Does the adjustment equal billed fee minus contracted allowed amount? If it's larger than expected, confirm the right plan was applied and that coverage was verified before the visit. If smaller, make sure it's a real higher allowed amount and not a data-entry slip. Small discrepancies at scale are real revenue leakage. Recurring CO-45 overages on the same code usually point to a stale schedule — closely related to the bundling reductions you should be reviewing line by line.
Step 3: Confirm CO vs. PR accuracy
After posting, the patient balance should include only PR-coded amounts — deductible (PR-1), coinsurance (PR-2), non-covered (PR-204). It should never include a CO amount. Sort the last 30 days of patient balances, filter for any that reference a CO code, and correct them before statements run. This is the same discipline that prevents the write-off errors that silently drain revenue.
Step 4: Catch underpayments before the deadline
An underpayment — the carrier paying less than your contracted allowed amount — is different from a contractual adjustment, and you're owed the difference. Compare the ERA payment to the allowed amount, and when it's short, open a 48-hour task to file a corrected claim or dispute. Appeal windows vary widely, so catching shortfalls at posting is the only reliable way to stay inside them. For the full method, see how to catch underpayments at posting.
| Carrier | Typical appeal window | Window starts |
|---|---|---|
| Delta Dental | 12 months | Date of service |
| Cigna Dental | 180 days | ERA/EOP date |
| Aetna Dental | 180 days | Date of payment |
| MetLife Dental | 90–180 days | Claim payment date |
| United Concordia | 12 months | Date of service |
Always confirm windows against your specific contracts — these are a starting reference, not gospel.
Step 5: Log every discrepancy
Keep a running log: date identified, claim number and payer, error type, dollar amount, and action taken. It shows which payers and error types recur (where to focus training) and documents your compliance effort if a billing audit happens.
Common mistakes to avoid
- Posting the total and moving on without reviewing each adjustment line. Build a posting checklist — amount, code, adjustment, patient balance — and require it before a claim is marked posted.
- Accepting every CO-45 unverified. Audit against current contracts quarterly and on every renewal notice.
- Letting fee schedules go stale. Make a fee schedule update the first action triggered by any contract renewal.
- Skipping the three-way match on busy days — exactly when most errors happen.
For DSOs, the highest-leverage controls are a centralized adjustment code library (every location maps codes to the same buckets) and a weekly CO-45 exception report sorted by CDT code and payer. If your error rate concerns you, comparing manual versus automated EOB processing error rates helps you decide where automation actually pays off.
How Velano helps upstream
Velano does not post EOBs, calculate adjustments, reconcile deposits, or do any billing or revenue-cycle work. It is an AI receptionist for dental practices. Its value lands before the claim is ever submitted — which is exactly where a surprising share of adjustment errors begin.
Many CO-45 mismatches and fee-schedule errors trace back to incomplete insurance details captured at scheduling: a wrong group number, the wrong plan code, a missing subscriber ID. When that data is wrong, the claim goes out against the wrong contract and the adjustment math is off from the start. Velano answers every call and text 24/7, books directly into your PMS, and collects the plan, group number, and subscriber ID on the booking call, so fewer claim-data mismatches reach billing. It also protects focus — when billers are pulled to the phone all day, the daily three-way match is the first thing to slip, so covering the phones keeps the uninterrupted time this audit work needs. Velano won't read a CARC or dispute an underpayment for you, but it keeps intake clean and the desk staffed.
See how Velano keeps your front desk covered.
Stop losing patients to voicemail.
See how Velano answers every call, books into your PMS, and follows up — so patients show up.