Enter your account value at the end of the day, plus any cash you added or took out. One row per day - saving a date you already have replaces it.
Day P&L = equity change − deposits + withdrawals, so cash you add or remove never counts as profit or loss.
Fetching campaigns and live market quotes.
Everything in the journal is in US dollars. Pick a second currency and the Performance tab shows every $ figure in it as well, at today's rate or one you type.
The Performance tab's statistics, monthly and annual tables and the equity chart get a second column or axis in the currency you pick. The boards and the nightly email stay in US dollars, because that is what your broker reports.
Tell the journal how your broker margins you and the biggest trade you want to allow. Every margin and position-size figure on the site is worked out from these.
Two numbers, kept apart. Margin held is what your broker ties up against a position - it depends on the account type above and is what drives Margin Used and Excess Liquidity. It comes in two sizes: initial (what must be free to place the trade - under Portfolio Margin 110% of the maintenance, under Reg T 50% of share value) and maintenance (what is held while the trade is on). The Estimated Return panel shows both; the boards and the account card work on the maintenance figure, with Available Funds (account value less initial margin) telling you what is free for a new trade. Capital at risk is what you can actually lose - for a sold put, the shares you would own at the strike less the premium you were paid (plus commission); for shares, their value today. It is the same whatever the account type, and it is the number the position-size cap below works on.
Cash. A sold put holds the full strike × 100 (cash-secured); shares are fully paid; a covered call adds nothing. Margin held and capital at risk are nearly the same number.
Margin (Reg T). The rule-based requirement IBKR and other US brokers apply: a sold put holds the option's value plus the greater of 20% of the stock price less the amount the put is out of the money, and 10% of the strike. Shares are held at the maintenance percentage you type (IBKR's minimum is 25; volatile or concentrated names run higher). A covered call adds nothing; a spread holds the width between its strikes.
Portfolio Margin. Risk based: the requirement is what the position would lose if the stock moved by the stress range against it (IBKR's standard on a single stock is 15% - type the stock's own Maintenance % from the Financial Instrument Description), with a floor of $37.50 a contract; shares at the same percentage. IBKR layers house add-ons for concentration on top; the Broker add-on box above covers that if your previews run consistently high.
Per-stock rates. Brokers set a different rate for every stock (IBKR: CNX 15%, TCOM 20%). The % you type here is the default; the Margin % box beside the symbol in Log New Trade overrides it for that stock and is remembered, so the panel, the boards and the nightly email all use the stock's own rate from then on. Blank = this default. The quickest way to set it: type the trade, preview the same order at your broker, click match IBKR and paste the Maintenance Margin change from the preview - the % that reproduces it is worked back and saved.
How the option is valued (Portfolio Margin). The broker does not just take the loss at the stressed price - it values the option there with a pricing model, and a sold option still has time value after a 15% move: the further out of the money or the longer dated, the more. The site does the same: it backs the implied volatility out of the option's market price, raises it by 80% for the stress (fitted to IBKR previews on 4 Oct 2026 - CNX and NVDA at 12 and 47 days, EIX, GMED, HMY, ORI, TSLA - mean error 5%), values the option at the stressed price and subtracts what it is worth now. That is why IBKR's figure barely moves with days to expiry even though the premium does, and the site now behaves the same way. Hover the Margin heading in the panel to see the implied vol used. Without an expiry the plain stressed loss stands in.
The premium you type does not move the margin. Your broker values a sold option at its market price, not at your limit (IBKR's preview does not change when you edit the price), so the margin side uses the option's live mid once it arrives - the heading shows "option at market $…" - and the premium you type only drives Net Premium, the returns and Capital at Risk.
Where it shows. Log New Trade → Estimated Return (both blocks), Open tab → Margin Held / Capital and Margin Used (= margin held ÷ your latest logged equity), the Account card's Excess Liquidity line, and the nightly positions email.
It will not match your broker to the dollar. Every broker adds its own rules - per-stock risk models, concentration and volatility add-ons, minimum charges, intraday changes - so treat these as consistent estimates for comparing your own trades, not a statement of your actual margin.
What it does. When you log a trade, the Estimated Return panel shows the Capital at Risk (for a sold put: the shares you would own if assigned, less the premium) as a percentage of your latest logged account value, and warns in amber when that is over this cap and in red when it is over twice the cap. The margin side is shown as a percentage too, but the cap is judged on what you could lose, not on what the broker holds.
How to set it. The wheel only works on stocks you are happy to own in a size you are happy to hold through a bad month. Many traders keep any one stock to 5–10% of the account so that no single assignment can hurt the whole account; 5 is the starting point - raise it if your account is small or you are comfortable with more concentration. It needs an account value from the Performance tab (or a linked broker) to work.
A warning, not a block - the trade still logs. The same cap will drive the position-size note in Wheel Picks.
Broker generic. Works with any broker or spreadsheet: save your sheet as a CSV file (Google Sheets: File → Download → Comma Separated Values; Excel: Save As → CSV) and upload it below - account performance first, then trades. Download gives you what the journal holds in the same layout, so a file you download can be edited and uploaded again. Interactive Brokers members can skip this page: Upload Acc Info (IBKR) takes the broker's own file.
Kept a daily P&L sheet before? The columns are Date, Equity, Deposits, Withdrawals (Note optional). Other columns are ignored and days you already have are skipped. A file with the columns Date, Kind, Amount, Symbol, Note goes into the Performance tab's Income & costs instead (kinds: dividend, withholding tax, interest paid, interest received, commission, fee, other).
One row per leg (up to 500 rows per file). Rows with the same Symbol, Strategy and Campaign_Start are grouped into one campaign; a put or call marked Assigned buys or sells the shares for you. Download gives you every campaign on the Open and Closed boards.
Columns (* = required): Symbol*, Strategy*, Campaign_Start*, Leg_Open_Date*, Leg_Type*, Action*, Contracts*, Strike*, Expiry_Date, Premium, Comm_Open, Status*, Close_Date, Close_Price, Comm_Close, then optional Account_NLV, Campaign_Status, Campaign_Ref. Dates in your account's date format (see My Account) or as YYYY-MM-DD.
Strategy: Wheel · Single Option · Strangle · Straddle · Vertical Spread · Calendar Spread · Iron Condor · Stock.
Leg_Type: CSP (cash-secured put) · CC (covered call) · Put · Call · Stock (Action Buy or Sell; Strike = the share price, Contracts = shares).
Action: Sell or Buy. Status: Open · BTC / STC (bought / sold to close) · Expired (close price 0) · Assigned (the shares are added for you) · Rolled · Liquidated.
Campaign_Status: Active (= the Open board) or Completed (= the Closed board); blank = worked out from the rows (an open leg, or shares still held, means Active). Campaign_Ref: any short text to keep two campaigns apart when they share a symbol and start date.
Example - a wheel: three PLTR rows with Campaign_Start 2026-01-01: a CSP 20 sold 2026-01-01, Assigned 2026-01-15; a CC 21 sold 2026-01-16, Expired 2026-02-15; a CC 21 sold 2026-02-16, Open. Rows marked "Stock (assignment - do not re-import)" in a downloaded file are skipped on upload because the Assigned legs re-create them.
Link your broker once and the journal pulls your figures in for you: your daily account value for the Performance tab and your option and stock fills as campaigns. More brokers will be added over time.
Loading…
The live link under Connect Brokerage reaches back 365 days. For the years before that, run the same Flex query by hand with a Custom Date Range (one year per file - steps below) and upload each file here. One upload does everything: the daily account values, deposits, withdrawals, dividends, interest, commissions and fees go to the Performance tab, and the option and stock fills open the usual preview for your campaigns. Nothing already in the journal is written twice.
Oldest year first. The grouping into campaigns needs the earlier positions to exist, so upload 2023 before 2024, and finish each preview (Import) before uploading the next. Fills that match a leg you typed from a spreadsheet are stamped, not doubled; a contract opened in a year you have not uploaded yet shows as "needs a choice" when it closes - Skip it, or upload that year first.
Only the parts the journal reads are sent (daily values, cash items, fills, assignments, expiries, splits), so even a large file uploads in seconds.
Correct any typos in your active trade.