θ
ThetaTracker P R O  ·  U S E R   G U I D E
For systematic premium sellers

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.

Who this is for

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.

Daily routine — always do both

Make this your standard procedure every day you open the journal, whether or not you traded:

  1. Import your positions📥 Import CSV in the header. This is your current open book, with live marks and Greeks.
  2. 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).
Heads up

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.

tastytrade — 20 columns

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

thinkorswim desktop — 18 columns

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

  1. Click Import CSV in the header.
  2. Drop in (or choose) your broker file. The broker is detected automatically.
  3. 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.

Local-first

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.

Earned Today
Your honest daily result, split into time (theta) and market. It can read red on a down day even when the premium you collected hasn't changed — the split tells you which force moved you.
Banked
Roll credits you've actually booked. Reads $0 until you import transaction history, then fills with your real income.
Backlog
Premium collected but not yet earned — the extrinsic still in your open shorts. Fresh shorts start near your captured premium and shrink as theta earns it.
WI Long Expirations
How many Weekly Income long-put protection contracts expire in the next 0–30, 31–60, and 61–90 days. It shows timing, not dollar value — protection value swings hard with the market, so the contracts rolling off are what you actually plan around.
Why not Net Liq?

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

Premium Captured
Total credit collected on your open short puts — your income engine at a glance.
Roll Capture — This Week
What you expect to capture from this week's rolls. Type a credit-per-contract to refine it, or it falls back to your weekly target.
Net If Rolled
The Expected and Net tiles share one source of truth, so they can never disagree.
28-Day Rolling
Premium across everything expiring in the next 28 days — your near-term runway.
Est. Long Roll Cost
The estimated cost to keep your long-put protection rolling forward.
Positions Fully Paid
Progress toward financing your protection layer from collected credits (see Protection).

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.
Manual mark fallback

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 putsWeekly Income (your core engine).
  • The hedge call spreadHedge.
  • Long-dated long callsLeaps.
  • Protective long putsPortfolio Protection.
  • Stock sharesStock.

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.

Why route everything

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.

Example

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.

Note on premium

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.

  1. Pick a type — put credit spread, iron condor, strangle, covered call, roll, and more.
  2. Enter parameters — strikes, contracts, target credit or debit. Expiration fields use a calendar picker: click the date field and choose.
  3. 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.
  4. 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.

Part of your daily routine

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.
Quotes are delayed ~15 minutes

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.

  1. 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.
  2. Restore from Backup brings everything back exactly as it was — perfect for moving to a new device or recovering.
  3. 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.

One rule

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:

🏭
Weekly Income
Route · short & long puts (the core engine)
🔱
Hedge
Route · your call spread
🚀
Leaps
Route · long-dated long calls (≥ threshold)
🛡️
Protection
Route or log · protective long-put layer + the Sizer
Other Income
Route or log · spreads, condors, strangles
📈
Stock
Route · shares (long or short)
🛞
Wheel
Route · cash-secured puts, assigned shares, covered calls (campaigns by ticker)

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.