How to Read an EOB in Medical Billing and Catch Underpayments in 10 Minutes
By the time the EOB arrives, most teams have already moved on to the next claim. The work is done, the patient has left, and the claim has been processed. So the EOB gets a quick scan, and no one really knows if the payment was correct.
The worst part is that payers do not send a polite note when they pay you less than your contract. They just pay less, and the amount sits inside the EOB looking normal unless someone compares it to the fee schedule.
To see how quickly those losses add up, take a clinic that loses just 12 dollars per claim to silent underpayments:
- Per claim: 12 dollars lost.
- Per day at 50 claims: 600 dollars lost.
- Per month at 1,000 claims: 12,000 dollars lost.
- Per year: 144,000 dollars lost.
Nobody catches this in the moment because no single EOB looks suspicious. The leak only shows up when you start reading the EOB the way it deserves to be read.
That is why the first step in revenue cycle management in medical billing is understanding what this document actually means.
What an EOB Really Mean
EOB stands for Explanation of Benefits. The eob medical abbreviation shows up everywhere in claims work, but the meaning gets fuzzy because people use it loosely. Let us be precise.
The eob meaning is simple. It is a statement the insurance company sends after it processes a claim. It explains, line by line, what the payer decided to pay, what it adjusted off, what it denied, and what the patient now owes. It is not a bill. It is not a receipt. It is a decision letter, and like any decision letter, it can be wrong.
When you understand the eob in medical billing, you start treating it as a decision that should be checked, not just filed away.
In eob in medical billing, this document plays three roles at once:
- Payment confirmation: It tells you exactly how much the payer sent and for which line items.
- Adjustment explanation: It shows what was written off, what was disallowed, and why.
- Patient billing trigger: It tells you what amount to collect from the patient next.
Miss any of those three, and your cash flow takes a hit somewhere downstream. Now that the basics are clear, let us look at a real EOB line by line.
Inside Explanation of Benefits
Reading about an EOB is one thing. Looking at the numbers is another. Here is a typical explanation of benefits example for a single line of service.
| Field | Amount |
|---|---|
| CPT Code | 99214 |
| Billed Amount | 200.00 |
| Allowed Amount | 130.00 |
| Contractual Adjustment | 70.00 |
| Patient Deductible | 30.00 |
| Coinsurance | 20.00 |
| Paid by Insurance | 80.00 |
| Adjustment Code | CO-45 |
Look at this carefully. Here is what each line tells you:
- Provider billed 200 dollars for the visit.
- Payer allowed only 130 dollars as the negotiated rate.
- 70 dollars vanished as a contractual adjustment, written off because of the contract.
- Patient owes 50 dollars total: 30 for deductible, 20 for coinsurance.
- Insurance sent 80 dollars to the provider.
Was 130 dollars the right allowed amount? If your contract with this payer says CPT 99214 should be allowed at 145 dollars, you just lost 15 dollars and the EOB never said a word about it. That is the gap where underpayments live.
With the numbers in front of us, here is the fastest way to review one in ten minutes.
How to Read an EOB in 10 Minutes
The how to read an eob method is not about reading faster. It is about reading the right things in the right order. Most people read an EOB top to bottom like a letter. That is the slowest way to do it.
Here is the flow at a glance
Here is what each minute should looks like in practice.
Minute 0 to 1: Set up your reference
- Open the EOB on one side of your screen.
- Open the contracted fee schedule for that payer on the other side.
- Confirm the payer name on the EOB matches the fee schedule you pulled.
This single habit is what makes the whole method work. You cannot spot a wrong allowed amount if you do not know the right one.
Minute 1 to 3: Skip the header and go to line items
- Ignore patient name, claim number, and dates of service.
- Scroll directly to the first service line.
- Resist the urge to read top to bottom like a letter.
Patient name, claim number, and dates matter for filing but none of it matters for catching underpayments.
Minute 3 to 5: Compare allowed amounts only
- Look at the Allowed Amount column for each line.
- Match it against the fee schedule rate for that CPT code.
- Circle or flag any line where the two numbers do not match.
- Do not stop to investigate yet, just flag and move on.
Minute 5 to 7: Decode the adjustment codes
- CO-45. Charge exceeded fee schedule. Normal and expected.
- CO-16. Missing information for adjudication. Almost always fixable.
- CO-50. Service not deemed medically necessary. Worth fighting.
- CO-97. Procedure included in another service. Check bundling rules.
- PR codes. Patient responsibility. Move to patient billing.
- OA codes. Other adjustments. Read the remark code carefully.
Anything starting with CO that is not CO-45 needs attention.
Minute 7 to 9: Verify the math on each line
- Apply the formula: (Billed Amount) − (Contractual Adjustments) − (Patient Responsibility) = Paid Amount.
- If the math does not work, the EOB itself has an error.
- Errors here mean you contact the payer for a corrected EOB.
Minute 9 to 10: Final pass and decide
- Did anything get flagged in the previous minutes?
- If yes, claim goes into your follow-up queue.
- If no, post the payment and move on.
The reason this hack works is that you are not trying to understand the EOB. You are running it through a checklist. Understanding takes thirty minutes per claim. Checklists take ten. The flagged claims get the deeper look later, and the unflagged ones get processed without wasting your best people on routine math.
But not every payment issue is the same, so the next step is separating denials from underpayments.
Denials vs Underpayments: Know the Difference
This distinction matters because it changes what you do next. Mix them up and you waste hours fighting the wrong battle. This is where denial management and denial management services come into the picture, because they focus on a different type of problem.
A denial is when the payer pays zero dollars on a claim or line item. The paid amount is 0.00, there is a denial reason code, and the action is to either appeal or correct and resubmit. Denial management is a specific workflow built around recovering claims that were rejected outright.
An underpayment is when the payer paid something, just not enough. The paid amount is greater than zero but less than your contracted rate would suggest. There is no denial code. There may not even be anything that looks wrong on the surface. The action here is to file an underpayment appeal, which is a different process than fighting a denial.
Here is a side by side.
| Aspect | Denial | Underpayment |
|---|---|---|
| Paid Amount | 0.00 | More than 0, less than contracted |
| Reason Code | Always present | Often absent or misleading |
| Visibility | Obvious | Hidden in normal-looking numbers |
| Action | Appeal or resubmit | File underpayment appeal |
| Typical Cause | Coding error, missing info, eligibility | Fee schedule mismatch, system error, downcoding |
Most billing teams have a strong denial management process. Far fewer have a real underpayment process. That is why underpayments keep stacking up while denial management services stay busy fighting the obvious losses.
Before we get into spotting underpayments, there is one denial code worth covering first. It shows up constantly, gets misread almost every time, and quietly drains hours that could be spent on the harder problem. That code is CO-16. Once you stop losing time to this one, the underpayment problem becomes much easier to see.
What the CO 16 Denial Code Means
The co 16 denial code is one of the most common and one of the most misunderstood codes you will see. The official meaning is that the claim or service lacks information needed for adjudication.
That sounds vague because it is vague.
The whole point of CO-16 is that the payer is sending you a placeholder code that says “something is missing” without telling you what. The actual answer lives in a second code attached to it: the remark code.
CO-16 by itself is useless. CO-16 paired with its remark code is a clear instruction. Here are the remark codes you will run into most often:
- MA27. Missing or incomplete patient name.
- MA40. Missing or invalid admission date.
- MA130. Claim contains incomplete or invalid information.
- N382. Missing or invalid patient identifier.
- N4. Missing or incomplete prior payer information.
- N56. Procedure code billed is not correct for the date of service.
Each of these is a fast fix. Resubmit with the missing piece and the claim usually pays. The reason CO-16 keeps showing up as a permanent loss in billing reports is that teams stop reading after CO-16 and never get to the remark code that tells them what to do.
When you read the EOB, the adjustment codes are not a footnote.
The group code (CO, PR, OA, PI) tells you who is responsible for the unpaid amount. The remark code tells you why.
Read both, every time.
In other words, CO-16 is a denial problem with a clear fix once you read the full code. However, underpayments work the opposite way. You only find underpayments when you compare what the payer actually paid against what your contract says they should have paid. Here is what that looks like in practice.
How to Spot an Underpayment
Let us say you run a primary care clinic and you bill BlueCross for CPT 99214 about 250 times a month. Your contracted allowed amount is 145 dollars.
You pull up an EOB and see this on multiple claims:
- Billed: 200.00
- Allowed: 130.00
- Adjustment: 70.00 (CO-45)
- Paid: 100.00 (after patient responsibility)
The CO-45 looks normal. The math on the page works. The paid amount looks reasonable. Most people post this and move on.
But you check your fee schedule and the allowed amount should be 145, not 130. Here is what that 15-dollar gap actually costs:
- Per claim: 15 dollars underpaid (145 contracted minus 130 paid).
- Per month at 250 claims: 3,750 dollars lost.
- Per year: 45,000 dollars lost from one CPT code with one payer.
Now multiply that thinking across every CPT code you bill and every payer you contract with. The math gets uncomfortable fast.
The trick to catching this consistently is to build a reference table. For each payer, list your top twenty CPT codes by volume and their contracted allowed amounts. When you read an EOB, you are not memorizing fee schedules. You are checking against a cheat sheet. That is what makes the ten-minute method realistic instead of theoretical.
What to Do When You Find an Underpayment
Spotting an underpayment is half the work. The other half is doing something about it. Here is the flow that turns flagged claims into recovered dollars.
The key with underpayment appeals is documentation. You need three things in your appeal packet:
- The EOB itself. The version showing the underpaid line items, with the relevant fields highlighted.
- The contract page. The exact section of your payer agreement that lists the correct allowed amount for that CPT code.
- The variance statement. A short note showing the underpaid amount, the contracted amount, the difference per claim, and the total being appealed.
Payers process underpayment appeals slowly because they have less incentive to move fast. Your leverage is consistency. A clinic that appeals every underpayment gets a reputation that changes how the payer processes future claims. A clinic that appeals nothing keeps getting underpaid.
If a payer keeps underpaying the same code, that is not random. It usually means one of three things:
- Fee schedule loaded incorrectly on the payer’s side after a contract update.
- Contract interpretation dispute where the payer reads the agreement differently than you do.
- Deliberate downcoding where the payer reprocesses your higher-level service as a lower one.
Patterns matter more than individual claims, so logging your underpayments by payer and CPT code is what turns one-off recoveries into systemic fixes.
That is why EOB review sits at the center of cash flow.
Closing Thought: Why EOB Review Protects Cash Flow
Pull all of this together and the picture is clear. The EOB is the moment of truth in your revenue cycle. Every claim, every appeal, every patient bill, every cash projection traces back to what the EOB says and how it was read.
When EOB review is rushed, here is what breaks down the chain:
- Denials get missed, so denial management slows down and timely filing windows close.
- Patient bills go out wrong because patient responsibility is misread off the EOB.
- Underpayments accumulate because nobody compares allowed amounts to contracts.
- Appeals never get filed because the discrepancies were never spotted in the first place.
When EOB review is sharp, the same chain runs forward:
- Claims get posted accurately with adjustments mapped to the right codes.
- Denials get caught and worked the same day, often before timely filing becomes a risk.
- Patient bills go out correct the first time, cutting refund work and dispute calls.
- Underpayments get flagged, appealed, and recovered instead of silently absorbed.
Ten minutes per EOB is not a lot. It is one structured pass with a fee schedule open and a checklist in your head. Do that consistently and the money you have been losing to silent underpayments starts coming back. Skip it and you keep funding your payer’s quarterly profits with the gaps in your own attention.
That is the case for reading the EOB the way it deserves to be read. It is not glamorous work. But it is some of the highest-leverage work in the entire billing operation, and ten minutes is all it takes to do it right. If you want to find out exactly how much your practice has been losing, a medical billing audit can show you the numbers in one review.
Frequently Asked Questions About Reading an EOB in Medical Billing
What does EOB mean in medical billing?
An EOB (Explanation of Benefits) is a statement the insurance company sends after processing a claim. It shows what the payer paid, what was adjusted off, what was denied, and what the patient owes. It is not a bill or a receipt — it is a decision letter that your billing team should verify against the contracted fee schedule every time a claim is processed.
What is the difference between a denial and an underpayment on an EOB?
A denial is when the payer pays zero dollars and issues a denial reason code. An underpayment is when the payer paid something but less than the contracted rate — with no code to flag it. Denials are visible and immediate. Underpayments are hidden inside numbers that look correct until you compare them line by line against your fee schedule.
What does the CO-16 denial code mean?
CO-16 means the claim lacks information needed for adjudication. It is always paired with a remark code — such as MA27 for a missing patient name or N56 for an incorrect procedure code date — that tells you exactly what to fix. Read the remark code every time. Most CO-16 denials are resolved with a resubmission once the missing piece is identified.
How do you spot an underpayment on an EOB?
Compare the Allowed Amount on each EOB line against your contracted rate for that CPT code. If the EOB shows a lower allowed amount than your contract, that gap is an underpayment. Building a reference table of your top 20 CPT codes per payer makes this comparison fast and repeatable without memorizing fee schedules.
What documents do you need for an underpayment appeal?
Three documents: the EOB showing the underpaid line items with the key fields highlighted, the specific page of your payer contract listing the correct allowed amount for that CPT code, and a variance statement showing the underpaid amount, the contracted amount, the difference per claim, and the total being appealed.
Why do payers keep underpaying the same codes?
Repeat underpayments on the same CPT code usually point to one of three causes: a fee schedule loaded incorrectly on the payer’s side after a contract update, a contract interpretation dispute where the payer reads the agreement differently, or deliberate downcoding where the payer reprocesses higher-level services as lower-level ones. Patterns by payer and CPT code should be escalated to a contract review.

Silent EOB underpayments cost $144K yearly?
Recover what payers owe you with an expert billing audit.
Written by Dr Girirajtosh Purohit