ThetaData Review: What Real Options Data Fixed in Our Backtests
ThetaData sells recorded NBBO options quotes, not modelled prices. What the retail tiers cost, what our desk did with them, and where the data stops.
ThetaData is a historical and real-time options data vendor whose retail options plans ran $40, $80 and $160 per month on its own pricing page on 30 August 2026, and the single thing it buys you is recorded NBBO bid/ask quotes instead of modelled or last-trade prices. That distinction is not a nicety: on this desk, real quote data is what turned an options backtest from an untestable claim into a testable one, because it made the fill assumption a measurable variable rather than a guess.
Read the dates before the verdict. This desk is not currently subscribed — the subscription has lapsed. The first-hand evidence below comes from research artifacts dated 24 June 2026, and the pricing table below was read on 30 August 2026, more than two months later. So the tier that produced our results is not provably the same tier the page now sells under that name. This is a retrospective pinned to two dates, not a live trial, and it recommends nothing.
The problem it exists to solve
Most retail options “history” is not quote history. It is either a last-traded price, which for an illiquid strike may be hours stale and nowhere near where you could have transacted, or a theoretical price generated from a volatility model, which is a smooth curve fitted to something that was never smooth.
Neither can answer the only question that matters for a spread strategy: what were the bid and the ask at the moment I would have traded? Without that, a backtest has to invent its fill prices, and inventing them is the same as choosing its own result.
ThetaData’s pitch is that it recorded the quotes. Its Standard and Pro options tiers both advertise “Every NBBO quote reported by OPRA” as a listed feature, on its own pricing page on 30 August 2026. That is the product. Everything else — the request types, the streaming, the snapshots — is packaging around it.
What it costs, as displayed on 30 August 2026
Read live from thetadata.net/pricing on 30 August 2026, monthly billing, retail options plans:
| Plan | Price | Vendor’s own tagline | Historical depth | Request types |
|---|---|---|---|---|
| Options Value | $40/mo | “Best for beginners” | 4 years | 3, at 1-minute intervals |
| Options Standard | $80/mo | “Best for research” | 8 years | 7, tick level |
| Options Pro | $160/mo | “Best for live trading” | 12 years | 12, tick level |
All three list 100% market coverage for US index and stocks and real-time access with unlimited requests. Standard adds option chain snapshots, 15,000 trade streams and every NBBO quote via OPRA; Pro adds option root snapshots and every option trade stream on top. Commercial-use pricing is handled separately from these retail tiers.
Two things about that ladder deserve more attention than the prices do.
You are buying years, not coverage. All three tiers list the same 100% US index and stock coverage; what doubles with each price step is history depth and resolution. If your study needs six years of quotes, the entry tier’s four-year window is a hard stop no amount of clever querying gets around, and that is the constraint that decides your plan.
There is no free tier and no trial listed on that page. The usual evaluation path — sign up free, probe the data, decide — is not available. You are committing a month to find out whether the coverage matches your study.
ThetaDataWhat we actually ran on it
The desk’s ThetaData usage is documented in two research artifacts dated 24 June 2026: put-credit-spread studies on QQQ, and then on SPY and XSP, both explicitly built on real ThetaData NBBO option quotes covering 2020 through 2026. The mechanics were end-of-day option bid/ask pulled from a local Theta Terminal, with the underlying’s daily bars coming from a different vendor entirely, and roughly weekly entries. Running that required a paid options plan and the Terminal process running locally; it is not a REST key you drop into a notebook and forget.
Having both sides of the quote let us price the identical trade twice and compare. On the QQQ study, the 30–45 DTE, 0.16-delta configuration over 2020–2026 came out at a profit factor of 1.18 priced at the mid and 0.80 priced as a taker — profitable and unprofitable, same entries and exits. That finding, its SPY follow-up and the reason the obvious lesson from it is wrong all live in options backtest fill assumptions; they are not re-argued here. The same quotes priced both the sale and the buyback of every roll in our study of a 1%-weekly put-selling scoreboard. Backtest simulations on historical data — not live results, not a prediction, not advice.
The point for this review is narrower: that comparison only exists if your data source recorded the bid and the ask. It is two lines of arithmetic once you have them:
# Illustrative: the two fill conventions a recorded NBBO quote makes computable.
# Short and long leg of a put credit spread, end-of-day bid/ask at entry.
short, long = {"bid": 2.10, "ask": 2.30}, {"bid": 0.90, "ask": 1.10}
HAIRCUT = 0.05 # concession off the mid
mid = lambda q: (q["bid"] + q["ask"]) / 2
credit_mid = (mid(short) - mid(long)) - HAIRCUT # patient seller works the mid
credit_taker = short["bid"] - long["ask"] # crossing both spreads
print(round(credit_mid, 2), round(credit_taker, 2)) # -> 1.15 1.0
Same instant, same quotes, a 15-cent difference in the credit collected — and that gap, compounded over a few hundred entries, is what flips a verdict. With a last-trade series both lines collapse to the same number and the whole comparison disappears.
Where the data stops
A review that only lists what a vendor does well is a brochure. Three limits are worth naming.
It is infrastructure, not an answer
The Terminal is a local process you run, keep alive and pull from. That is a deliberate design — it is why the plans can advertise unlimited requests — but the vendor’s product ends at a socket on your machine. Everything downstream is yours to build, and it is worth costing before you subscribe:
| What you still have to build | What it involves | Rough hours |
|---|---|---|
| Terminal install and supervision | Local process, restart-on-crash, credential handling | 2–4 |
| Bulk pull and local store | Parquet or SQLite layer, chunking, resume-on-failure | 8–16 |
| Chain and strike selection | Nearest-delta and DTE-window logic over full chains | 6–12 |
| Reconciliation with the underlying | Calendar joins against a second vendor’s daily bars, missing-session handling | 4–10 |
| Cache invalidation | Re-pull and overwrite when the vendor corrects history | 2–6 |
| Total for a first usable pipeline | 22–48 |
Those are planning estimates for a competent Python developer, not a stopwatch reading of our own build — we did not time ours. Treat the range as the shape of the commitment: the build is a working week or more, which is several months of the subscription at the entry tier. The data is the cheap part.
Quote data does not tell you you would have been filled
This is the honest limit of the whole category, and it applies to ThetaData exactly as much as to anyone else. Knowing the NBBO at the close tells you where the market was, not that your order would have executed there, in that size, at that moment. Mid-minus-a-haircut is still an assumption — a much better-informed one than a theoretical price, but an assumption. Real quotes narrow the range of defensible fill assumptions; they do not eliminate the choice. The checks we run before believing a strategy exist because of exactly that gap.
Tier definitions are a moving target, and ours are dated
The history windows above are what the page displayed on 30 August 2026, and our own usage predates that reading by more than two months. We cannot assert that the tier we held then carried the entitlements the same-named tier carries now. If a specific number of years is load-bearing for your study, confirm it on the pricing page in the same session you subscribe — and if you can, confirm the earliest available date for the actual symbols you care about, which is a different and more useful question than the marketed depth.
Who it fits, and who it does not
It fits anyone whose research question contains the word “fill” — spread sellers, multi-leg structures, anything where the bid/ask is a visible fraction of the theoretical edge. It also fits anyone who has already been burned by a data-quality defect and now treats the source as part of the strategy rather than as plumbing, which is roughly the argument of our real-data backtesting pitfalls.
It does not fit someone who has not yet written down what they are trying to measure. At $40 a month minimum with no free tier, the cheapest possible mistake is subscribing before you have a falsifiable question — the failure our tool trial protocol is designed to prevent. Nor does it fit an equities-only process: this is options data, and the price is for options depth you would not be using.
Frequently asked questions
Is there a free ThetaData tier?
Not one listed on its pricing page as of 30 August 2026. The retail options plans start at $40 per month, and the page showed no free plan and no trial period on that date.
Which ThetaData tier do I need for backtesting?
The one whose history window covers your test period — that constraint binds before price does. As displayed on 30 August 2026, that meant 4 years on Value, 8 on Standard and 12 on Pro, with tick-level data and the full OPRA NBBO feed starting at Standard.
Is ThetaData better than free options data?
For fill-sensitive work the comparison is not close, because free sources generally do not give you both sides of the quote historically. For anything where the bid/ask is not part of the question, you are paying for precision you will not use.
How much work is it to actually use?
More than the subscription. The vendor ships a local Terminal process; storage, caching, chain selection and reconciliation against your underlying’s bars are yours to write — roughly 22 to 48 hours for a first usable pipeline on the estimates in the table above.
Do you earn a commission if I subscribe?
No. We looked for an affiliate, referral or partner program on the vendor’s site on 30 August 2026 and found none — no partner link in the navigation, and no mention of one on the pricing page. The link on this page pays us nothing.
Pricing, tier taglines, history windows and feature lists above were read from thetadata.net/pricing on 30 August 2026 and are quoted as of that date only; vendor pricing changes without notifying anyone who wrote about it. Our first-hand observations come from desk research artifacts dated 24 June 2026 and describe the product as it behaved for us then. The desk’s subscription has since lapsed.
Disclosure: this is a money page and carries a vendor link, but ThetaData has no affiliate or referral program we could find, so the link is a plain one and this page earns nothing from it. No vendor reviewed this page or paid for placement.
This is educational content about software and research method, not financial advice. Nothing here is a recommendation to buy any product or to trade any strategy.