A portfolio you can actually work with
A brokerage statement is a small database printed as a document. It holds your positions and their market values, the trades you made in the period, the cost basis behind them, the dividends and interest you received, and the fees the broker took. All of it is useful, and none of it is usable while it sits in a PDF.
FlowParse reads the statement with AI and rebuilds those tables as structured rows: one row per holding, one row per trade, one row per income line, in typed columns. What was a monthly document becomes a dataset you can sort, total and chart.
This is the account-level companion to the investment statement converter — the same engine, focused on the statement your broker sends and the specific things you need out of it.
What FlowParse pulls from a brokerage statement
Extraction is by meaning rather than by template, so the same fields come out regardless of which broker produced the document: the account number and period, each holding with its symbol, description, quantity, price and market value, the cost basis where shown, unrealized gain or loss, every trade with its date, side, quantity and price, dividend and interest income, and the fees and commissions charged.
Where the statement summarises realized gains for the period, those are captured as their own rows, with the proceeds, the basis and the resulting gain or loss kept separate rather than merged into a single net figure.
Quantities, prices and values all export as typed numbers, so a portfolio totals in one sum and a position can be sorted by size or by gain without any cleaning.
Why broker statements defeat copy and paste
Brokerage statements are the hardest financial document to get out of a PDF cleanly, for a specific reason: they are made of several different tables that happen to share a page. Holdings, activity, income and fees each have their own column structure, and a naive text extraction runs them together into a single ruined block.
Numbers make it worse. Quantities with fractional shares, prices to four decimals, values in thousands, negative figures shown in parentheses — copy that text into a spreadsheet and half of it lands as text rather than numbers, silently breaking every formula you then write.
AI extraction reads each table for what it is, keeps its columns intact, and types the numbers as numbers. That is the difference between a spreadsheet you can trust and one that looks right and totals wrong.
How to convert a brokerage statement to Excel
Upload the statement
Drop in one or many brokerage statement PDFs — digital or scanned — or import them from cloud storage.
Let AI extract it
Holdings, trades, cost basis, income and fees are read as separate structured tables in seconds.
Review the preview
Check the editable preview; low-confidence figures are highlighted for a quick correction.
Export to Excel
Download a clean .xlsx — or CSV, Google Sheets or JSON via the API instead.
Holdings, allocation and concentration
The holdings table answers the question people actually have about their portfolio: what do I own, what is it worth, and how is it distributed? In a PDF that requires reading down a list and doing arithmetic in your head. In a spreadsheet it is a pivot table.
With symbol, quantity, price and market value as columns, allocation by asset, by sector or by account becomes a formula. Concentration — the single position that has quietly grown to a quarter of the portfolio — becomes obvious rather than something you notice late.
For anyone holding accounts at more than one broker, that only works if the statements share a shape. Because every broker's layout resolves to the same columns here, positions across several institutions can sit in one table and be totalled together.
Cost basis and the gains that depend on it
Cost basis is the number that decides what a sale actually made you, and it is the number most likely to be wrong when reconstructed by hand. It moves with reinvested dividends, with corporate actions, with partial sales — and it has to be tracked per lot, not per position.
Where the statement reports basis, FlowParse captures it against the holding it belongs to, alongside the market value and the unrealized gain the broker calculated. That gives you the broker's own figures in a form you can check rather than simply accept.
Checking matters, because basis reported by a broker is not always complete — transferred positions and older lots are the usual gaps. Having the numbers in a spreadsheet is what lets you spot a position showing zero basis before it turns into an overstated gain.
Every trade as a row
The activity section records what you did: bought, sold, quantity, price, date, commission. As structured rows, that becomes a trade log — the raw material for working out realized gains, for reviewing how much trading actually cost you, and for checking that each execution matched what you expected.
It also makes the year's activity legible. Sorting trades by symbol and date shows the full history of a position across statements: when it was built, when it was trimmed, and at what prices — which is precisely what a gains calculation needs and precisely what is impossible to see one PDF at a time.
Commissions and fees per trade sit alongside, so the cost of trading is a column you can total rather than a drag you assume is small.
Preparing a realized-gains calculation
At tax time the question narrows to one thing: what did you realize, and what was the basis? Brokers issue their own tax documents for this — in the US a consolidated 1099 including 1099-B — and those are the authoritative forms.
FlowParse does not issue tax forms. What it does is turn your statements into the underlying data, so the gains figure can be assembled, checked and explained. That is exactly what an accountant wants when the broker's summary doesn't tell the whole story — a transferred position with missing basis, a wash sale, an account opened mid-year.
Having proceeds, basis and gain in typed columns means the calculation can be shown line by line. A number you can defend beats a number you have to trust.
Dividends, interest and withholding
Investment income arrives inside the statement rather than as a separate document: dividends paid, interest credited, and — on foreign holdings — tax withheld at source before the money ever reached you.
Those lines are captured as their own rows, with the gross amount, any withholding and the net kept separate. Withholding in particular is worth structuring, because it is often reclaimable or creditable and is easy to lose sight of when it is a small deduction on a long statement.
For a deeper treatment of the dedicated documents, see dividend statement to Excel — the same extraction, applied to dividend vouchers and statements in their own right.
What your broker actually charged you
Fees are the quiet drag on returns: commissions, platform charges, account fees, foreign exchange spreads, margin interest. Individually they are small enough to ignore, which is why almost nobody totals them.
As a column across a year of statements, they stop being ignorable. A single sum tells you what the account cost to run, and comparing that against the return it produced is the most honest performance check there is.
It is also the check that occasionally finds an error — a fee charged twice, a rate applied that doesn't match what you were quoted. Neither is visible while the number lives in a PDF nobody adds up.
Several brokers, one portfolio view
Real portfolios are split — a retirement account at one broker, a taxable account at another, an old employer plan somewhere else. Each sends its own statement in its own format, and the combined position exists nowhere.
Because AI extraction doesn't care about layout, statements from every institution resolve to the same columns and can be merged into a single dataset with a source-file column identifying the account. That merged table is the portfolio view no individual broker will ever show you.
Total exposure to one company across accounts, real asset allocation, and the fees paid across the whole relationship — all of it becomes computable rather than estimated.
Excel, CSV, Sheets or your own tools
One extraction, several destinations. Excel is where most portfolio analysis actually happens. CSV feeds portfolio trackers and tax software that accept an import. Google Sheets is what you use when an accountant or an adviser needs to see the same numbers you do.
JSON via the API suits anyone maintaining their own tracking system, so a monthly statement updates a portfolio model automatically instead of being re-typed.
A year of statements, one dataset
Portfolio analysis needs history, and history is a folder. Batch processing takes up to 100 PDFs at once and merges them into a single sheet with duplicate detection and a source reference on every row.
That turns a year — or several — of statements into one dataset: every trade, every holding snapshot, every dividend and every fee, sortable by date, by symbol and by account. It is the file an accountant asks for and the file a portfolio review needs.
Scanned and older statements too
Long-held accounts have paper history, and posted statements from earlier years are often the only record of how a position was built — which makes them exactly the documents a cost-basis reconstruction depends on.
OCR runs first on scanned and photographed statements, then the AI structures the recognised text and flags low-confidence figures for review. An old paper statement becomes the same clean rows as a current PDF.
Numbers that survive a formula
Investment data is unforgiving: a misplaced decimal on a share price or a quantity read as text rather than a number breaks a portfolio total without any warning. FlowParse reaches around 98% field-level accuracy on standard layouts and highlights every low-confidence figure in the editable preview.
Crucially, numbers export typed and signed — parenthesised negatives become negative numbers, fractional shares stay fractional, and prices keep their decimals. The spreadsheet you get back totals correctly the first time.
You review before exporting, which on data that may end up in a gains calculation is the safeguard worth having.
Your positions stay private
A brokerage statement reveals your net worth, your holdings and your account numbers. Uploads run over TLS, processing is EU-hosted, and the original PDF is deleted immediately after processing.
Documents are never used to train AI models, and nothing is retained once your export is produced. There is no stored copy of your portfolio for anyone to find.
Working out what the account actually returned
Brokers report performance, and they report it in the way that suits the format of a statement: a period return, a change in value, sometimes a benchmark comparison. What they rarely show is the return on the money you actually put in, over the period you actually held it, after the fees you actually paid.
That calculation needs three things in one place — contributions and withdrawals, market values at each period end, and the fees — and those live across statements rather than within one. Structured, they become the inputs to a money-weighted return you can compute yourself.
The result is often instructive. An account that looks like it grew nicely can turn out to have grown mostly because you kept adding to it, and a fee drag that seemed trivial per statement can turn out to have consumed a meaningful share of the gain.
Splits, mergers and other position-changing events
Positions change for reasons that have nothing to do with you trading them. A stock splits and your share count doubles while the price halves. A company is acquired and your holding becomes cash, or shares in the acquirer, or both. A fund closes and distributes.
These events land in the statement and they matter twice over: they alter the quantity you hold, and they alter the cost basis per share that any future gain calculation depends on. Reconstructing them from memory a year later is exactly the kind of task that produces a wrong tax number.
Because the statement records the event, the structured data records it too — the quantity before, the quantity after, and whatever cash or basis adjustment came with it. Keeping that history in a spreadsheet is what makes a position's basis defensible years later, when the only alternative is trusting a broker's figure you cannot check.
Who converts brokerage statements to Excel
Investors who want a real portfolio view across accounts, accountants preparing gains calculations from client statements, advisers assembling a position from documents rather than logins, and anyone whose broker's own reporting stops exactly where their questions start.
If your portfolio analysis currently means re-typing holdings into a spreadsheet every quarter, this is the step that removes the typing and keeps the numbers.
Convert your brokerage statements to Excel
Upload a broker statement and get clean tables — holdings, trades, basis, income and fees in typed columns, ready to total and analyse.
