Skip to content
ignitai
← Back to blog · · 10 min read

Convert medical bill PDF to Excel on Mac (2026 guide)

Turn medical bill and EOB PDFs into Excel on Mac — read on-device, never uploaded — service dates, codes, and patient responsibility in clean columns.

guides finance mac medical-bills

ignitai turns PDFs — even scans and photos — into clean Excel workbooks on your Mac — your first conversion is free, then $19.99/mo after a 3-day free trial.

Download on the App Store ignitai — free download

The hospital stay generated eleven documents, and none of them agree. The itemized bill from the hospital lists forty-three line items across six pages. The insurer’s explanation of benefits — “THIS IS NOT A BILL,” it insists — shows different numbers: what was billed, what the plan allowed, what it paid, and what’s supposedly yours. Then the anesthesiologist bills separately, the lab bills separately, and three months later a collections-adjacent “final notice” arrives for a balance you thought the EOB said you didn’t owe. Whether you actually owe $2,847 or $412 is answerable — every number is printed on paper you already have — but not while each number lives in its own PDF, in its own layout, one document at a time.

Everyone who’s had a real medical year meets this wall. The patient after a surgery, matching an itemized bill against the EOB line by line to catch the duplicate charge or the quantity error before paying. The caregiver managing a parent’s care across four providers and two insurers, who needs one running sheet of what’s billed, what’s paid, and what’s disputed. The HSA holder who needs a substantiation record — date, provider, amount — for every reimbursed expense, kept for as long as the account exists. The filer whose medical year was big enough that the Schedule A deduction is in play, which means summing every qualified expense to test the 7.5%-of-AGI threshold. The documents have every number; the numbers are trapped in print layouts.

This guide is the Mac workflow: convert medical bill PDFs to Excel on Mac — read on-device, never uploaded — with service dates, codes, charges, and patient responsibility in their own columns, one row per line item, ready for the bill audit and the deduction math.

Why medical bills defeat table extractors

Medical billing documents are a worst case for grid-based tools, for four compounding reasons:

  1. Every issuer prints a different layout. A hospital’s itemized statement, a physician group’s balance summary, a lab’s invoice, and an insurer’s EOB all carry overlapping fields in wildly different arrangements. Template-based extractors need a mapping per issuer; one hospital stay produces five issuers, and next year’s insurer redesign breaks the mapping without asking.
  2. EOBs are boxed claims, not grids. An EOB prints each claim as a labeled block — billed, allowed, plan paid, deductible, coinsurance, your responsibility — often several claims per page. A grid extractor either finds no table or shreds the boxes into fragments with labels divorced from values, which on this document means confusing “billed” with “you owe.”
  3. The page is mostly noise. Payment coupons, appeal-rights notices, language-assistance blocks, glossaries of insurance terms — the majority of an EOB is federally mandated text that has to be recognized as not data, or it lands in the sheet as garbage rows.
  4. The paper trail is literally paper. Bills arrive by mail, get scanned or photographed, and the older records that a dispute or an audit reaches for exist only as scans. A layout parser needs a text layer; a scan has none. It has to be read, not parsed.

The fix is an extractor that understands the document — that “$1,240.00” next to “Plan paid” inside a claim block is the insurer’s payment, whichever insurer printed it, wherever the block sits on the page. That’s what a prompt-driven extractor does that a grid tool can’t.

Method 1: ignitai on Mac (the read-on-device way)

ignitai extracts by description, not by layout template, so one prompt covers every provider and insurer in the stack:

  1. Drag the PDFs in — or use the file picker, or right-click → Open With from Finder. Portal downloads, emailed statements, and the scanned paper bills all work the same way; the scanned-PDF walkthrough covers capture-quality details for the mailed ones.

  2. Describe the output shape in plain English. A prompt is required — the Convert button stays disabled without one. Start from the Forms starter template or write your own, one clause per failure mode above:

    “One row per line item: service_date, provider, description, billing_code, quantity, amount. Include account_number, patient_name, and statement_date on every row. Skip payment coupons, appeal notices, and glossary text. ISO dates, bare amounts without currency symbols.”

    Save it as a preset — it syncs to your other devices via iCloud — and every new bill in the mailbox is one click from being a row.

  3. Pick Excel, hit Convert. Each document is read on your Mac — never uploaded — and only the recognized text goes to ignitai’s private hosted pipeline to build the sheet. On macOS 26, Apple’s native on-device table recognition sharpens extraction from itemized statements; the same flow works back to macOS 14.4. A stack of bills is usually ready in under a minute.

  4. Open the result in Excel or Numbers. One worksheet, one row per line item, every cell clean text — ISO dates, bare amounts — so a single formatting pass types the columns, a sort on service_date puts the episode in order, and the sums work down the sheet. The in-app preview is read-only (rename only); edits happen in the spreadsheet.

The whole episode, one batch. Select every bill in Finder — hospital, anesthesiologist, lab, imaging — and drag them in together with the same prompt; they consolidate into one worksheet. Filenames never leave your Mac, so there’s no filename column — identity has to come from the document itself. That’s why the prompt asks for provider and account_number: every bill prints them, and they’re what keeps five issuers apart in one sheet. Photographed paper bills run as their own batch: a drop mixing PDFs and images imports only the PDFs.

One table per run — you pick the grain. “One row per line item” builds the charge detail from itemized bills. The EOB side — one row per claim, with billed, allowed, plan-paid, and patient-responsibility columns — is a different grain, and a second run with a second prompt, not extra sheets in the same workbook:

“One row per claim: claim_number, service_date, provider, billed, allowed, plan_paid, deductible, coinsurance, copay, patient_responsibility. Skip appeal-rights and language-assistance text.”

Two shapes, two runs — and the payoff is that the two sheets can be matched against each other, which is the entire audit.

Method 2: Excel for Mac’s Get Data (no PDF connector)

Excel for Mac ships Power Query under Data → Get Data, but the Mac connector list — Text/CSV, XLSX, XML, JSON, SharePoint, SQL Server, OData — has no From PDF option; that connector is Excel-for-Windows-only. And medical documents are a worst case even on Windows: From PDF looks for visual grids, and an EOB is labeled boxes and mandated prose. Itemized statements fare slightly better until the page break splits a table or a section subtotal lands mid-data. Against the scanned paper bills — a large share of any real medical file — it returns nothing at all.

Method 3: Preview + Numbers (the one-bill fallback)

For a single born-digital itemized bill: open it in Preview, select the table, paste into Numbers, and repair by hand — rejoining descriptions that wrapped across lines, deleting the subtotal rows, retyping the column that pasted as prose. Workable for one short bill you need one number from. Against a six-page itemized statement it’s slower than retyping, and against the scanned and photographed bills it’s nothing at all.

Method 4: web converters (the never-upload line)

Generic web PDF-to-Excel tools share Power Query’s grid blindness on boxed layouts — and on this document class the quality question is beside the point. A medical bill carries your name, address, account numbers, diagnosis and procedure codes, and treatment history. An EOB adds your insurance ID. This is protected health information, and “free online converter” means uploading it to a server you know nothing about. This is precisely the document class the on-device read exists for: the PDF stays on your Mac, and only recognized text touches ignitai’s private pipeline.

On iPhone and iPad

Medical paperwork doesn’t arrive at the desk:

  • iPhone — the bill lands in the mailbox: capture it with the in-app camera scan, apply the saved preset, and it’s rows in the sheet before the envelope hits the recycling. A Live Activity shows conversion progress from the lock screen. A billing-portal PDF in Mail goes in through the share sheet the same way.
  • iPad — the caregiver’s triage session: collect the portal downloads in Files, multi-select them from the picker or share sheet (there’s no external drag-and-drop into the app on iPad), convert with the synced preset, and iCloud puts the XLSX on the Mac where the family’s medical workbook lives.

One subscription covers iPhone, iPad, Mac, and Vision Pro, so the preset travels with the paperwork.

The audit pass: what the sheet unlocks

The sheet isn’t the deliverable — the answers are:

  1. Audit the itemized bill. Sort line items by billing_code and duplicates jump out — the same code, same date, same charge, twice. Check quantity against the stay (four units of a daily item during a two-day admission is a finding). Billing-advocate audits routinely turn up errors on hospital bills, and every one of them is invisible in a six-page PDF and obvious in a sorted column.
  2. Match bills against EOBs. Join the line-item sheet to the claim sheet on provider and service date, and compare what the provider billed you against what the EOB says you owe. A provider balance that exceeds patient_responsibility on the matching claim is the number to dispute — with both documents cited by row.
  3. Run the deduction math. Sum qualified expenses for the year and test the Schedule A threshold — 7.5% of AGI — in one formula instead of an envelope of receipts. Pharmacy receipts join the same workbook through the receipt-scanning flow on Mac; premiums paid through payroll are already in the paystub sheet.
  4. Keep the HSA substantiation record. Every HSA reimbursement needs a defensible record — date, provider, amount, what it was — kept essentially forever. One row per expense, extracted from the bill itself, is that record; reconcile what you actually paid against the bank-statement sheet and the file is audit-ready.
  5. Share the tracker. If a sibling co-manages a parent’s care, the same XLSX imports straight into Google Sheets — the PDF-to-Google-Sheets Mac guide covers that handoff — and everyone disputes from the same numbers.

When not to use this

  • Your insurer’s portal exports claims data. Some large insurers offer CSV claim exports; if yours does, use it for the EOB side — extracting from print layouts of data the portal will hand you directly is a workflow built backwards. The PDF path is for the provider-bill side, the insurers that only print, and the paper years.
  • You’re disputing one number on one bill. If the whole question is a single charge on a single page, read the page. The extraction pays off at stack scale — an episode, a year, a dependent’s history — not at paragraph scale.

Bottom line

For medical bill PDFs that need to become a defensible expense record on a Mac: gather the episode’s bills and EOBs, drag the stack into ignitai, write the one-paragraph prompt (one row per line item, codes and account numbers on every row, skip the coupons and notices), pick Excel, Convert, then run the duplicate check and the bill-versus-EOB match. Use Preview-and-paste for a single short bill; keep documents carrying health information away from web converters entirely. The hour belongs on the dispute call and the deduction — not the retyping — and the on-device read means the bills never left your Mac to get there.

Get ignitai on the App Store — sign in with Apple, first conversion free, then $19.99/mo after a 3-day trial; one subscription covers iPhone, iPad, Mac, and Vision Pro.

FAQ

How do I convert medical bill PDFs to Excel on a Mac?

Drag the bills into ignitai, describe the columns in one sentence — service date, provider, description, code, quantity, amount, account number — and tell it to skip payment coupons and insurance messages. Pick Excel and hit Convert. A stack of bills comes back as one sheet with one row per line item, ready to sort by date and sum.

Can it extract an itemized hospital bill with CPT codes?

Yes. Name the code as its own column in the prompt (cpt_code or billing_code) and each five-digit code lands next to its description and charge, with the cell left empty on lines that don’t print one. That per-code view is what makes duplicate charges and quantity errors visible — the two most common findings when people audit a hospital bill.

Is it safe to convert bills that contain health information?

The bill itself — the PDF or scan — is read on your Mac and never uploaded; only the recognized text is sent to ignitai’s private hosted pipeline to build the spreadsheet. Converted files are stored in your ignitai account until you delete them, and deleting in-app deletes them server-side too. That’s a far smaller exposure than uploading the document to a free web converter you don’t control.