Skip to content
investiDocs

History

The History screen: realized P/L by month, win rate and top symbols, every round trip and fill in sortable tables, tax, realized by lot method, the weekly review and a Data notes drawer.

On this page

History is your complete trade record: every fill you imported and every round trip built from those fills, led by charts and big numbers rather than text.

Open it from the nav or press g then t.

Header and figures#

The header shows the number of fills and your coverage dates (first to last trade date), and a Data notes button with a count (see Data notes).

Four large figures follow:

  • Realized: verified realized P/L across all closed lots with a known basis, matched with your lot method. The same number as Portfolio, Home, Analytics, the REST API and the MCP tools.
  • Win rate: closed round trips with a gain, out of all closed trips with a known basis.
  • Avg days held: across those closed trips.
  • Round trips: every trip, with how many are still open.

"Verified" means lots with unknown cost basis (for example shares transferred in without basis) are left out. See /docs/concepts/ledger.

Charts#

  • Realized by month: one bar per month of the closing sale, green up for a gain and red down for a loss, from the same lot matches as Realized, so the bars sum to it (the panel header shows the sum). Months with no closing sale are drawn as zero. Hover a bar for its amount.
  • Top 10 symbols: the ten symbols with the most realized P/L across closed trips, as bars on one scale.

Tables#

One panel holds five tabs: Round trips (the default), Fills, Tax, By method and Weekly review. The tab is kept in the URL (/history?view=tax). Every table sorts by every column (Shift-click for a second key), filters from each column header or Filter, keeps its view in the URL, chooses and reorders columns, and downloads the rows on screen as CSV.

Round trips#

A round trip is one position in one account taken from flat to open and back to flat. Default sort is newest sell first; open trips are dimmed and sort last.

Column Meaning
Symbol The ticker.
Buy date, Sell date Exact dates (time on hover). An open trip shows an "Open" tag. For a short trip the buy is the cover.
Days Days from the first buy to the last sell.
Shares The largest position size during the trip.
Buy, Sell Average buy and sell prices.
Realized Realized P/L. "Partial basis" when some shares had unknown basis; those trips are left out of the footer total.
Realized % Realized P/L divided by the cost of the shares that were closed, with a bar.
Result Win, Loss, Flat, Open or Partial basis.
Account The account.

Side and Max adverse (the worst move against the position while held, from daily lows and highs) are under Columns.

Filters are column filters: date range on Buy date or Sell date, Symbol (contains), Account, win or loss on Result, and held days as a minimum and maximum on Days. They combine.

Fills#

Every imported execution, newest first: date, symbol, side, shares, price, amount, fees, account and source.

By method#

Realized P/L per calendar year of the sale by FIFO, average cost and, when your setting is different, your lot method, with the totals in the footer. Sales of shares bought before your history starts are left out of every column; a Legacy proceeds column lists them when there are any.

Weekly review#

The Weekly review tab covers the most recent completed trading week: Monday 00:00 New York time through the Friday close. On a weekend, or on Friday after the close, that is the week just ended; earlier in the week it is the prior week. The first line shows the date range; hover its (i) for the method. Link to it at /history?view=weekly. It is computed from your own records by the same engine as the get_weekly_review MCP tool.

A row of figures sits at the top:

Label What it shows
Realized this week Realized P/L from the week's sells, on average cost per symbol.
Realized in (month) Realized P/L from the start of the month to the end of the review week.
Losing sells Sells below average cost this week, out of all sells.
Crash-cap ratio Open buy orders plus margin debt, divided by equity. "Unknown" without a broker balance.
Consumer discretionary That sector's share of equity. Hover for the limit.
Market regime GREEN, YELLOW or RED, the same regime shown on Home.

Realized figures here use average cost, so they can differ from the lot-matched figures elsewhere on this screen and from your broker's lot method. They are not tax figures.

Action items lists what to do this week, for example removing buy orders on RED or FLAGGED names, switching resting buys to plain GTC before earnings, held names reporting soon, buys made on an earnings day or a RED name, a crash-cap or consumer discretionary breach, and a non-GREEN regime. With nothing to do it says so.

Below that, six lists: Deepest losers (up to eight open positions below cost), Open orders on RED or FLAGGED names, Reporting in the next 7 days (held or ordered names, each marked confirmed or estimated, with a "Switch to plain GTC" tag where an order is set to trade in extended hours and the date is confirmed; estimated dates never change order advice), Exits (positions that went to zero this week), New positions and Losing sells. A final list, Bought on an earnings day or a RED name, appears only when there is something in it; earnings days come from SEC 8-K item 2.02 filings and the verdict is the one on record at the time of each buy. See /docs/strategy/rules for the risk lines.

Tax#

The Tax tab (/history?view=tax) is a planning view of your realized and unrealized gains. Every figure is an estimate, not tax advice; your broker's 1099-B is the record of truth. The same numbers are at GET /api/v1/tax/summary and GET /api/v1/tax/harvest and in the MCP tools get_tax_summary and get_harvest_candidates.

The strip on top shows this year's short-term and long-term realized, losses disallowed by wash sales, the harvestable loss with the days left to Dec 31, the estimated tax saving and how many open lots turn long-term within 30 days. Four tabs follow. How tax works at the bottom opens the holding-period and wash-sale rules.

  • By year: realized per tax year (the New York trade date of the sale), split short-term and long-term, the wash-sale disallowed amount, both terms after adding it back, the lot count and proceeds from unknown-basis closes, which stay out of every total.
  • Harvest: open lots below cost at the last price, worst first, with shares, cost per share, last, unrealized loss, days held, the term if sold today, the long-term-from date, a wash-sale flag and an estimated tax saving (loss x your rate for that term, assuming gains to offset). Wash if sold now means you bought the same stock in the same account in the last 30 days, so the loss would be deferred and the saving reads Deferred; an open buy tag means a working buy that fills within 30 days after a sale would wash it too. The sale's trade date must be on or before Dec 31. Up to $3,000 of net capital loss a year offsets ordinary income; the rest carries forward.
  • Wash sales: each loss sale with a buy of the same stock in the same account within 30 days before or after it: sold and bought dates, shares, term, the loss, the disallowed part, what is still deductible and the replacement buys whose basis rises by the disallowed amount.
  • Open lots: every open long lot with its one-year date, long-term-from date, days held and days to long-term.

Holding period

The holding period starts the day after you buy. A lot is long-term when sold more than one year later: NFLX bought April 17, 2026 has a one-year date of April 17, 2027 and is long-term when sold on or after April 18, 2027. A lot bought on February 29 is long-term from March 1 of the next year. Closing a short sale is treated as short-term. The Research page's open lots table shows the same long-term-from date.

Wash-sale detection limits

Replacement shares are matched one for one, earliest loss sale first, and a buy is never counted as the replacement for shares it supplied to the same sale. The disallowed loss is the loss times replacement shares over shares sold. Detection covers the same account and the same instrument only: buys in other accounts (including IRAs or a spouse's accounts) and substantially identical securities (other share classes, options, similar funds) are not checked.

Rates

Short-term and long-term rates come from Settings (37% and 20% by default). Lots are matched with your reporting lot method.

Data notes#

Data notes opens a drawer with everything that used to be paragraphs on this screen. The count on the button is the number of notes plus data checks.

  • Lot method: the reporting lot method (FIFO, LIFO or HIFO, changed in Settings). Realized P/L is computed per lot match, rounded to cents; buy fees are added to cost and sell fees subtracted from proceeds. Original executions are never changed.
  • Legacy basis (when you have any): proceeds from shares bought before your history starts, left out of realized.
  • Realized by method: how average cost differs from lot matching, and whether your files carry Schwab's own lot method.
  • Round trips: the definition.
  • Data checks: the ledger's checks grouped by symbol (legacy sales, broker share counts that differ from your fills, skipped fills).
  • Imports: your 20 most recent file imports, each with the account, new and skipped counts, coverage dates and any issues, and Import more (/settings#data). Re-importing an overlapping export is safe: duplicate rows are detected by fingerprint and skipped. See /docs/getting-started/import-history.
  • Downloads: Fills CSV (/api/v1/export/fills), Lot matches CSV (/api/v1/export/lots) and Round trips CSV (/api/v1/export/round-trips), named investi-{kind}-{date}.csv. The same data is on the REST API.

Empty state#

With no fills you see "No trade history yet" and an Import Schwab history button. Import Schwab CSV or JSON exports, or connect Schwab in Settings. Coverage is always shown and nothing is filled in by estimate.