Sign up with Google — takes a minute. Connecting your broker is optional.
Spoke is a trading journal for the options wheel strategy: track premium, cost basis and goals across every wheel. Privacy · Terms · trading@1010.group
Schwab setup in progress
Pick up where you left off — your progress was saved.
How far back should we import?
This is your first sync. Trades older than the date you pick won't appear in History, balances or goal pace.
A long backfill arrives as pending trades to confirm under Review WheelIDs. You can always pull more later from Settings → Broker.
Loading your data…
Spoke is a journal, not investment advice.
Time range
Last 60 days
Weekly Progress (1% Goal)
Account Balance
Balance unavailable from Schwab — enter manually to enable chart
Cumulative Realized P&L
Last 30 Days P&L
Open Capital by Ticker
Open Positions by Industry
Drag a component to reorder, use −/+ to resize its width, or 👁 to hide/show. Changes save automatically.
Loading…
Open wheels
All active option positions
Assigned stock holds
Stock received from option assignment — awaiting covered call or sale
Outright stock holdings
Direct stock purchases — categorized with HOLD-TICKER wheel ID
Closed wheels
Ticker ↕
Closed ↕
Days ↕
Contracts ↕
Capital at Risk ↕
Option Cash ↕
Stock P&L ↕
Total P&L ↕
ROC % ↕
ROC/Day ↕
Account
Result
Symbols
Performance by ticker — closed wheels only
All-time comparison
Total P&L by Symbol
Avg ROC/Day by Symbol (closed)
Weekly put analysis Custom rules
Not yet generated
Recommendations
Candidates that cleared the quantitative rules — Claude in Cowork layers news & conviction.
▸ Rules applied
Hard blocks (candidate dropped)
Return: RoC ≥ 0.2%/day
Probability OTM: ≥ 70% (75% target)
Capital: ≤ $50K per contract
Earnings: no candidates within 14 days of next earnings
Gap-up cool-off: if today is ≥ 3% above prior close, no strike above prior close
Liquidity: drops spreads >15% & >$0.10, stale quotes (no trade 30 min during market hours with >8% spread), or zero-volume w/ OI <100
Soft flags (still shown, tagged for review)
Prob OTM between 70–75% — borderline
Open interest < 50 — low_oi
Spread > 12% — wide_spread
Ranking score (0–100)
RoC (0–50) + Prob OTM (0–30) + IV (0–15) + Open Interest (0–5)
No analysis data yet — click "Run Analysis" to generate recommendations
Blocked this week
Watchlist
Tickers eligible for weekly analysis
Ticker
Status
Next Earnings
Notes
Actions
Add to Watchlist
Trades
Sort
Spoke
WheelID
Posted Date
Action
Expiration
Strike
Qty
Price
Fees
Amount
Edit
Settings
Suggested WheelIDs
First time connecting? The guided setup walks you through the whole Schwab developer-portal process, step by step.
One-time setup — your credentials are encrypted (AES-256-GCM) and stored server-side. They're only ever used to talk to Schwab.
Your redirect URI (set this in the Schwab dev portal Callback URL field): Loading…
●
Schwab Connected
Name each account — fills the Account column automatically on every import.
✓ Saved
Every hour
Runs silently in the background — no need to have the app open. WheelIDs with one clear match are auto-filled; ambiguous ones are left blank for you to review.
Transactions to import
Checking connection…
Re-runs the WheelID matcher across all unassigned trades, including any you unassigned by hand. Rarely needed — the auto-importer fills these on every sync — but useful after manually editing trades.
Pull next earnings dates from Finnhub for every active watchlist ticker. Runs automatically Saturday morning — refresh manually after changing the watchlist.
After manually editing WheelIDs in Parsed_Trades_v2, rebuild the Wheel Summary tab to sync all config rows and restore live price formulas.
If you've deleted rows from the sheet and need to re-import them, reset the import history first. The content fingerprint check will still prevent true duplicates.
Manual ledger of cash in / out. Logging a deposit or withdrawal steps the goal-pace trendline by that amount on the same date, so a $20K deposit reads as added capital — not out-performance — and a withdrawal steps it back down. Also strips cash in-and-out from the weekly P&L calc so the weekly goal isn't skewed.
Up to 3 goals, each shown as a card at the top of the Dashboard. Timeframes: weekly (Mon–Sun), monthly, or quarterly (calendar quarters). The first weekly goal also drives the "Weekly Progress" chart and the Week-over-Week tile on Open Positions; the default is 1% of account balance per week. "Capital deployed" means the period's peak committed capital: positions closed mid-period still count for that period, and a put expiring later holds its capital through expiration.
Industry icon key
Every ticker gets an industry chip on Analysis cards and the watchlist. Hovering a chip anywhere in the app also shows its industry name.
Open spokes · options closest to ITM first
Price · 5-min · last 7 days
RSI (14) · daily · 3 mo
MACD (12·26·9) · daily · 3 mo
Fix Position Mismatch
Link to Wheel
Select a wheel to combine these shares with
Select wheel to attach shares to:
This will reassign all 0 trades tagged to the selected wheel ID.
You can unlink individual trades later via the drill panel.
Raw Trade Data
Every trade, assigned or not — use the button in the WheelID column to move a leg onto the right wheel
AccountTickerActionStatus
Date
Account
Ticker
Action
Type
Strike
Expiry
Qty
Price
Amount
WheelID
Review & Confirm WheelIDs
Suggestions are pre-filled from recent syncs — confirm or change each, then hit Save