Your recent, watchlist and portfolio tickers are listed when the field is empty. Press Enter to build the selected strategy type on the chosen ticker. Press Option or Command with Enter to change the strategy type.
Get started

Track your book

One cycle from the put to the call-away

Screenshots from the live app, dark theme

The wheel is one campaign, not a series of disconnected trades: sell a cash-secured put, get assigned, write covered calls against the shares, eventually get called away. The wheel tracker keeps that thread — cumulative premium, adjusted cost basis and annualized return carried from the first put to the last call.

Starting a cycle

  • From a put: Start cycle → log the CSP (strike, expiry, premium, contracts). The cycle sits in the csp stage with collateral out.
  • From shares you already own: start a covered-call cycle on an existing lot — see Covered calls.
  • From trades you already have: Build from existing composes saved strategies and stock lots that are really one wheel into a single cycle — see below.
The wheel page showing open cycles with stage badges, premium collected, adjusted basis and days held
Each card names its real stage — collateral out, holding shares, covered call written — with the next action right there.

Assignment is the middle, not the end

Record an assignment and the tracker creates the stock lot for you, at the strike less the premium already collected — the number you actually care about. The cycle stays open and fully visible: “holding shares, no covered call” is an active state with an obvious next action, not an expired trade. Nothing auto-closes a cycle because an option leg expired or was assigned; a cycle closes when you close it or the shares leave.

Auto-detect: the wheel finds itself

Sell a new put on a ticker you are already wheeling — through the builder, the copilot, or an import — and it attaches to that cycle automatically. Same for a covered call written against cycle shares. The position wears a chip naming the cycle it joined, so nothing happens silently.

If the guess was wrong, the chip’s Detach action moves the auto-attached position out into its own standalone cycle — nothing is deleted, the trade really happened — and the app remembers the detach, so the same suggestion is never made again for that position. Only auto-attached events ever move; anything you logged by hand is never disturbed.

Build a wheel from existing trades

Already holding the pieces as separate rows — a closed CSP here, an assigned lot there, two covered calls from an import? Start cycle → Build from existing trades lets you select them, and the composer sorts what it can into one cycle: the right event order, the right cumulative premium, the right adjusted basis. Where the inference had to guess (a lot that might not be the assignment, an entry it cannot see), it asks before saving rather than booking a wrong basis.

A wheel cycle's detail view: the event timeline from the opening put through assignment and covered calls, with cumulative premium and adjusted basis
The timeline is the audit trail — every event editable after the fact, with the cycle refolding from the correction.

The recap card

From the wheel page you can generate a monthly recap card — premium collected, cycles worked, realized results — as a shareable image. Every figure on it is folded by the engine from your logged events.

Quotes shown are 15 minutes delayed. Nothing here is investment advice.