ThetaTracker Pro — User Guide
A trading journal built specifically for systematic premium sellers — short-put / wheel-style traders on tastytrade and thinkorswim. This guide walks through every feature, from your first import to keeping your data safe.
Welcome
ThetaTracker Pro organizes your options portfolio the way a premium seller actually thinks about it — by department, not by a flat list of positions. Each department is a job: generating weekly income, holding protection, running a hedge, parking long-dated bets.
The methodology behind it is simple and consistent: short puts are income engines that get rolled, not closed; long puts are permanent protection inventory that you finance over time. The app's numbers — roll capture, "Net If Rolled," coverage, "fully paid" — are all built around that approach, which is exactly what generic journals miss.
Index and ETF premium sellers running weekly short puts with a long-put protection layer. If you trade XSP, SPX, SPY, or similar and roll your shorts week to week, this was built for you.
01 Getting Started & Import
Everything starts with an import. ThetaTracker reads your broker's position export and lands every position in 📥 New Positions, where you route each one to its home department — a one-time choice the app remembers on every future import.
Make this your standard procedure every day you open the journal, whether or not you traded:
- Import your positions — 📥 Import CSV in the header. This is your current open book, with live marks and Greeks.
- Import your history — 📋 Import History, exporting everything since your last import (a wider date range is always safe).
Why both, every time: your positions file is a snapshot of what's open right now — by design it shows nothing that already closed, rolled, or opened-and-closed since your last download. Your history file is the complete record of every fill, and it's what captures those events and their realized P/L. Positions alone leaves gaps — a missed roll, a missing realized gain, a same-day trade that never appears. Both together keep the journal complete. And because history de-duplicates automatically, importing on a quiet day costs nothing — so the rule is simply: always do both.
Supported imports
- tastytrade CSV — export your positions from tastytrade and import the CSV directly.
- thinkorswim desktop CSV — the Position Statement export from the desktop platform (carries full Greeks).
- thinkorswim Web — save the positions page as an HTML file and import that (the web platform's saved page carries the Greeks the plain Schwab portfolio CSV does not).
The Schwab.com portfolio CSV is rejected on purpose — it has no Greeks, so it can't drive delta, theta, or coverage math. The app will tell you which export to use instead.
Required export columns
Before your first export, make sure your broker's positions view includes the columns below, then export. The journal needs them to drive your Greeks, protection coverage, and roll math — and your broker remembers the layout, so this is a one-time setup. If a required Greek column is missing, the import warns you rather than loading an incomplete book.
Symbol Type Quantity Exp Date DTE Strike Price Call/Put Mark Trade Delta Theta Bid (Sell) Ask (Buy) OTM % PoP Touch Prob IV Rank P/L Open Realized Tod Net Liq
The desktop Position Statement export carries full Greeks. The columns the journal actually relies on are Instrument, Qty, Mark, Trade Price, Delta, Theta, Net Liq, and P/L Open — the rest add detail. If the Delta, Theta, or IV columns are missing, the import warns you instead of loading incomplete Greeks.
thinkorswim Web users: save the positions page as HTML instead — the saved page carries the Greeks the plain Schwab portfolio CSV lacks.
How to import
- Click Import CSV in the header.
- Drop in (or choose) your broker file. The broker is detected automatically.
- Your positions land in New Positions for routing, and the whole dashboard repopulates.
Where positions go on import
Every imported position — puts, calls, stock, all of it — lands in 📥 New Positions. Nothing is filed automatically. You route each one to its department in one click, and that choice sticks for every future import (see New Positions & Routing). You stay in full control of where each position lives — the journal never guesses.
Re-importing is safe and expected — it refreshes your marks, Greeks, and routed positions everywhere. Your hand-logged legacy legs, journal notes, and credit ledger are kept separately and are never overwritten by a re-import.
02 Accounts & Privacy
Your data is private by design. Two things make that real:
Account de-identification
ThetaTracker never stores or displays your full broker account number. On import it keeps only the last four digits for labeling, so screenshots, screen-shares, and demos stay safe.
The Accounts manager 🗂️ header
If you trade more than one account, the 🗂️ Accounts button in the header lets you:
- Switch between accounts — each keeps its own positions, history, ledger, and journal. The active account drives the whole app; switching reloads it into that book.
- Rename an account to something meaningful (e.g. "Roth — Income").
- Color each account with its own accent — it tints the header switcher and the account's identity so you always know which book you're in. Pick a color in Settings → Accounts. The color is purely a visual cue; it's never tied to your broker number.
- Remove an account entirely when you no longer need it.
The 🌐 All Accounts tab
With two or more accounts, a 🌐 All Accounts tab appears next to the Dashboard — a read-only combined overview of every book at once:
- Combined totals — net liq, premium, theta, and Earned Today summed across all accounts.
- Per-account breakdown — BP %, delta, and net liq shown per account, never blended (a combined BP % across a margin account and an IRA would be meaningless).
- Every position grouped by account, color-coded.
It's read-only on purpose — to act on a position, switch into its account. A fully interactive combined view is planned for when live API data arrives.
Your journal lives in this browser, on this device. Nothing is transmitted to a server. That's why the backup habit in Keeping Your Data Safe matters so much.
03 The Dashboard
The dashboard leads with the Earned Today income strip, then your vitals, income campaign, department health, and live charts — all on one screen.
Earned Today — the income view
The first thing on your dashboard is the income strip — four numbers that measure how your engine is actually doing, with Net Liq demoted below them as context.
Net Liq is a liquidation value — its daily swing is dominated by the market re-pricing your positions, not your income. Check Earned Today first; glance at Net Liq for context. The Performance Framework covers this in depth.
Vitals
Across the top: Net Liq, Buying Power used, portfolio Delta, Protection Coverage, and Theta/day. Coverage is the share of your short-put exposure covered by your long puts — your Weekly Income long inventory plus any Portfolio Protection legs. Enter your broker's actual available buying power in Settings to show it exactly, or leave it blank to estimate from Net Liq.
Your income campaign
Department Health
A tile per department — Weekly Income, Hedge, Protection, Other Income, Leaps, Stock — showing whether each is populated and healthy, so problems surface before you go digging.
Charts
Four live charts sit right on the dashboard. See Charts for the full rundown.
04 Weekly Income — The Engine
This is where the strategy lives. Weekly Income tracks your short puts (the income) and your long puts (the protection inventory) side by side.
- Short puts show their credit, current mark, P/L Open, delta, theta, days to expiration, and a status badge — roll today, roll this week, or comfortable — driven by your roll-timing settings.
- "Net If Rolled" shows where you'd stand after rolling, so the decision is numeric, not a guess.
- Close At lets you set a profit target on a position; it now applies to long legs as a target too.
- Long puts are your standing protection inventory, tracked so you always know your coverage against the short-put liability.
If a leg has no matching live import, you can click its mark and type one in (it shows in gold). A live import always wins over a manual mark, so your hand-typed values are quietly replaced once real data arrives.
05 New Positions & Routing
Every position you import waits for you in 📥 New Positions until you give it a home — nothing is filed automatically, so nothing ever lands in the wrong place. Route each one to where it belongs:
- Short & long puts → Weekly Income (your core engine).
- The hedge call spread → Hedge.
- Long-dated long calls → Leaps.
- Protective long puts → Portfolio Protection.
- Stock shares → Stock.
Each item in New Positions has a Route → control. Pick a department and it files instantly. The choice is remembered — that position routes itself on every future import — and every department row also carries a Move → control so you can re-file anything later. To clear or fix a routing, use the 🔀 Routing Manager in the header.
Beta testers asked for it: explicit routing means your departments only ever contain what you put there. No surprises, no guessing, no cleanup after a misfile — you decide once and the app remembers.
Grouping a trade's legs together
Within any department you can cluster related positions into named groups, so the legs of one trade sit together for review. Every position row has a ⊕ group button: tap it, then pick an existing group or name a new one (for example Condor — SPX Jun). The table then shows that group under its own header with a leg count and a net subtotal, and anything ungrouped sits beneath.
- Other Income is the prime case — gather the four legs of an iron condor, or both legs of a credit spread, under one header and manage the structure as a unit.
- Weekly Income, Hedge, Protection, and Leaps support it too — group by campaign, by underlying, or however you review.
Grouping is manual, it's yours, and it's remembered across imports — the same discipline as routing.
06 Hedge
Hedge tracks your call-spread overlay — net valuation, each leg, hedge delta, and carry cost — kept separate so it never muddies your income numbers. Calls land in New Positions on import; route them here and they appear in the Hedge tab.
07 Protection & the Protection Sizer
Protection is your defensive long-put layer. Route protective legs here from New Positions (or log them manually for off-broker legs); routed legs show live and auto-clear when they close. Everything is tracked against your short-put liability so coverage is always visible.
Coverage & "fully paid"
- Coverage is measured on a notional basis — strike × contracts — and credits all your long-put cover: your Weekly Income long-put inventory plus any legs routed to Portfolio Protection, measured against your total short-put exposure (capped at 100%). It reads to one decimal and never rounds up to a false 100% while a gap remains.
- The "fully paid" tracker measures how far collected credits have gone toward financing your protection. It's tracked at the portfolio level rather than per-position, because rolling changes a position's OCC symbol and breaks automatic lineage.
The Protection Sizer
Tell the Sizer how much of your portfolio you want covered and it tells you exactly how many contracts to buy:
- For a single long put, it sizes against the strike notional.
- For a bear put spread, it sizes by the spread's payout width —
(long strike − short strike) × 100— because that, not the long strike, is what the spread can actually pay out.
It reports two numbers: Gap Coverage (the percent of your target the structure covers) and the structure's Max Payout (for a spread) or Notional Covered (for a long put). Then Build hands the sized structure to the Trade Builder with the right contract count.
An $11,000 protection target with a 580/560 bear put spread sizes to 6 contracts — a $12,000 max payout — rather than the single contract you'd get by mistakenly dividing the target by the long-strike notional.
08 Other Income
Other Income is for your defined-risk and premium trades outside the core engine — put and call credit spreads, iron condors, and strangles or straddles, short or long. Route the legs here from New Positions (or log them manually for off-broker legs); routed legs show live and auto-clear when they close. Each leg tracks its premium, current mark, P/L Open, days to expiration, and a Close At profit target. Use the ⊕ group button to cluster a structure's legs under one header — see Grouping a trade's legs together.
Premium here is stored as a dollar total for the position, not per share. As in Weekly Income, you can type a manual mark on any leg as a fallback when there's no live import match.
09 LEAP / Leaps
The Leaps department holds your long-dated long calls — anything dated at or beyond your LEAP threshold (180 days by default, adjustable in Settings) — plus any covered calls you write against them. Route long-dated long calls here from New Positions; the LEAP threshold is what flags a call as a Leaps candidate.
10 Stock
Stock holds your shares — long or short — with average cost, current market value, and open P/L. Shares land in 📥 New Positions when you import; route them here and they appear in the Stock tab.
11 Wheel
The Wheel Strategy tab is coming soon. It's being built directly from user feedback — if you run the wheel, your input shapes what it becomes.
12 Trade Builder
Trade Builder walks you through any trade, step by step, and ends with a broker-ready order ticket.
- Pick a type — put credit spread, iron condor, strangle, covered call, roll, and more.
- Enter parameters — strikes, contracts, target credit or debit. Expiration fields use a calendar picker: click the date field and choose.
- Pre-flight check — it tests the trade against your live portfolio: delta impact, buying power, duplicate strikes — so you catch problems before the order, not after.
- Order ticket — a clean, copy-ready ticket for tastytrade or thinkorswim with every leg spelled out.
The Protection Sizer lives here too, for sizing downside insurance precisely.
13 Import History
The 📋 Import History button (header) pulls in your transaction record. Export it from tastytrade or thinkorswim and import it here.
Import history every day, right after your positions import — whether or not you traded. Your positions file can't see anything that closed or rolled between downloads; this import is what fills those gaps and keeps the journal complete. See Getting Started.
- The broker is detected automatically.
- Overlapping date ranges are safe to re-import — entries are deduplicated.
- It detects and groups your rolls, and can apply them to your open positions, which feeds your roll-capture numbers.
14 Trade Journal & Taxes
Your Trade Journal is both a trading diary and a head start on tax season.
- A year-to-date strip up top, then a month-by-month record of activity.
- A market-events log to capture what the market did and what you were thinking, in the moment.
- A monthly summary you write yourself — and it persists across re-imports, because it's your record, not the broker's.
- An annual tax summary with a monthly breakdown and a print button for your accountant.
15 Charts
Four live charts on your dashboard, fully configurable.
- Per-chart timeframes — 5-minute, 1-hour, daily — that refresh on their own (fast charts each minute, longer ones every few minutes).
- Indicators via the gear: moving averages, RSI, the squeeze, ATR bands — toggle, set periods, pick colors.
- Templates — set one chart up the way you like and apply it to the others in a click.
- Fullscreen for the complete chart with RSI and squeeze panes below.
- 🔍 Find Symbol — search by company or ticker to get the exact symbol, then copy it into a chart slot.
The charts are for context and trend, not for timing a fill. Your broker is always the source for an executable price. (Charts render on the live deployed site, not from a local file copy.)
16 Settings
Tune the app to your trading. Everything saves the instant you change it.
- Income goals — your weekly target and conservatism factor.
- Risk thresholds — buying-power warning, delta comfort zone, minimum and target protection coverage.
- Roll timing — what counts as "roll today" vs. "roll this week," and your long-put warning window.
- LEAP threshold — the days-to-expiration cutoff that marks a long call as a Leaps candidate when you route it.
- Account profile — broker, primary underlying, and account type.
17 Keeping Your Data Safe
This is the most important habit in the whole app. Your journal lives in this browser and is not stored on a server — so backups are on you, and they're easy. A single backup file captures all of your accounts at once.
- Back up — the quickest way is the 💾 Backup button in the header: one click, downloads everything for all accounts. The same control lives in Settings → Data Management as Download Backup. Do it regularly: before clearing data, before switching computers, after any big session.
- Restore from Backup brings everything back exactly as it was — perfect for moving to a new device or recovering.
- The Clear / Reset controls give you a fresh start when you want one. Always download a backup first.
On sign-out, if you have unsaved work and haven't backed up recently, the app offers a one-click backup before it signs you out — so leaving never costs you data.
Back up before you clear, switch devices, or do anything irreversible. One click, one file — and your records are safe.
The Accounts manager (🗂️ in the header) is part of this too — switch, rename, or remove accounts, each with its own data, all kept de-identified.
18 Quick Reference
Where does each position go on import?
Everything lands in 📥 New Positions first — you route each position once, and it's remembered. Typical homes:
Common questions
Is my data sent anywhere? No — it stays in your browser on your device. Back it up regularly.
Why was my Schwab CSV rejected? It lacks Greeks. Use the thinkorswim desktop Position Statement export or the thinkorswim Web saved page instead.
How do I keep a multi-leg trade together? Use the ⊕ group button on any position row to put the legs under one named header — see Grouping a trade's legs together.
Why don't the charts show on my saved copy? Live chart data comes through the deployed site; a local file copy can't reach it.
Are the chart quotes real-time? No — delayed about 15 minutes. Use your broker for executable prices.