Charles Schwab Trading Journal - Auto Import
Import your Charles Schwab trades, dividends, and realized gains into JournalPlus via CSV. Full support for long-term positions, options, and TD Ameritrade.
Features
Two-File Import for Complete Trade History
Schwab separates transaction history from realized gain/loss data into two distinct exports. JournalPlus accepts both files and merges them into a single, unified trade ledger.
Dividend and Income Tracking
Schwab exports dividends as separate transaction rows with types 'Cash Dividend' and 'Reinvestment'. JournalPlus maps these rows directly to an income ledger, separating dividend returns from trading P&L.
Long-Term Cost Basis Analysis
For swing and long-term traders holding positions across multiple years, JournalPlus tracks per-lot cost basis, unrealized P&L, and holding duration alongside closed trade statistics.
Options Trade Mapping
Schwab uses a different option symbol format than thinkorswim's legacy notation. JournalPlus parses Schwab's post-migration option rows and maps them correctly to the options journal.
TD Ameritrade History Consolidation
Former TD Ameritrade users who migrated to Schwab in 2023 can import both their pre-migration TDA export and their Schwab history into JournalPlus to build a continuous multi-year record.
How to Connect
Export Your Transaction History
Log in to Schwab and navigate to Accounts > History > Transactions. Set a custom date range (up to 2 years per export), then click the export icon and select CSV.
Export Your Realized Gain/Loss Data
For closed positions, navigate to Accounts > Cost Basis > Realized Gain/Loss. Select the same date range and export as CSV. This file contains adjusted cost basis and wash sale adjustments not present in the Transactions export.
Upload Both Files to JournalPlus
In JournalPlus, open the Import section and select Charles Schwab as your broker. Upload both CSV files in the same import session. JournalPlus deduplicates overlapping rows automatically.
Review Dividend and Income Rows
After import, JournalPlus flags rows with transaction types 'Cash Dividend' and 'Reinvestment' for review. Confirm whether each should map to your income ledger or be excluded from trade P&L calculations.
Verify Options Symbol Mapping
If your export includes options trades, review the Options journal to confirm symbols parsed correctly. Schwab's post-TDA-migration option format differs from thinkorswim's legacy notation — the review step catches any mismatches.
Set Your Cost Basis Method
In Account Settings, confirm your cost basis accounting method (FIFO, LIFO, or Specific Lot) matches what Schwab uses for your account. This ensures JournalPlus P&L figures align with your Schwab statements.
Charles Schwab traders can import their full trade history into JournalPlus using Schwab’s CSV export — covering equity trades, options, and dividend income in a two-file workflow. The integration is built for Schwab’s core demographic: long-term and swing traders who need multi-year cost basis tracking and income attribution that Schwab’s own platform does not consolidate in one view.
Key Features
Two-File Import for Complete Trade History
Schwab splits its data across two separate exports: transaction history (open and closed trades) and realized gain/loss (closed positions with adjusted cost basis). Importing only the Transactions file misses wash sale adjustments and lot-level cost basis data that matter for tax reporting and accurate P&L. JournalPlus accepts both files in a single import session and merges them, so the full picture is available without manual reconciliation.
Dividend and Income Tracking
Schwab’s Transactions CSV includes dividend rows with the type labels ‘Cash Dividend’ and ‘Reinvestment’. These are not trades, but they are real returns — and mixing them into trade P&L inflates win rates and distorts per-trade averages. JournalPlus routes these rows to a dedicated income ledger. For a trader receiving $380/quarter across three dividend-paying ETFs, that $1,520/year is tracked separately and included in portfolio-level returns without contaminating trade analytics.
Long-Term Cost Basis Analysis
The average Schwab retail client holds positions for months or years, not hours. JournalPlus tracks per-lot cost basis, holding duration, and unrealized P&L for open positions — analytics that matter when a position like 200 shares of AAPL purchased at $142 is sitting at a $4,200 unrealized loss eighteen months later. Annual P&L curves and multi-year performance summaries are available automatically once historical data is imported.
Options Trade Mapping
Former thinkorswim users will find that Schwab’s option transaction format changed after the TD Ameritrade migration completed in September 2023. The symbol notation is different, and imports that worked with TDA exports require re-mapping. JournalPlus includes a post-import options review step that flags symbol parsing issues before they propagate into the options journal.
TD Ameritrade History Consolidation
Roughly 12 million TD Ameritrade accounts migrated to Schwab by September 2023. Traders who exported their TDA history before the cutoff can import that file into JournalPlus alongside their Schwab data, creating a continuous record that spans both platforms. This is the only way to see pre- and post-migration performance in a single view — Schwab’s platform shows only Schwab-era history.
How to Connect Charles Schwab
Step 1: Export Your Transaction History
Log in to Schwab and navigate to Accounts > History > Transactions. Select a custom date range — Schwab allows up to two years per export. Click the export icon in the top right corner of the transactions table and choose CSV. For histories longer than two years, repeat the export in two-year segments.
Step 2: Export Your Realized Gain/Loss Data
Navigate to Accounts > Cost Basis > Realized Gain/Loss. Set the same date range used in Step 1 and export as CSV. This file contains adjusted cost basis, wash sale disallowed amounts, and lot-level detail that is absent from the Transactions export. Skipping this file means closed-position P&L will be incomplete.
Step 3: Upload Both Files to JournalPlus
In JournalPlus, open Import and select Charles Schwab as your broker. Upload both CSV files in a single import session. JournalPlus deduplicates rows that appear in both files (some closed trades appear in both exports) and merges the cost basis data from the Realized Gain/Loss file with the execution data from the Transactions file.
Step 4: Review Dividend and Income Rows
After processing, JournalPlus presents a review screen listing all rows it classified as dividend income. Confirm the mapping — ‘Cash Dividend’ and ‘Reinvestment’ rows default to the income ledger, not the trade journal. If any rows were misclassified, correct them before finalizing the import.
Step 5: Verify Options Symbol Mapping
If your export includes options trades, navigate to the Options journal and scan for symbol parsing warnings. Schwab’s post-migration option notation differs from thinkorswim’s legacy format — the review screen lets you correct mappings manually. Once saved, JournalPlus remembers the correction for future imports.
Step 6: Set Your Cost Basis Method
In Account Settings, confirm your cost basis accounting method matches Schwab’s setting for your account. FIFO is Schwab’s default for most accounts, but specific lot identification is common among tax-conscious traders. Mismatched methods produce P&L figures that diverge from your Schwab statements — aligning them before finalizing import prevents downstream reconciliation work.
What Gets Imported
| Data Field | Description |
|---|---|
| Trade Date & Time | Execution timestamp from the Transactions export |
| Symbol | Ticker or option symbol (normalized from Schwab format) |
| Action | Buy, Sell, Buy to Open, Sell to Close, etc. |
| Quantity | Shares or contracts |
| Price | Execution price per share or contract |
| Fees & Commissions | Broker fees per transaction |
| Transaction Type | Trade, Cash Dividend, Reinvestment, etc. |
| Realized Gain/Loss | Closed position P&L with wash sale adjustments (from Cost Basis export) |
| Adjusted Cost Basis | Per-lot cost basis including corporate actions |
Fields that require manual entry include trade rationale, emotional state at entry, setup tags, and strategy classification. These are added inside JournalPlus after import and do not exist in Schwab’s export format.
Analytics & Insights
Once Schwab data is imported, JournalPlus calculates realized P&L, win rate, average winner vs. average loser, and holding duration automatically. For a portfolio like the example scenario — 200 shares of AAPL at a $4,200 unrealized loss, $840 in covered call premium collected, and $1,520 in annual dividend income — the dashboard surfaces a net portfolio return that Schwab’s own interface does not calculate in one place.
Long-term P&L curves become useful after importing 12 or more months of history. JournalPlus plots monthly and annual returns, separating dividend income from trading gains so traders can see which part of their portfolio return is active (trading) versus passive (dividends). This distinction matters for traders evaluating whether their active trading adds value above a passive hold.
For swing traders who hold positions across earnings cycles or multiple quarters, JournalPlus tracks the full lifecycle of each position — entry date, additions, partial exits, dividends received while holding, and final close price — in a single position view. The CSV upload workflow supports re-importing updated Schwab exports on a monthly or quarterly basis to keep the journal current without manual entry.
Frequently Asked Questions
Does JournalPlus work with Charles Schwab?
Yes. JournalPlus supports Charles Schwab via CSV import. You export two files from Schwab — one from Accounts > History > Transactions and one from Accounts > Cost Basis > Realized Gain/Loss — then upload both to JournalPlus. See the setup guide above for step-by-step instructions.
How do I import Charles Schwab trades into a trading journal?
Navigate to Accounts > History > Transactions in your Schwab account, set your date range, and download the CSV. For closed-position P&L, also download the Realized Gain/Loss CSV from Accounts > Cost Basis. Upload both files in JournalPlus under Import > Charles Schwab. The importer handles deduplication and field mapping automatically.
Can I import my TD Ameritrade trade history after migrating to Schwab?
Yes. If you exported your TDA history before the September 2023 migration cutoff, you can import that file alongside your Schwab CSV into JournalPlus to build a continuous multi-year record. The thinkorswim integration page covers the TDA export format for pre-migration data.
Does Schwab export include dividends and income?
Schwab’s Transactions CSV includes dividend rows labeled ‘Cash Dividend’ and ‘Reinvestment’. JournalPlus maps these to a separate income ledger so dividend income is tracked without distorting trade win rate or average P&L metrics. For options traders also collecting premium, the three income streams — trades, options premium, and dividends — are tracked separately.
Why is my Schwab options data showing incorrect symbols?
Schwab uses a different option symbol format than the thinkorswim legacy notation that many former TD Ameritrade traders are accustomed to. JournalPlus includes a symbol normalization step during import. If mismatches appear after import, use the manual review screen in the Options journal to correct the mapping before finalizing — corrections are saved and applied to future imports automatically.
Frequently Asked Questions
Does JournalPlus work with Charles Schwab?
Yes. JournalPlus supports Charles Schwab via CSV import. You export two files from Schwab — one from Accounts > History > Transactions and one from Accounts > Cost Basis > Realized Gain/Loss — then upload both to JournalPlus.
How do I import Charles Schwab trades into a trading journal?
Navigate to Accounts > History > Transactions in your Schwab account, set your date range, and download the CSV. For closed-position P&L, also download the Realized Gain/Loss CSV from Accounts > Cost Basis. Upload both files in JournalPlus under Import > Charles Schwab.
Can I import my TD Ameritrade trade history after migrating to Schwab?
Yes. If you exported your TDA history before the September 2023 migration cutoff, you can import that file alongside your Schwab CSV into JournalPlus to create a continuous trading record spanning both platforms.
Does Schwab export include dividends and income?
Schwab's Transactions CSV includes dividend rows labeled 'Cash Dividend' and 'Reinvestment'. JournalPlus maps these to a separate income ledger so dividend income is tracked without distorting your trade win rate or average P&L.
Why is my Schwab options data showing incorrect symbols?
Schwab uses a different option symbol format than the thinkorswim legacy notation many traders are familiar with from TD Ameritrade. JournalPlus includes a symbol normalization step during import — if mismatches appear, use the manual review screen to correct the mapping before finalizing.