Skip to content
investiDocs

Sample data

Load a clearly labeled sample portfolio built on real historical prices to explore every screen, then remove it in one click.

On this page

The sample portfolio fills every screen with realistic data so you can see what Investi does before you import anything. It sits on real historical prices, but it is not your history, and Investi labels it that way everywhere.

Loading it#

You can load the sample from two places:

  • Home. With no data yet, Home shows an onboarding panel. Under "Just exploring?", click Load sample account.
  • Settings. In the Import Schwab history panel (/settings#data), click Load sample account under "Sample data".

Loading fetches two years of daily prices for each ticker, so it is not instant. If prices cannot be fetched, Home shows "Could not load sample data. Price history may be unavailable right now."

What it contains#

Everything goes into one account named Sample account (not real), with the masked number SAMPLE. Every record in it has source sample.

Ticker Closed round trips Shares per trip Sessions held Open position
SPXC 6 20 9 15 shares
AAPL 3 10 20 12 shares
MSFT 2 8 30 6 shares
JPM 3 15 14 none
COST 1 3 40 3 shares
NKE 2 25 12 40 shares

How the records are built:

  • Fills use real daily bars from the last 300 sessions. Each round-trip fill is priced at the midpoint of that day's high and low, each sell comes the listed number of sessions after its buy, and the trips are spread evenly across the window. The open positions are bought at the day's low 12 sessions before the latest bar. Fees are zero.
  • Working orders. Each open position also has one GTC limit buy for about half its shares (rounded, at least one), priced at 95% of the latest close and expiring 60 days after you load the sample. This exercises the order exposure views.
  • Cash. A $50,000 deposit dated 400 days ago, and a balance snapshot with a $4,200 margin debit.

A ticker is skipped if it cannot be resolved or has fewer than 300 daily bars of history. Fills and orders carry fixed fingerprints, so loading the sample twice does not duplicate them.

Because sample fills run through the same ledger as real ones, round trips, realized P/L, win rate and the research pages all work exactly as they would for your own record. See The ledger.

The banner#

While a sample account exists, every app page shows a banner under the header:

Note: Sample data. A labeled sample account is loaded so you can explore. It is not your trading history.

The banner's Remove sample link goes to /settings#data. Coverage and provenance also say so: the History page's Imports panel notes "Current records are sample data." when no file imports exist, and portfolio responses through the MCP connector carry sample: true in their provenance.

Removing it#

Click Remove sample account in Settings. Investi deletes every account with source sample in your workspace. Fills, orders, cash events, balances and snapshots in those accounts go with it. Your own imported or synced accounts are untouched, and the banner disappears on the next page load.

Sample data and your real history can coexist, but totals across all accounts then include both. Remove the sample before you rely on combined figures.

From the API#

Request Effect
POST /api/v1/sample Loads the sample. Returns the account id and the number of fills written.
DELETE /api/v1/sample Removes every sample account. Returns { "ok": true }.

Both require the signed-in app session and the workspace:write scope. Requests made with a personal access token or an OAuth token are refused with 403 session_required ("Use the app"), so an integration cannot add or remove sample data on your behalf.