How to Extract Data From EOBs Automatically (2026)

October 11, 2026

To extract data from EOBs automatically, upload your EOBs to Lido, list the fields your billing system needs, and add instructions for how to handle adjustment codes. Lido reads every payer's format with AI, so one setup works for Blue Cross, Aetna, Cigna, Medicare, and Medicaid EOBs.

In this tutorial, we will walk you through how to extract data from EOBs automatically using Lido. Simply follow the steps below.

How to Extract Data From EOBs Automatically

Lido is the best way to extract data from EOBs because it reads each document the way a person would instead of relying on templates. One Lido setup handles every payer's layout, so you don't need to build or maintain a separate template for each insurance company.

Step 1: Log Into Lido

If you don't have a Lido account yet, you can create one for free here. You get 50 free pages, and no credit card is required.

Once you're logged in, create a New File.

__wf_reserved_inherit

Step 2: Click Extract Data

Select the Extract Data button at the top of the sheet.

__wf_reserved_inherit

Step 3: Upload Test EOBs From Your Top Payers

Start with EOBs from your top three to five payers by volume. Include at least one Blue Cross, one Aetna or Cigna, one Medicare RA, and one Medicaid MCO if they apply to you.

Drag and drop the files into Lido, or click to browse. You can upload up to 100 files at a time.

For the purpose of this tutorial, we will be using a sample EOB from a fictional health plan.

__wf_reserved_inherit

Step 4: Define Your Output Columns

Enter the columns your practice management system expects for payment posting. For the sample EOB, that would be Date of Service, Description, Amount Billed, Plan Discount, Amount Allowed, and You Owe.

Use your system's exact column names so you can import the output without reformatting it. You can also add extra instructions if you'd like (this is optional), such as how to format dates or which section to pull line items from.

Once done, click Process All Files.

__wf_reserved_inherit

Step 5: Review Your Data

Review the extracted data to make sure it's in the format your billing system needs. You can edit cells, rename columns, or reorganize the data to suit your workflow.

If you want to change the output, such as adding a column, update your setup and process the files again. Lido offers free reprocessing within 24 hours.

__wf_reserved_inherit

Step 6: Process the Rest of Your EOBs

Once you are happy with the output from your test payers, upload EOBs from your remaining payers. You don't need to set up anything new, since Lido reads each payer's format and maps it to your columns.

Step 7: Export the Data to Your Billing System

Click Export to Excel to download your data. You can then import the file into your practice management system.

__wf_reserved_inherit

Step 8: Automate Incoming EOBs

To process new EOBs as they arrive, forward them from your billing inbox to your dedicated Lido email address. Lido extracts the data automatically, so it's ready for review and import without anyone uploading files by hand.

{"headline": "Extract data from every EOB automatically.", "subtext": "50 free pages. No credit card required. Works with any payer format."}

EOB Data Fields to Extract for Payment Posting

The fields you need are the same across payers, even when the layouts are not. Make sure your extraction captures:

Patient name and account number: The account number links the EOB to a patient record. Many practice management systems use leading zeros, so treat this field as text or the record won't match on import.

Payer name and claim number: You need both to track which payer processed which claim, especially when a patient has primary and secondary insurance.

Service dates and procedure codes: The CPT codes and dates of service for each line item. These must match what was submitted on the original CMS 1500 form.

Billed, allowed, and paid amounts: The billed amount is what you submitted, the allowed amount is what the payer considers reasonable, and the paid amount is what they actually sent. The gaps between them explain every claim.

Adjustment reason codes: Codes with CO, PR, and OA prefixes explain each adjustment. Each code leads to a different next step, so they need their own columns.

Patient responsibility: The total copay, coinsurance, and deductible the patient owes. This feeds your patient billing workflow.

Total paid and total billed: The summary numbers you need to reconcile against the actual check or EFT deposit.

Check or EFT number and date: The payment ID that ties the EOB to a deposit in your bank account. Without it, matching several EOBs to one bulk payment becomes manual work.

How to Handle EOB Denial Codes and Adjustment Reasons

Adjustment reason codes tell you what to do next with each line item. Putting them all in one "adjustment" column makes the output hard to use for billing. Here's what the most common codes mean:

CO-18 (duplicate or already paid): Post the payment and move on.

CO-29 (timely filing denial): Gather proof of the original submission date and file an appeal.

PR-1, PR-2, and PR-3 (deductible, coinsurance, copay): Bill the patient for the amount.

In Lido, you handle these codes with plain-language instructions. One California lab owner used this instruction: "Add up all the code 18 and put it in the paid section. Then ignore the line items where you have 18, because I'm only interested in [denials]." Paid line items get posted, and denied line items get flagged for the billing team.

These instructions apply to every payer. Lido finds the adjustment codes no matter how the payer formats them, and your instructions decide how they're sorted in the output.

Why Template-Based OCR Fails on EOBs

Every payer formats EOBs differently. BCBS puts patient responsibility in a summary table, Aetna lists it per line item, Medicare RAs use a dense standard table, and Medicaid MCOs vary by state and plan. A billing company working with dozens of practices can see hundreds of different EOB formats.

Template-based OCR reads data from fixed positions on the page, so it needs one template per payer layout. A billing company with 200 payers needs 200 templates, and each one breaks when a payer updates its format. Logistics teams face the same limit with shipping paperwork, so layout handling is a key test when comparing delivery note extraction tools.

Other tools fall short in different ways. One medical lab owner using Docparser got output as nested JSON that he had to write code to parse. In his words: "I don't want to step on a dollar to pick up a dime." A pharmacy called Swyft Scripts tried Microsoft Copilot and got different results each time it ran the same document, which meant checking everything by hand.

Lido avoids these problems by reading each EOB in context. It understands that "Patient Responsibility," "Amount Due from Patient," and "Member Owes" all mean the same thing, wherever they appear on the page.

Relay, a Medicaid billing company, used Lido to process 16,000 claims across dozens of managed care formats in five days, saving over 100 hours per week. Libertana, a home health agency in Los Angeles, uses one workflow for insurance authorizations from Health Net, LA Care, CalOptima, and Anthem.

How to Process High-Volume EOB Backlogs

EOB backlogs happen more often than most people think. Common causes include Covid-era claims reinstated by new laws, long payer disputes, system migrations, and practice acquisitions.

For example, a California medical lab had 3,300 backlogged EOBs from Covid-era testing after a state bill required insurers to pay disputed claims. The lab had under 90 days to extract data from 50,000 to 60,000 pages, and there was no time to build templates for hundreds of payer formats.

Lido is built for this kind of deadline. Real processing speeds from Lido users include:

US Neurology: 1,000 pages in 1.5 to 1.75 minutes during a live demo. The practice processes over 175,000 PDFs per year across eight entities.

CorpBill: 300 invoices in about one minute.

Relay: 16,000 Medicaid claims in five days.

To clear a backlog, upload the files in batches and process them with the same setup from the tutorial above. The output downloads as Excel or CSV for import into your practice management system. After the backlog is cleared, document automation through email forwarding keeps new EOBs moving without manual uploads.

EOBs are one part of the medical billing document stack. Lido also handles CMS 1500 claim forms, insurance authorizations, remittance advices, and other healthcare documents the same way. For a broader look at how AI extraction differs from traditional OCR, see our guide on what OCR data extraction actually does.

Now that you know how to extract data from EOBs automatically, you can speed up payment posting and spend more time working the denials that matter. The same approach also works outside healthcare, such as processing bills from utility providers.

Frequently asked questions

Can AI handle EOBs from every insurance payer without separate templates?

Yes. AI extraction reads EOBs in context instead of looking for fields in fixed positions, so one setup handles every payer format. Relay, a Medicaid billing company, processed 16,000 claims across dozens of managed care formats in five days using one setup with no per-payer configuration.

How does Lido handle denial codes and adjustment reasons?

You add plain-language instructions that explain how to sort each adjustment code. For example, you can add up all CO-18 amounts in a paid column, flag CO-29 line items for resubmission, and split PR-1, PR-2, and PR-3 into separate deductible, coinsurance, and copay columns. These rules apply to every payer.

How accurate is AI extraction on EOBs?

On clean digital PDFs, which most EOBs are, AI extraction achieves 99.5% to 100% field-level accuracy. Scanned or faxed EOBs typically see 95% accuracy or higher. Lido offers free reprocessing within 24 hours, so you can refine your instructions and re-run documents at no extra cost.

Can I process thousands of backlogged EOBs at once?

Yes. Lido supports batch uploads, and healthcare customers have seen 1,000 pages processed in about 1.5 to 1.75 minutes. A backlog of 3,300 EOBs can be processed in hours instead of weeks, and the output downloads as Excel or CSV for import into your practice management system.

Does the extracted data keep leading zeros in account numbers?

Yes, if you add an instruction telling Lido to treat account numbers as text. Without it, an account number like 00012345 could become 12345 and fail to match in your practice management system.

Ready to grow your business with document automation, not headcount?

Join hundreds of teams growing faster by automating the busywork with Lido.