FlowParse
Schwab Statement to Excel Converter logo Brokerage · Charles Schwab

Schwab Statement to Excel

Convert Charles Schwab statement PDFs into Excel. FlowParse reads each table on the statement — the account summary, your positions, the transactions for the period and any gains tables — and puts each on its own sheet, with Schwab's column headings kept as printed.

Scanned or digital · multi-page · every line preserved · review before export

FlowParse
flowparse.io
See it before you upload

From a Schwab PDF to a working spreadsheet

A fictional sample document converted by the same engine you get — flip through the source PDF and every export format, or download the files themselves.

sample.pdfFictional data
Brokerage statement (US style) — source PDF preview page 1
.pdf .xlsx .csv
All samples →

Schwab keeps up to four years of transaction history on Schwab.com, but up to 10 years of brokerage statements. For the years in between, and for positions at a date, the statement PDF is the source.

Upload the statement, review what was read, and download Excel or CSV — one sheet per table.

No templates

Reads the tables on the page, with no per-provider setup.

Types kept as printed

The statement's own words for each transaction, not a code we made up.

Every column kept

Same names, same order as the statement — one sheet per table.

Checked before export

Completeness check, wrapped headers checked against the page, doubts on a QA sheet.

What FlowParse reads from a Schwab statement

A Schwab statement is a set of tables: an account summary, the positions you hold with their values, the transactions for the period — trades, dividends, interest, transfers and fees — and sometimes gains information. FlowParse finds each table and keeps it whole, with Schwab's own column headings.

Nothing is renamed into a generic layout and nothing is re-signed, so each sheet can be compared line for line with the PDF.

FieldCaptured in the export
SummaryBroker, account holder, masked account number, statement period, currency
Holdings / positionsThe broker's own columns — security, quantity, price, market value, cost basis where printed
Account / cash activityDated activity lines exactly as printed — buys, sells, dividends, interest, transfers, fees
Realized & unrealized gainsGain and loss tables, where the statement includes them
Other tablesAsset allocation, stock options, restricted awards — each kept as its own table
FlowParse
flowparse.io
FlowParse
flowparse.io

Why one sheet per table

Positions are values at a date; transactions are things that happened. Mixed into one list, the market value of every holding sits next to a few dollars of interest, and no total over the column means anything.

Separate sheets let you total the transactions, filter the positions, or move the gains table into your own tracker without untangling them first.

New to this? Read the guide on how to extract transactions from a PDF.

From PDF to clean data in three steps

1 · Upload the PDF

Drop one statement or many — digital or scanned, any number of pages.

2 · Each table is read

Summary, holdings, activity — each table kept whole, with the statement's own columns.

3 · Review & export

Check the preview and the QA list, then download Excel or CSV.

Export formats

Convert to the format you actually need

The same extraction powers every export, so you only convert once and choose the output your next tool expects — a spreadsheet to analyse, a CSV for tax software, or a bank-feed file for your accounting tool.

FormatBest for
Excel (.xlsx)A Summary sheet plus one sheet per table on the statement — holdings, activity, gains
CSVEvery table in one grid, for a spreadsheet or another tool

Related: PDF to CSV, Bank Statement to Excel, Brokerage Statement to Excel.

FlowParse
flowparse.io
FlowParse
flowparse.io
Accuracy you can trust

Useful for tax checks

Schwab's 1099 is the document of record for tax. The converted statements are how you check it — every month's transactions in one place, so you can confirm the dividends, interest and sales behind each figure and find the line behind anything that looks wrong.

For an accountant with several Schwab clients, the same sheets make a year of activity readable without opening a stack of PDFs.

One sheet per table
The statement's own column headings
Figures kept as printed
Completeness check on every table
Uncertain fields listed on a QA sheet
Preview before export

Excel and CSV — not accounting files

Brokerage statements export to Excel and CSV. There is no QuickBooks, OFX or Xero file for them, because those formats carry bank transactions and positions and trades do not fit without inventing figures.

If you need the transfers between your bank and Schwab in your books, convert the bank statement — they appear there as ordinary bank lines.

FlowParse
flowparse.io
Smart Merge

A year of Schwab statements at once

Smart Merge combines several statements into one workbook, stacking the same table from each — every month's activity in one sheet, every month's holdings in another. It takes up to 5 files on the free plan (with an account), 20 on Starter and 100 on Pro.

A year of statements becomes one workbook you can sort and filter, each table still on its own sheet.

Where Schwab keeps what, and for how long

Schwab publishes two different windows, and the difference between them is the reason statements still matter. On the Schwab Mobile app, statements and other documents are under More → Documents; on Schwab.com, under Accounts → Statements & Tax Forms.

WhatWhere on SchwabHow far back
Transaction historySchwab.com → Accounts → HistoryUp to four years
Brokerage statementsSchwab.com → Accounts → Statements & Tax Forms; Schwab Mobile → More → DocumentsUp to 10 years
Tax documents and trade confirmationsSame place as statementsUp to 10 years

History or statements: which to use

Inside the four-year window, Schwab's own transaction history is the most direct source for transactions. Statements are the better source when:

  • The year you need is more than four years back but within the 10 years of statements.
  • You need positions and values at a date — history lists transactions, not holdings.
  • You need the document itself, exactly as Schwab issued it, for an auditor, an estate or a dispute.
  • You are working from statements someone else downloaded and sent you, without access to the account.

Former TD Ameritrade accounts

Schwab says that TD Ameritrade history is now shown under your Schwab account number, along with your recent Schwab history. Older statements issued by TD Ameritrade still look like TD Ameritrade documents, though. Because FlowParse reads a statement by its tables rather than a fixed Schwab template, those older statements come out the same way — summary, positions and activity on separate sheets — so a span of years that crosses the move can sit in one workbook.

Trade confirmations next to statements

Schwab keeps trade confirmations for up to 10 years, in the same place as statements. The two answer different questions. A statement tells you that a trade happened in the period and what it did to the account; a confirmation is the record of that single trade, issued when it was executed.

When a figure on a statement is in question — the price you bought at, a fee, the settlement date — the confirmation is the document to look at. Keep the converted statements as the year-long view, and go to the confirmation for the detail of any one trade.

Estates, closed accounts and old years

The cases where statements matter most are the ones where nobody can simply log in and download history: an executor gathering a parent's accounts, an accountant asked about a year that has dropped out of the four-year history window, or an account that was closed and transferred elsewhere. In each case what exists is a stack of statements, often a mix of downloaded PDFs and printed copies.

Converting them gives you each year's holdings and activity in a form you can total and search, with every figure still exactly as Schwab printed it. Keep the PDFs alongside the workbook: the workbook is for working, the statement is the evidence.

Several Schwab accounts

A brokerage account, an IRA and a second account for a specific goal each have their own statements and, for the retirement account, their own tax rules. Convert and merge them one account at a time, with the account number in the file name, so a year of activity for one account never mixes with another's. For an overall picture, take the closing positions from each account's last statement of the year onto one summary sheet, rather than stacking all the activity together. That keeps the retirement account's contributions and withdrawals out of the taxable account's figures.

How a brokerage statement comes out in Excel

A brokerage statement is not one table but several: a summary, the positions you hold, what happened during the period, and often realised gains or an asset-allocation breakdown. Flattening all of that into one list would mix market values with cash movements. So each table keeps its own sheet and its own columns, named the way the statement names them.

SheetWhat is on it
SummaryBroker, holder, masked account number, statement period, currency
HoldingsPositions at the statement date — a valuation, not a movement
Account Activity / Cash ActivityWhat happened in the period, line by line
Realized Gains / Unrealized GainsGain and loss tables, when the statement prints them
Asset Allocation, Stock Options, Restricted AwardsEach kept separately when present
QAAnything the reader was unsure of, to check before you rely on it

Checking your 1099 against the statements

The year-end tax form is the document your return is built on, and it is usually right. When it is not, or when a figure on it surprises you, the monthly statements are where the answer is. A check that takes an evening:

  • Convert every statement for the tax year — all twelve months, or all four quarters — and merge them so each table sits in one sheet across the year.
  • On the activity sheet, filter to dividends and total them. Compare with the dividend total on the 1099. A gap is usually a dividend paid in January for the previous year, or one reclassified after year-end.
  • Do the same for interest, and for sales: every sale on the 1099 should appear as a sale in the activity, on the same date and for the same proceeds.
  • Look for activity with no counterpart on the form — a transfer between your own accounts, a reinvestment, a corporate action — and make sure you know why it is not there.
  • Keep the workbook with the return. If a figure is questioned later, the line behind it is one filter away.

Three spreadsheet mistakes with brokerage data

Once brokerage statements are in Excel, the same three mistakes come up again and again. Each one produces numbers that look plausible and are wrong.

Adding up holdings across months. A holdings table is a snapshot: the value of everything at one date. Twelve monthly snapshots stacked in one sheet do not add up to anything — summing them counts the same shares twelve times. Use the last snapshot for a year-end value, and compare snapshots side by side rather than totalling them.

Counting reinvested dividends twice. When a dividend is reinvested, the statement usually shows two lines: the dividend coming in, and a purchase of shares with it. Both are real, but only the dividend is income. Totalling every positive line as income, or every purchase as new money invested, double-counts.

Treating transfers as gains or losses. Money moved from your bank, or between two accounts at the same broker, shows up as activity. It is not income and not a loss — it is the same money in a different place. Filter transfers out before you total anything that is supposed to mean performance or income.

What this does not do

Two limits are worth knowing before you upload. First, there is no QuickBooks, OFX or Xero file for a brokerage statement: those formats describe bank transactions, and a statement full of positions and trades does not map onto them honestly. You get Excel and CSV. Second, the figures are kept as the broker printed them — FlowParse does not compute cost basis, wash sales or tax lots for you. For a tax return, the broker's own 1099 remains the document of record; the converted statements are what you use to check it, analyse it, or hand the detail to an accountant.

It also does not value anything. Market values, prices and gains are whatever the broker printed on the statement date; nothing is refreshed with today's prices, converted between currencies or recalculated. If a figure on the sheet differs from what you see in the broker's app today, the statement is not wrong — it is a record of that date, which is exactly what makes it useful as evidence.

Built for sensitive data

Your financial data stays private

Account and transaction statements are sensitive documents. FlowParse is built so converting one never puts it at risk.

Encrypted transfer

Every upload and download runs over TLS.

Deleted automatically

Your original PDF is deleted automatically after 30 days.

EU servers

Stored on servers in the EU.

No AI training

Your documents are never used to train models. GDPR-aligned.

Read the full security overview.

Frequently asked questions

FlowParse
flowparse.io

Convert your statement now

Upload a PDF and get Excel or CSV with the statement's own columns — each table kept whole, checked, ready for analysis or tax records.