T+1 Swing Confirmation: Open Interest Verification
Overview
Goal: Separate intraday noise from authentic swing positions using next-day Open Interest (OI) verification.
Difficulty Level: Beginner-Intermediate
Time Horizon: 1-30 days (Swing Trading)
Best Used: Post-analysis of significant option trades to validate institutional conviction.
Key Insight: Open Interest (OI) updates overnight. By systematically verifying if OI increased, you can mathematically distinguish between positions that were opened (conviction) and those that were day-traded (noise).
Run this strategy with the OptionData API: Query OI by date with our Historical SQL API to verify whether large trades were opened or closed; see the OptionData API card at the bottom for a T+1 OI snippet.
Key Terms
| Term | Plain-English meaning | |------|------------------------| | Open Interest (OI) | The total number of option contracts that are still open (not closed or exercised). Updates once per day (typically before the open). | | T+1 | "Trade date plus one" — the next trading day. OI from today's trading is reflected in tomorrow's OI. | | Opening | A new position: buyer and seller create a new contract. OI increases. | | Closing | An existing position is closed (e.g. buyer sells to close). OI decreases. | | Day trade | Opened and closed the same day. OI at that strike is unchanged the next day. |
Why T+1 matters: When you see a huge trade on Monday, you don't know if it's a new bet (opening) or someone closing. On Tuesday morning, if OI went up by roughly that size, it was an opening (conviction). If OI didn't change, it was a day trade (noise for swing traders).
The Core Concept
The Problem: Intraday Ambiguity
When a large option trade executes during market hours (e.g., 10k AAPL Calls), the tape does not reveal the trader's intent. Was it:
- New Opening? → Bullish Signal (requires holding overnight)
- Closing? → Bearish/Neutral (exiting an old position)
- Day Trade? → Noise (bought and sold same day)
The Solution: T+1 Open Interest Logic.
OI validates the net change in contracts. Since OI only updates overnight, we must wait until "T+1" (Trade Date + 1 Day) to reveal the truth.
graph TD
A[Large Trade Detected Day 0] --> B{Check OI Day 1};
B -- OI Increases --> C[Confirmed OPENING];
C --> D[Signal: FOLLOW];
B -- OI Unchanged --> E[Day Trade / Noise];
E --> F[Signal: IGNORE];
B -- OI Decreases --> G[Confirmed CLOSING];
G --> H[Signal: FADE / WARNING];
The Mechanism
- Open Interest (OI): Total count of active, outstanding contracts.
- Update frequency: Once per day (pre-market).
- Logic:
- If OI change ≈ trade size → The position was carried overnight (opening).
- If OI change ≈ 0 → The position was closed intraday (day trade).
- If OI decreases → Someone closed an existing position (closing).
Timeline (ASCII):
Day 0 (Monday) Day 1 (Tuesday)
───────────── ───────────────
Large trade prints OI report updates
(e.g. +10,000 vol) (e.g. 50k → 60k = opening)
You see the trade → You check OI next morning
but not the intent → to infer: opening vs day trade vs closing
Three OI Change Scenarios
Scenario A: OI Increased (OPENING Position)
- Old OI: 50,000
- Trade Volume: +10,000 contracts
- New OI: 60,000 (+10,000)
Verdict: CONFIRMED OPENING. The buyer committed capital overnight. This indicates conviction in a multi-day move. ACTION: TRACK.
Scenario B: OI Unchanged (DAY TRADE)
- Old OI: 50,000
- Trade Volume: +10,000 contracts
- New OI: 50,000 (No change)
Verdict: DAY TRADE. The trader bought and sold within the same session. This is "noise" for swing traders. ACTION: IGNORE.
Scenario C: OI Decreased (CLOSING Position)
- Old OI: 50,000
- Trade Volume: 10,000 contracts
- New OI: 40,000 (-10,000)
Verdict: POSITION CLOSING. A large existing position was liquidated. This is often a cautionary or reversal signal. ACTION: OPPOSITE SIGNAL.
Step-by-Step Verification Protocol
flowchart LR
A[Day 0: Detect Trade] --> B[Record Params]
B --> C[Day 1: Check OI]
C --> D{OI Change?}
D -->|Up| E[Opening]
D -->|Flat| F[Day Trade]
D -->|Down| G[Closing]
Step 1: Detect a Significant Trade (Day 0)
Identify flow that suggests institutional urgency:
- Premium > $100k-$1M
- Volume > 50% of current OI
- ASK Side Execution
Example Trade (Day 0)
-
AAPL: $180 Calls
-
Contracts: 15,000
-
Side: ASK - Urgent
-
Current OI: 22,000
Record Trade Parameters
Log the exact ticker, strike, expiration, volume, and current OI.
Verify OI Next Morning (Day 1)
Timing: 9:00 AM - 9:30 AM (Pre-market). Source: Brokerage feed or OptionData platform.
Interpret the Deviation
Formula: Net Change = New OI - Old OI
Decision Logic
-
Increase: Open - Follow
-
Unchanged: Noise - Ignore
-
Decrease: Close - Fade
Execution Criteria
For Bullish Confirmed Openings:
- Strategy: Shadow the trade (buy same strike or spread).
- Stop Loss: If OI begins to decrease (indicating the whale is exiting).
Real-World Case Studies
Example 1: TSLA Confirmed Opening (February 2024)
Day 0: 12,000 contracts of $200 Calls bought (ASK). OI was 18,000. Day 1 Check:
-
Old OI: 18,000
-
New OI: 30,000 - +12,000
-
Match: 100% - Perfect
-
Verdict: OPEN
Outcome: TSLA rallied to $205 over the next 3 days. Returns: +194%.
Example 2: NVDA False Alarm (Day Trade)
Day 0: 8,000 contracts of $900 Calls (MID side). Day 1 Check:
-
Old OI: 25,000
-
New OI: 25,000 - No Change
-
Verdict: Day Trade - Ignore
Outcome: NVDA consolidated. Calls expired worthless. The T+1 check saved capital.
Example 3: Repeat Whale Pattern (Accumulation)
Week 1: Whale buys 8k MSFT Calls (OI +8k). Week 2: Whale buys another 5k MSFT Calls (OI +5k).
Analysis
-
Pattern: Adding
-
Signal: Strong Buy - Double Conviction
Outcome: MSFT breakdown breakout followed. Returns: +371%.
Common Pitfalls
Pitfall 1: Premature Execution
Error: Trading immediately on Day 0 aka "chasing the tape". Correction: Always wait for OI confirmation unless scalping intraday.
Pitfall 2: Ignoring Expiration Curves
Error: Tracking weekly options (7 DTE) for swing trades. Correction: Focus on Swing (30-90 DTE) or LEAPS (>90 DTE) where OI is more stable and indicative of positioning.
Pitfall 3: Blind Copying
Error: "OI up, buy calls." Correction: Verify technical confluence. OI confirms interest, not timing.
🧮 T+1 Signal Strength Scoring
Assess the quality of a confirmed opening using this weighted model:
T+1 Signal Score = (Size) + (OI Match) + (Urgency) + (Expiry)
Size:
- Premium > $5M: +4
- Premium $1M-$5M: +3
OI Match:
- 100% Match (OI Change = Trade Size): +4
- 75% Match: +3
Urgency (Day 0):
- ASK side: +3
- MID side: +2
Expiry:
- LEAPS (> 180 DTE): +4
- Swing (60-180 DTE): +3
- Weekly (< 30 DTE): +1
TOTAL SCORE:
13-17: STRONG SIGNAL (High Conviction)
9-12: MODERATE (Standard Size)
0-8: WEAK (Ignore)
Data Lag Constraints
Open Interest data is delayed until the next trading day. This lag is a feature, not a bug—it filters out high-frequency noise and confirms overnight risk acceptance.
The Golden Setup
Look for 100% OI match + ASK side + LEAPS expiry. This combination represents the highest tier of institutional conviction.
T+1 Tracking Template
Spreadsheet Format:
| Date | Ticker | Strike | Expiry | Contracts | Side | Old OI | New OI | Change | Verdict | Action | |------|--------|--------|--------|-----------|------|--------|--------|--------|---------|--------| | 3/10 | AAPL | $180 C | 4/19 | 15,000 | ASK | 22k | 37k | +15k | OPEN | BUY | | 3/12 | TSLA | $200 C | 4/15 | 8,000 | MID | 12k | 12k | 0 | Day Trade | IGNORE | | 3/15 | NVDA | $900 P | 5/1 | 5,000 | BID | 18k | 13k | -5k | CLOSE | FADE |
Technical Implementation
Verifying T+1 Open Interest
You can run this strategy with the OptionData API: the OptionData API card at the bottom has a T+1 OI snippet. Query OI per date with argMax(oi, time) via the Historical SQL API: POST https://api.optiondata.io/api-portal/historical-trades-by-sql with api_key and sql (form-urlencoded). Query OI per date using argMax(oi, time) so you get one OI value per day (latest trade’s OI). Historical data is available from February 28, 2025.
Objective: Check TSLA $200 Call OI change between two trading days.
/* One row per date: OI at end of day for that contract. Use your trade date and T+1. */
SELECT
date,
argMax(oi, time) AS oi
FROM RawOptionTrades
WHERE
symbol = 'TSLA'
AND strike = 200
AND put_call = 'CALL'
AND expiration_date = '2025-04-18'
AND date IN ('2025-03-10', '2025-03-11')
GROUP BY date
ORDER BY date ASC
Result: Compare OI on the two dates. If the increase matches the trade size, the position is CONFIRMED OPEN.
Related Recipes
- Recipe 3: Smart Money Block Trades - For identifying whale trades to track
- Recipe 1: Institutional Options Buying - For Day 0 detection methods
You can run this strategy programmatically with the OptionData API. Use Historical SQL for backtests and screens, and the Realtime WebSocket for live flow.
-H "Content-Type: application/x-www-form-urlencoded" \
-d "api_key=YOUR_KEY" \
--data-urlencode "sql=SELECT date, symbol, strike, expiration_date, put_call, argMax(oi, time) as oi FROM RawOptionTrades GROUP BY date, symbol, strike, expiration_date, put_call HAVING date >= today() - 5 ORDER BY date DESC, oi DESC LIMIT 50"