Back to blog

T+1 Open Interest Confirmation | Verify Options Trades Opened or Closed

Use next-day open interest changes to confirm whether large options trades were opened or closed. Swing trading confirmation guide.

7 min readOptionData
open-interestswingconfirmationoptions-flow

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:

  1. New Opening? → Bullish Signal (requires holding overnight)
  2. Closing? → Bearish/Neutral (exiting an old position)
  3. 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

OptionData API

You can run this strategy programmatically with the OptionData API. Use Historical SQL for backtests and screens, and the Realtime WebSocket for live flow.

Run this strategy: T+1 OI confirmation
Query OI by date to verify whether large trades were opened or closed overnight.
curl -X POST https://api.optiondata.io/api-portal/historical-trades-by-sql \
-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"