State the rule in SQL
Example: premium ≥ $100k, DTE ≤ 14, repeated prints, optional |delta| bands. all queryable on RawOptionTrades.
Define unusual-activity rules as testable SQL, measure hit rates over weeks of prints, then deploy thresholds to the real-time WebSocket without a vendor score.
For quant and systematic desks that treat UOA as a feature research problem. You own labels and thresholds. OptionData provides OPRA prints, chains, and 2.8B+ historical rows.
Codify rules, estimate false positives historically, attach chain context, then stream survivors.
Example: premium ≥ $100k, DTE ≤ 14, repeated prints, optional |delta| bands. all queryable on RawOptionTrades.
Count how often the rule fires per symbol/day over multi-week windows before wiring alerts.
Pull IV, OI, and bid/ask around event times so labels include liquidity and surface state.
Translate surviving thresholds into server-side stream filters and online scorers.
SELECT
symbol,
expiration_date,
strike,
put_call,
sum(toFloat64(price) * size * 100) AS premium,
max(iv) AS max_iv,
avg(abs(delta)) AS avg_abs_delta,
count() AS prints
FROM RawOptionTrades
WHERE date BETWEEN today() - 30 AND today()
AND toFloat64(price) * size * 100 >= 100000
AND dateDiff('day', date, expiration_date) <= 14
GROUP BY symbol, expiration_date, strike, put_call
HAVING prints >= 3
ORDER BY premium DESC
LIMIT 100See also the UOA product page, quant flow guide, and OI glossary.
No. It provides the data plane (stream, SQL, chains). Detection logic and labels are defined by your research.
Yes. Historical SQL over stored option trades supports multi-day and multi-week rule evaluation with premium, Greeks, IV, and contract fields.
Hold out calendar weeks, track alert frequency per symbol, and require stability across AGGREGATED vs RAW if both modes matter to production.
Start with the unusual options activity API overview, then return here for the research loop and SQL examples.