Convert brokerage statement PDF to Excel on Mac (2026 guide)
Turn Fidelity, Schwab, Vanguard, and Robinhood statement PDFs into one clean Excel sheet on Mac — read on-device, never uploaded, trades and dividends split out.
ignitai turns PDF bank, card, and brokerage statements into a clean transactions spreadsheet 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 downloadIt is the run-up to the filing deadline, or the quarter just closed, and you need your brokerage activity as spreadsheet rows — not as a forty-page PDF. Maybe your accountant asked for every realized sale with its cost basis so the Schedule D ties out. Maybe you hold accounts at three different brokers and want one combined view of what you actually own. Maybe you are reconciling dividend income against the 1099-DIV before you file. Whatever the reason, you have a stack of monthly or quarterly statements — downloaded one at a time from Fidelity, Schwab, Vanguard, Robinhood, or E*Trade — and you need them as Excel rows you can sort, sum, and filter.
The single-statement case is annoying but survivable: you can scroll one PDF and copy a dozen lines into a sheet. The batch case is the one that eats an afternoon. Every broker lays the statement out differently, the sections you care about are scattered across pages, and the numbers — share counts, cost basis, proceeds, dividends, fees — live inside tables that copy-paste into a single mangled column the moment you try to drag them out of Preview.
This guide is the Mac-native workflow: convert brokerage statement PDFs to Excel on Mac, in batch — statements read on-device, never uploaded — with positions, trades, and income each extracted into its own clean sheet, one prompt per section.
Why a brokerage statement is harder than a bank statement
A checking-account statement is essentially one ledger: date, description, amount, balance. A bank statement converts to Excel as a single flat table, and that is the whole job.
A brokerage statement is not one table. It is four or five different tables that happen to share a cover page, and a generic extractor that grabs “all the tables” hands you a denormalized mess where holdings, trades, and dividends blur together. The regions you actually need:
- Holdings / positions. What you own at the statement close: symbol, description, quantity, price, market value, and usually unrealized gain/loss and cost basis. This is a snapshot, dated to the period end.
- Activity / transactions. Every buy, sell, transfer, and reinvestment during the period: trade date, settlement date, action, symbol, quantity, price, and the total amount. This is the section your accountant cares about for realized gains.
- Income. Dividends, qualified vs. non-qualified, interest, and capital-gains distributions — each with a pay date, the security, and the amount. This feeds the 1099-DIV reconciliation.
- Fees and adjustments. Advisory fees, ADR fees, foreign tax withheld, margin interest. Small, easy to miss, and they matter for both cost-basis math and deductions.
- Summary block. Beginning value, ending value, net contributions, and total change. The reconciliation anchor — usually a small key-value block on page one, not a row in any table.
The labels vary by broker, too. Fidelity says “Securities Bought & Sold”; Schwab says “Transaction Detail”; Vanguard splits “Dividends and capital gains” into its own page; Robinhood collapses everything into a terse mobile-first layout. A coordinate-based table tool needs a fresh template per broker and breaks every time a broker tweaks the design. A tool that reads the statement as a statement does not.
Why Mac (not iPhone) for a year of statements
A statement notification hits your phone the moment the period closes — and for a single in-the-moment capture, the iPhone brokerage-statement flow covers that exact small-screen path. But pulling a year of brokerage activity together is desk work, and the Mac wins for three concrete reasons:
- Drop twelve files in one motion. Monthly statements across a tax year is twelve PDFs; quarterly is four per account. Three accounts at quarterly cadence is still only twelve files — but it is twelve files you want to drop in one motion, not share-sheet one at a time.
- The big screen makes reconciliation fast. The single most important brokerage check — does the sum of your realized sales in the activity section match the proceeds figure on the 1099-B — is a glance on a large display with the workbook on one half and the December statement on the other.
- The statement files never leave your Mac. A brokerage statement carries your full name, account number, sometimes the last four of your SSN, and your complete holdings. ignitai reads each PDF on-device — the files are never uploaded — and sends only the recognized text to its private hosted pipeline to build the workbook.
On macOS 26, Apple’s newest on-device document recognition reads the statement tables natively, which makes positions and activity sections extract noticeably sharper. On older versions (back to macOS 14.4), the same flow works with Apple’s classic on-device text recognition.
Method 1: ignitai on Mac (the no-upload way)
ignitai treats statement extraction as a language task — “read this statement and list every sale with its proceeds and cost basis” — not a grid-coordinate task. That is why it survives the layout differences between Fidelity, Schwab, and Vanguard without per-broker templates. The full Mac batch flow:
-
Select the statements and drag them into ignitai. A year’s worth in one drop. Mixed brokers are fine — if you hold accounts at Fidelity and Schwab, the same batch handles both.
-
Describe what to extract, once for the whole batch. Plain English, and because a brokerage statement has several sections, you tell it which one you want. A prompt that pulls the realized-sales detail most people need at tax time:
“From the activity/transaction section of each statement, return one row per sale: trade_date (ISO 8601), settlement_date, symbol, description, quantity, proceeds, cost_basis, and realized_gain_loss. Ignore buys, transfers, and the holdings snapshot. If cost basis is not shown on the statement, leave it blank — do not guess.”
ignitai keeps it in Previous Prompts — next quarter it is one click. Want the holdings snapshot or the dividend income instead? Swap in a second saved prompt and re-run the same folder.
-
Pick XLSX as the output format. One sheet, one row per transaction — ISO dates and clean numeric text you format once in Excel (a currency format on the amount columns takes one click).
-
Hit Convert. ignitai reads each PDF on-device and builds the workbook with live progress — pages read, parts uploaded — across the batch. Twelve monthly statements finish in a few minutes.
-
Review the consolidated sheet. The trade dates and symbols on every row tie each sale back to its statement period — filter by month to spot-check any one statement. Open in Excel for Mac or Apple Numbers.
-
If the batch trips, fix and re-run. A corrupted download or a password-protected PDF stops the job. Unlock or re-download the offending statement and run the batch again.
The reason the plain-English prompt matters here more than on a bank statement is the section problem. A brokerage statement contains five tables you do not want mixed together. Telling the model “only the realized sales, ignore the holdings snapshot” in one sentence is the difference between a clean Schedule D worksheet and a thousand-row dump you have to untangle by hand.
Method 2: the manual route, and why it falls apart
For completeness, the no-app path on a Mac:
- Open the statement in Preview.
- Select the activity table and copy.
- Paste into Excel for Mac.
- Watch every row collapse into a single column, because PDF text has no concept of a table cell — Preview copies in reading order, not grid order.
- Re-split with Data → Text to Columns, guess at the delimiter, and discover the broker used spaces inside descriptions (“ISHARES CORE S&P 500 ETF”) that your space delimiter just shredded into four columns.
- Repeat for the next statement. And the next.
The manual route works for one page of one statement if you are patient. It does not scale to a year, and it does not handle scanned statements at all — if your statement came as a scan or a photo rather than a native PDF, there is no text layer to copy, and Text to Columns has nothing to work with. ignitai reads scanned statements the same way it reads native ones, because it is reading the rendered page, not scraping a text layer. The same on-device reading is what powers the AI PDF-to-CSV workflow on Mac.
The reconciliation that actually matters
Once the activity section is in Excel, do the one check that catches every extraction error before it reaches your return:
- Sum the
proceedscolumn across all sales for the year. - Compare it to box 1d (proceeds) on the 1099-B your broker issues.
They should match to the dollar. If they do not, the usual culprit is a wash-sale adjustment or a corporate action (a stock split, a merger) that shows up in the activity section under a label your prompt did not anticipate. Sort the sheet by date, find the gap, and you have your answer in under a minute — which is the entire reason you wanted this in a spreadsheet instead of a PDF in the first place.
For the income side, run the dividend prompt and sum the dividend rows against box 1a (ordinary dividends) on the 1099-DIV. Same logic, same one-minute check.
What about multiple accounts and multiple years?
This is where the batch approach pulls away from anything manual. Drop three years of statements from two brokers — say seventy PDFs — into a single ignitai pass with the realized-sales prompt, and you get one sheet with every sale across every account and every year, dated and symboled on every row (add the account’s last four to the prompt if you want an explicit account column). Add a pivot table in Excel, group by symbol, and you have a full lot-by-lot history you can hand to an accountant or feed into your own gain/loss model. Doing that by hand across seventy PDFs is not an afternoon; it is a weekend you do not get back.
If you would rather work in an Apple-native spreadsheet, the same extraction drives the PDF-to-Numbers workflow on Mac — the XLSX opens directly in Numbers with every field in its own column, and one File → Save writes a native .numbers file. And if your statements are part of a larger pile of mixed financial PDFs, the batch PDF-to-CSV flow covers the general case.
A note on accuracy and the “do not guess” rule
The single most important word in the example prompt is the instruction to leave a field blank rather than guess. Brokerage statements are full of fields that are present on some securities and absent on others — cost basis is missing for shares transferred in from another broker, foreign tax is missing for domestic holdings, accrued interest applies only to bonds. A model told to “fill in cost basis” will invent a plausible-looking number for the transferred shares. A model told to “leave it blank if not shown” hands you a sheet where the blanks are honest signals: this is the row where you need to go find the cost basis yourself. That honesty is worth more than completeness, because a blank you can see beats a wrong number you cannot.
This is also why the plain-English layer matters more than a fixed template. You are not just extracting a table; you are encoding a small piece of tax logic — “realized sales only, real cost basis only” — into the extraction itself. A coordinate-based tool cannot express that. A sentence can.
Bottom line
If you have one statement and need three numbers, copy them by hand. If you have a year — or several accounts, or several years — of brokerage statements and you need them as sortable, summable Excel rows that reconcile against your 1099, the Mac-native batch flow is the fastest correct path. Drop the year of statements in, write one sentence describing the section you want, pick XLSX, and let it run. The statement files are read on-device and never uploaded, the realized-sales sum ties out to box 1d, and the afternoon you would have spent in Text to Columns is back.
Get ignitai on the App Store and convert your first folder of statements on Mac today.
FAQ
How do I convert a year of brokerage statements to Excel on a Mac?
Stage the twelve monthly PDFs in one folder, select them all and drag them into ignitai, describe the rows you want once in plain English, and pick XLSX. The output is one consolidated workbook — one row per transaction across the year, with dates and symbols on every row.
Are brokerage statements uploaded during the conversion?
No — each statement is read on the Mac (macOS 14.4 or later) and never uploaded. Only the recognized text goes to ignitai’s private hosted pipeline to build the workbook.
Can it separate positions, transactions, and dividend income?
Yes — run one pass per section: one prompt for realized sales, one for positions, one for dividend income. Each run produces its own clean sheet. Reconcile the extracted ending balance against the statement’s printed value to confirm a clean pass.