Convert credit card statement PDF to Excel on Mac (2026 batch guide)
Consolidate a year of credit card statement PDFs into one Excel workbook on Mac — on-device on macOS 14.4+, merchants normalized and totals reconciled.
It’s tax week, or it’s year-end review, or the accountant finally answered the email about which subscriptions the business actually pays for. Either way, the folder is on the Mac desktop: twelve months of Amex Gold statements, twelve months of Chase Sapphire Reserve, ten months of Apple Card (you switched mid-year), and a couple of stragglers from a Citi card that got closed in February. Forty-plus PDFs, four different issuers, four different table layouts, one spreadsheet that has to answer “how much did we spend on travel this year, normalized to USD, with reimbursable charges flagged?”
The Mac is, for this specific job, the right tool. The keyboard is fast enough to spot-check three hundred rows. The 27-inch display shows the statement PDF and the extracted spreadsheet side by side. And on macOS 14.4+ on Apple Silicon, on-device AI can chew through forty statements in a few minutes without sending one merchant name to a cloud service.
This guide is the workflow that gets you from “a folder of credit card statement PDFs accumulated across the year” to “one Excel workbook on its way to the accountant” without re-typing a single merchant line, without uploading a year of personal spending to a free-tier web converter, and without paying for one of the SaaS personal-finance tools whose category logic only lives inside their app.
Why Mac (not iPad, not iPhone) for the annual batch
The iPad credit card walkthrough is the right path for the monthly review — three statements arrive on the second of the month, you process them on the couch, the budget pivot updates by dinner. The Mac is different: it’s the device for the annual consolidation — forty-plus files, multiple issuers, multiple years if you’re catching up.
Three reasons the Mac wins for the real batch:
- Folder semantics. A year of statements arrives in many places: Mail attachments, Wallet exports for Apple Card, downloads from each issuer’s website. macOS lets you stage them in one folder, organized by issuer and month, and drag the whole thing at once. iPadOS multi-select tops out long before forty files.
- Spot-checking at speed. A 27-inch display shows the source PDF on the left, the extracted rows on the right, the pivot table on a second window. Three hundred merchant rows is twenty minutes of scroll-and-verify on Mac. On iPad it’s an hour of swapping views.
- Excel for Mac runs the pivot natively. Multi-sheet workbook, formulas, pivot tables all first-class. iCloud Drive syncs the final back to iPad and iPhone for review on the road.
Why a credit-card batch is harder than a bank-statement batch
The Mac bank-statement guide handles checking-account PDFs in batch. Credit card statements look similar but have four extraction problems a bank-statement tool won’t solve:
- Issuer-specific table layouts. Amex puts fees and interest in a top summary, then transactions chronologically. Chase splits transactions by category on some products (Sapphire Reserve) and chronologically on others (Freedom). Citi puts the payment-due block above the transactions; Capital One puts it below. Apple Card’s Wallet-exported PDF has its own clean two-column layout. A naive table extractor handles two layouts well and the others badly.
- Merchant strings as the network passed them. Bank statements show payee names you set up yourself (“Verizon”, “PG&E”). Credit card statements show merchant strings as the network passed them:
SQ *BLUE BOTTLE COFFEE,TST*PIZZA HOUSE PHX 0431,AMZN MKTP US*PB4XD8RC2. The same coffee shop visited three times can appear as three different strings. Without normalization, the year-end pivot splits “Blue Bottle Coffee” into four rows. - Sign convention is the inverse of bank statements. On a bank statement, debit is money out. On a credit card statement, debit-side is a new charge and credit-side is your payment to the card. Mixing both account types in one workbook needs explicit
transaction_typecolumns. - Fees and interest in separate bands. Credit card statements isolate fees and interest into a “Fees Charged” and “Interest Charged” section that visually mimics the transactions table but isn’t part of it. A tool that mashes those into the main charge list inflates spending totals; one that drops them silently hides actual costs.
Method 1: ignitai folder batch on macOS (the main path)
ignitai handles a credit-card-statement batch the same way it handles an invoice batch — drag the folder, write the prompt once, get one consolidated workbook. The Mac flow:
-
Stage the folder. Create
~/Documents/Credit-cards/2026/. Inside, one subfolder per issuer:Amex/,Chase/,Apple-Card/,Citi/. Drop each month’s statement PDF into the corresponding subfolder. Filename convention that makes the spot-check easier:2026-01-amex.pdf,2026-02-amex.pdf, etc. If your filenames are still the issuer’s defaults (eStatement_20260131_4892.pdf), the extraction will run fine, but renaming first makes the audit trail in the spreadsheet readable later. -
Open ignitai. Drag the parent folder onto the window. macOS 14.4+ on Apple Silicon (M1 onward) runs the on-device model — no statement PDFs leave the Mac. Intel-era Macs fall back to a hosted pipeline with documented zero retention. ignitai walks the directory recursively, so the subfolder structure is preserved as metadata.
-
Describe what to extract, in plain English. For an annual consolidation across multiple issuers:
*“For each statement PDF, return one row per transaction with: transaction_date (ISO 8601, from the transaction line, not the statement date), post_date (ISO 8601, if shown), merchant_raw (the original string as printed on the statement), merchant_normalized (the canonical merchant — collapse ‘SQ BLUE BOTTLE COFFEE’, ‘BLUE BOTTLE PHX’, ‘BLUE BOTTLE #4 PHX’ to ‘Blue Bottle Coffee’; collapse all Uber Eats variants to ‘Uber Eats’; collapse all Amazon Marketplace variants to ‘Amazon’), category (one of: dining, groceries, transportation, travel, lodging, entertainment, subscriptions, shopping, utilities, healthcare, fees, payment, other), amount (positive for charges, negative for payments and credits), transaction_type (one of: charge, payment, credit, fee, interest), card_issuer (Amex, Chase, Citi, Capital One, Apple Card, etc.), and card_last_four. In a separate sheet, return one row per statement with: card_issuer, card_last_four, statement_period_start, statement_period_end, statement_date, payment_due_date, new_balance, minimum_payment, total_fees_charged, total_interest_charged, and source_file (the original filename). If a transaction is a foreign-currency charge, also return foreign_amount and foreign_currency.”
Save the prompt as a preset called “Annual credit card consolidation.” Next year it’s one tap.
-
Pick XLSX as the output format. Two-sheet workbook:
transactionsfor the line-level rows,statementsfor the statement-level metadata. The two sheets join oncard_last_fourplusstatement_period_start. Currency formatting auto-applied to amount columns, ISO dates parsed as Excel date cells, category as a text column with a data-validation dropdown matching the prompt’s category list. -
Hit Extract. A folder of forty statements across four issuers on an M2 Mac processes in three to five minutes. Each statement runs through the on-device model in 8–15 seconds. The progress bar shows file-by-file completion. The fans don’t spin up — the Neural Engine handles it cool.
-
Spot-check in Excel for Mac. Open the output
2026-credit-cards.xlsx. Thetransactionssheet has around three hundred rows depending on activity; thestatementssheet has forty rows. Run the four reconciliation checks below before you trust the totals.
End to end on a year’s worth of statements: under an hour of human time, most of it the spot-check phase.
Why XLSX (not CSV, not Numbers) for the annual consolidation
For bank statements destined for QuickBooks the right output is CSV. For Numbers-native personal sheets the right output is .numbers. For an annual credit-card consolidation, XLSX is the right answer for three concrete reasons:
- Multi-sheet structure matches the document. A year of statements has line-level transactions and statement-level metadata (balance, due date, fees). CSV is single-table; jamming both in one CSV denormalizes the data. XLSX with
transactions+statementssheets joined bycard_last_fourplusstatement_period_startis how the data is actually shaped. - Pivot tables survive. “How much did we spend on travel in 2026, broken out by card?” is a pivot grouped by
card_issuer × category × month. “Which subscriptions are still active and across how many cards?” is a pivot oncategory = subscriptionsgrouped bymerchant_normalized. XLSX preserves the pivots; CSV is just rows; Numbers’ pivot syntax doesn’t survive the export to the accountant. - Accountants open Excel natively. Whatever your personal preference, the accountant on the receiving end of the email opens
.xlsx. Sending.numbersforces a manual export and the categorization formulas don’t translate cleanly. XLSX is the universal handoff.
If you live in Numbers personally and the destination is your own budget workbook, output .numbers directly (Format → Numbers in ignitai) — same prompt, different format selector. For the accountant handoff, XLSX wins.
Method 2: Apple Wallet CSV export (Apple Card only)
For Apple Card specifically, Wallet on Mac has a built-in transactions CSV export. The path:
- Open Wallet on Mac (macOS Sequoia and later — earlier macOS versions only have Wallet on iPad/iPhone).
- Click the Apple Card → click the statement you want.
- Click Export Transactions → save as CSV.
- Repeat for every month you need.
The CSV is clean: date, merchant, category (Apple’s own categorization), amount, type. No extraction needed. If your entire credit card universe is Apple Card, this is the right path — twelve CSV exports, one concatenation, done.
It does not extend to Amex, Chase, Citi, Capital One, Discover, or any other issuer. Those issuers’ websites typically offer a “transactions download” but in OFX/QFX format, not CSV, and the date ranges are limited to the statement period or to a rolling 90 days. For multi-issuer households — which is most households — the PDF batch path covers the gap.
Method 3: Excel for Mac “Get Data from PDF”
Excel for Mac’s Data → Get Data → From PDF uses Power Query, which uploads the PDF to Microsoft’s servers for the table-extraction pass — same privacy concern as a free web converter, just from a more reputable vendor. It also treats the statement as a generic tables document: you get a merchant_raw column and nothing else. No categorization, no normalization, fees and interest in a separate detected table. The post-import cleanup undoes the time savings. If your IT setup has Microsoft 365 approved and the privacy posture is settled, it handles the table extraction part. For personal finance where the data should stay on the Mac and the categorization should land in the same pass, the on-device path is shorter.
Method 4: web converters (and why not for a year of statements)
Smallpdf, iLovePDF, PDFTables, and the rest of the web-converter category treat a statement PDF as a generic table-extraction job. For a year of statements specifically they’re the wrong posture: free-tier privacy terms typically allow processing submissions, the merchant categorization is yours to add manually for three hundred rows after, the free file cap (usually five per month) doesn’t survive past the first issuer’s folder, and the output CSVs don’t carry source-filename provenance for the accountant’s audit-trail question. For one tutorial PDF with no real spending data, fine. For an annual consolidation, no.
The four reconciliation checks for the annual batch
Once the XLSX is written and opened in Excel for Mac, four quick checks separate “I have a file” from “I have a row I can trust on my Schedule C”:
- Statement total reconciliation per row of the
statementssheet. For each statement, sum theamountcolumn fromtransactionsfiltered to thatcard_last_four+statement_period_start. The sum, plus the prior balance, minus any payments, should equal thenew_balanceon thestatementsrow. A divergence on one statement means a transaction got missed or duplicated during extraction. Sort the affected statement’s transactions bytransaction_dateand scan for gaps; cross-check against the source PDF for the missed row. - Payment sign sanity. Filter
transaction_type = paymentacross the wholetransactionssheet. Every row should have a negativeamount. A payment that landed positive will inflate the spending total when the pivot table runs; the year-end category totals will all be too high by the sum of mis-signed payments. Fix the column type at the row, then re-run the pivot. - Merchant normalization spot-check. Pivot the
transactionssheet bymerchant_normalized, sort descending by row count. The top forty rows are the merchants you spent with most often this year. Scan for variants of the same merchant that didn’t merge —Trader JoesvsTrader Joe's,STARBUCKS #4831left unnormalized,AmazonandAmazon Marketplacesplit. Edit the column in place, then update the saved prompt for next year. Three iterations of this and the prompt is reusable across years. - Fees and interest as their own line items. Filter
transaction_type IN (fee, interest). There should be one or two rows percard_last_fourper statement period at most — annual fees, late fees, interest charges. If yourtotal_fees_chargedon thestatementssheet sums higher than the count offee-typed rows intransactionssuggests, the extractor missed some. Cross-reference the source PDF’s fees section.
Skip these four and the year-end spending picture is wrong in subtle ways — the dining total under-counts because four Blue Bottles stayed split, the travel total over-counts because a $4,200 payment landed positive, the fees line of the Schedule C is short because the late fee on the May Citi statement got pulled into a transaction row.
A worked example: small business owner consolidating 2026
A sole proprietor with a single-member LLC, three business credit cards (Amex Gold, Chase Ink Cash, Apple Card business view), and a personal Sapphire Reserve used occasionally for client meals. Year-end Mac flow:
- Open
~/Documents/Credit-cards/2026/. Four subfolders, twelve statements each. 48 PDFs total. - Drag the parent folder into ignitai. The on-device model on M3 Pro processes in four minutes.
- Apply the “Annual credit card consolidation” preset. Add: “If card_last_four matches 4521 (the personal Sapphire Reserve), set reimbursable = true on dining or travel charges.”
- Pick XLSX. Hit Extract.
- Open
2026-credit-cards.xlsx. 412 transaction rows, 48 statement rows. - Run the four reconciliation checks. Two statements diverge on totals (one missed a foreign-transaction fee, one duplicated a refund line); six minutes to resolve. Three merchant normalizations cleaned up.
- Build the year-end pivot: rows = category × card_issuer, values = sum(amount), filter
transaction_type = charge. Travel: $8,940. Subscriptions: $2,180. Meals (business + reimbursable): $4,310. Software: $3,720. - Email to the accountant with one line of context.
Total time: about forty-five minutes. Compare to pulling each card’s transaction history from issuer websites and normalizing by hand — two evenings, lower categorization quality because human attention drifts at row two hundred.
When the Mac batch isn’t the right tool
Honest edge cases:
- Single-statement, mid-month review. Don’t fire up the Mac batch for one statement. Use the iPad monthly walkthrough or the iPhone single-statement Excel path. The Mac batch is for the consolidation, not the recurring review.
- Apple-Card-only households. Skip the extraction entirely. Use Wallet’s built-in Export Transactions for each month; concatenate twelve CSVs. Faster than the batch, and the categorization is Apple’s own.
- Statements with disputed or pending transactions. Pending charges shouldn’t go into a year-end consolidation — they may reverse before posting. Add to the prompt: “Skip any row marked ‘Pending’ or in a pending-transactions section.” Disputed charges go into a separate
disputedsheet for tracking, not the maintransactionssheet. - OFX/QFX issuer exports. If your issuer offers a direct OFX or QFX download for the full year, take it over the PDF batch. Quicken, GnuCash, and Moneydance all import OFX cleanly. The PDF path exists because most issuers don’t offer multi-year OFX, and PDFs are the universal fallback.
- Statements older than the on-device model is comfortable with. A scan of a 2019 statement that was printed, mailed, scanned, and emailed back will have legibility problems no extractor fully solves. For audit-defense purposes the original PDF matters more than the extracted row; keep the source even if some rows need manual entry.
Bottom line
For a Mac user staring down a year of accumulated credit card statement PDFs that need to become one Excel workbook for the accountant or the year-end budget review: stage them in a folder per issuer, drag the parent folder into ignitai, apply the saved preset, pick XLSX, run the four reconciliation checks. For Apple Card households, Wallet’s built-in Export Transactions skips the extraction step entirely. For a single mid-month statement, the iPad path is shorter.
The same app handles the iPad monthly review for the in-the-moment statement, iPhone single-statement extraction for the one statement that lands while you’re traveling, and the Mac batch path for any other PDF folder you’re consolidating. Presets sync across all three via iCloud — write the annual prompt once on Mac and the monthly iPhone reviews next year pick up the same normalization rules automatically.
Get ignitai on the App Store — free download, $19.99/mo unlocks unlimited extractions after the 3-day trial.