Documentation
Trades

Manual Trade Entry

Add trades that aren't in your brokerage - historical fills, off-platform trades, or paper-trading scenarios.

Not every trade is in a connected brokerage. You may have an old account that's since closed, a broker we don't support yet, or trades from a paper-trading scenario you want to include in the journal. Manual entry covers all of these.

Manual trade entry flow with the options chain selector open

Opening the form

The Trades page has two header buttons:

  • Add Trade - opens the Options Chain Selector to record a new opening position (Buy to Open / Sell to Open). Its dropdown caret also offers Manually Enter Trade for contracts that can't be selected from a chain - see Unverified trades below.
  • Close Position - opens the close-position modal for an existing manual open leg. See Closing Trades for that flow.

The selector also detects when one of your selected contracts would close an existing open position and prompts you to confirm those as BTC/STC instead of new openers.

How the flow works

  1. Enter the underlying Symbol, Trade Date (defaults to today), and Trade Time, then choose Select Contracts or Select a Strategy.
  2. The chain loads. In manual mode, click contracts in the split call/put table to add as many legs as you need. In strategy mode, pick a structure (vertical, iron condor, straddle, etc.) and the selector auto-fills the legs around the at-the-money strike.
  3. Click Finalize Selection to move to the preview.
  4. In the preview, adjust each leg's Action (Buy/Long or Sell/Short), # of Contracts, Cost Per Share (per-share premium, defaults to the chain mid), and optional Total Fee, then click Confirm Selection. If any legs match an existing open position you'll get a closing-trades confirmation step before the trades are written.

Strategy detection runs after the trade is saved - if the legs match a known structure they get grouped on the Strategies page.

Unverified trades

Some trades can't be picked off a chain at all: a broker we don't support, a contract that no longer exists, a ticker that has since been delisted, or a fill our market-data provider simply has no record of. Choose Manually Enter Trade from the Add Trade dropdown and type the trade in directly.

Nothing you enter has to match the options chain, so you can record a trade even when we can't corroborate any part of it. Saving is never blocked on finding the contract. The form still tells you what each choice costs you before you save - an expired contract, a zero premium, a closing trade with no matching open position.

Trades entered this way are marked Unverified on their row and counted in the notice on every P&L surface. Imported trades get the same badge, for the same reason, when Trade Import can't match their contract on the chain. Concretely:

  • Realized P&L, fees, trade counts, win rate, and every analytics breakdown include them exactly like any other trade.
  • Unrealized P&L, Greeks, and risk metrics need a live market quote, so they stay empty for as long as we can't match the contract to real market data. If the contract is real and still trading, we keep retrying it on every market-data refresh, so marks start flowing on their own with no further action from you. A contract that has already expired is not retried - it is settled at expiration instead of ever getting a live mark.

Editing trade details

Every trade row - broker-synced, imported, hand-entered, or a settlement row - has Edit Trade Details in its action menu. It opens the same form pre-filled with the trade's current values.

Saving stores an override rather than editing the trade. The original record is kept untouched and your values are used everywhere instead: positions, realized and unrealized P&L, analytics, the calendar, and the dashboard. That's what makes the feature safe for broker-synced trades - the next sync would overwrite a direct edit, but it leaves your override alone. Overridden rows are marked Edited and list what changed; Restore Original in the same form drops the override.

An override that repoints a trade at a different contract (a different symbol, strike, expiration, or call/put) also marks the row unverified, since we have no evidence the new contract is one we ever validated.

Fees are overridden separately - use Override Fee in the same menu (see Fee overrides).

Deleting

To remove a trade entirely, use Delete Trade in the row's action menu. Broker-sourced trades can never be deleted - doing so would break position reconciliation - so correct those with Edit Trade Details instead.

Gotchas

  • Manual trades have no brokerageId or accountId and aren't tied to a brokerage account. Unrealized P&L still tracks live marks from the options data feed, but there's no broker reconciliation to fall back on.
  • Portfolio assignment isn't part of the entry form - assign a manual trade to a portfolio later via the inline Portfolio column on the trades table.
  • Trades created here are tagged source: "manual", which is what makes them deletable later. Broker-sourced trades share the same row actions but can't be deleted.

On this page