Skip to main content

BTIG Option Retention Pattern

BTIG removes certain closed options from their P&L downloads, breaking ITD (Inception-to-Date) P&L continuity. This document explains the pattern and how Sable handles it.

The Problem

Options that were held historically can disappear from BTIG's PnL file after closing. When this happens, we lose track of the realized gains/losses on those positions, breaking ITD P&L calculations.

Retention Rules

After analyzing transaction patterns, the rule is:

ScenarioBTIG Behavior
Any voluntary close (BTC, SEL, EXW) at any pointRetained in PnL
Only involuntary closes (ASB, AST, EXB, REO)Removed from PnL

Key Insight

BTIG tracks whether you ever actively traded out of a position. If you did any voluntary closing action (even partial), they keep the history. If the position was ONLY closed through assignment/exercise with no voluntary action, they drop it entirely.

Transaction Type Reference

Voluntary Closes (Position Retained)

CodeDescription
BTCBuy to Close - voluntarily closed short option
SELSell to Close - voluntarily closed long option
EXWExpired Worthless - let option expire

Involuntary Closes (Position Removed if ONLY these)

CodeDescription
ASBAssigned Buy - put exercised against us
ASTAssigned Transfer - option assigned
EXBExercise Buy - we exercised the option
REOReorganization - corporate action

Example Scenarios

Retained: Mixed Close

2025-02-26: SSL (open) 40 contracts
2025-03-11: BTC (voluntary) 20 contracts ← voluntary close
2025-03-17: ASB (assigned) 18 contracts
2025-03-18: ASB (assigned) 2 contracts
Result: RETAINED (had voluntary close)

Removed: Only Assigned

2025-11-20: SSL (open) 30 contracts
2025-12-18: ASB (assigned) 30 contracts ← only involuntary
Result: REMOVED from PnL

Detection Tooling

SQL Function

SELECT * FROM sable.fn_disappeared_options();

Returns all options that existed historically but are missing from recent PnL data.

CLI Command

sable pnl disappeared --account AV7K

Options:

  • --date <date> - Reference date (default: latest)
  • --account <code> - Filter by account
  • --json - Output as JSON

Fill-Down Strategy

For disappeared options, Sable implements "fill-down" logic:

  1. Identify options with only involuntary closes
  2. Capture final itd_total_pnl from last PnL appearance
  3. Create synthetic rows with qty=0 carrying forward that P&L value
  4. Maintain ITD continuity for reporting

Current Statistics

As of January 2026:

  • 45 disappeared options need fill-down (all had only involuntary closes)
  • 547 retained closed options (qty=0 still in PnL)
  • Accounts affected: AV7K (43), XPB006152 (2)
  • BTIG Files - File formats and processing
  • Epic: Options Fill-Down for ITD P&L Continuity