Days to Expiry — Option Selling Analyzer logo
Days to Expiry
Option Selling Analyzer
January 28, 2026

Interactive Brokers Flex Query: Automate Your Portfolio Data Import

Master Interactive Brokers Flex Queries to export and automate portfolio data for analysis, tracking, and performance measurement.

Interactive Brokers Flex Queries are a hidden superpower. Most traders have no idea they exist. Those who discover them unlock a level of portfolio tracking and analysis that separates professionals from amateurs.

A Flex Query is basically a customizable export tool that pulls granular data from your IBKR account—every trade, every assignment, every dividend, every cash transaction—and outputs it to CSV. Once you have that data, you can analyze it, feed it into dashboards, calculate true returns, identify tax issues, and optimize ruthlessly.

This guide shows you how to set up Flex Queries and use them to transform your portfolio data into actionable intelligence.

Turn Flex Query Exports Into Portfolio Analytics

Days to Expiry helps IBKR traders turn raw Flex Query data into position tracking, assignment history, and portfolio-level review instead of another CSV that gets ignored.

Use this guide to configure the export correctly, then use the platform to turn broker data into something you can actually act on.

Import Trade History

Bring assignments, fills, dividends, and cash movements into one review workflow.

Track Real Performance

Move beyond broker statements and see how your options activity is actually compounding.

Audit Assignments

Use portfolio history to understand which strategies and underlyings are creating avoidable friction.

DEMO

Demo Portfolio Overview

Explore positions, trades, income, and analytics with realistic sample data.

View Full Demo
Loading demo portfolio...

Want to track your own portfolio? Import your trades and see analytics like this.

Try Free

What is a Flex Query?

A Flex Query is an automated report generator. You configure it once (specifying which data fields you want, what date range, etc.), and IBKR generates the report and either:

  1. Sends it to you via email on a schedule (daily, weekly, monthly)
  2. Makes it available for download from your account portal
  3. Exposes it via API so you can pull it programmatically

Most traders use option 1 or 2. Advanced traders use the API to feed data directly into dashboards.

Setting Up Your First Flex Query

Step 1: Navigate to Flex Queries

  1. Log into your IBKR account
  2. Go to: Reports > Flex Queries
  3. Click "Create a Query"

Step 2: Name and Configure Your Query

Give it a name: Monthly Portfolio Activity or Weekly Trades

Choose query frequency:

  • On-demand: You request it manually whenever you want
  • Scheduled: Daily, weekly, or monthly (most useful)

Set date range:

  • Current quarter
  • Custom date range
  • Or leave open to query always-current data

Step 3: Select Sections

Flex Queries have multiple sections. Start with these essentials:

SectionWhat You GetWhy It Matters
TradesEvery trade executed (buy/sell)Understand entry prices, fills, commissions
Cash TransactionsDeposits, withdrawals, interestTrack capital in/out and cash drain
DividendsAll dividend payments receivedReconcile income, identify dividend captures
Option ExercisesAssignment and exercise recordsKnow exactly when/how positions were assigned
Corporate ActionsStock splits, mergers, conversionsUnderstand historical position changes
PositionsEnd-of-period holdingsVerify account statement accuracy

Step 4: Select Columns (Choose Wisely)

Each section has many available columns. You don't need all of them. Select the essentials:

For Trades:

  • Date/Time
  • Symbol
  • Quantity
  • Price
  • Commission
  • Order Type (BUY/SELL/EXERCISE/ASSIGNMENT)
  • T+0 P&L (profit or loss on execution)

For Cash Transactions:

  • Date
  • Type (DEPOSIT, WIRE, INTEREST, etc.)
  • Amount
  • Description

For Options Exercises:

  • Date
  • Symbol
  • Quantity
  • Strike Price
  • Underlying Price
  • Assignment/Exercise Type

Step 5: Create and Download

Click "Create" and IBKR generates the report. Download as CSV and you're ready to analyze.

Common Flex Query Setups

Setup 1: Weekly Trade Review

Purpose: Analyze every trade for quality and consistency

Sections:

  • Trades (all columns)
  • Positions (symbol, quantity, price, P&L)
  • Cash transactions

Frequency: Weekly How to use:

  • Import to spreadsheet
  • Calculate average price paid vs. filled price (slippage)
  • Count wins vs. losses
  • Identify best and worst performing positions
  • Review commission costs

Setup 2: Monthly Performance Report

Purpose: Understand true return accounting for all cash flows

Sections:

  • Trades
  • Cash transactions
  • Dividends
  • Positions

Frequency: Monthly How to use:

  • Calculate net cash flow (deposits - withdrawals)
  • Calculate portfolio return (ending value + withdrawals - deposits - beginning value) ÷ beginning value
  • Calculate Sharpe ratio or other metrics
  • Identify best and worst performing positions
  • Compare actual return to target

Setup 3: Assignment Tracking

Purpose: Understand your assignment patterns and costs

Sections:

  • Option exercises (all columns)
  • Trades filtered to assignment-related trades
  • Positions

Frequency: Monthly or on-demand How to use:

  • Count assignments by strategy (covered calls vs. puts)
  • Identify which underlyings get assigned most (hints at bid-ask manipulation)
  • Calculate effective fill prices after assignment
  • Plan cash requirements for next period

Setup 4: Tax Reporting

Purpose: Export all data needed for tax calculation and wash sale detection

Sections:

  • Trades
  • Dividends
  • Fees
  • Interest
  • Corporate actions
  • Option exercises

Frequency: Annual or quarterly How to use:

  • Feed to tax software (TaxTracks, GruntWorx, etc.)
  • Manually calculate short-term vs. long-term gains
  • Identify wash sale transactions
  • Calculate cost basis adjustments

How Days to Expiry Uses Flex Query Data

The point of a Flex Query is not the export itself. The point is getting your broker activity into a format where you can review positions, assignments, and portfolio performance without piecing together multiple statements by hand.

That is the practical handoff into Days to Expiry:

  • Use the Flex Query setup in this guide to capture the fields that matter for options analysis, not just generic account reporting.
  • Use Interactive Brokers Options when you want a cleaner path from IBKR data to portfolio review and trade analytics.
  • Use Portfolio View once you want the data organized as a real workflow instead of a monthly spreadsheet exercise.

Practical next step: Set up one monthly Flex Query for trades, option exercises, cash transactions, and positions, then use that export as the basis for a repeatable portfolio review process instead of a one-off download.

Analyzing Flex Query Data: Practical Examples

Example 1: Understanding Slippage

Your Flex Query shows:

Date | Symbol | Qty | Order Price | Fill Price | Commission
1/15 | VTSAX  | 100 | $145.50     | $145.52    | $0.65
1/18 | VTSAX  | 100 | $146.00     | $146.02    | $0.65
1/20 | VTI    | 100 | $210.00     | $210.05    | $0.65

Analysis:

  • Slippage: $0.02–$0.05 per share (market orders in liquid stocks)
  • Commission: $0.65 per trade
  • Total cost per trade: $1.65–$5.65 (0.01–0.03% of position value)
  • Insight: Your execution is efficient. Interactive Brokers' pricing is competitive.

Example 2: Assignment Pattern Detection

Your Flex Query shows assignments:

Date | Symbol | Type | Strike | Qty | Underlying Price | Dividend?
1/31 | VTSAX  | Assignment | $148 | 100 | $147.02 | Yes (ex-div 1/30)
2/15 | VTI    | Assignment | $220 | 200 | $220.50 | No
3/10 | SPY    | Assignment | $450 | 50 | $449.95 | No

Analysis:

  • 1/31 assignment coincided with ex-dividend (dividend capture)
  • Other assignments were at/near strikes (normal)
  • Insight: Watch for ex-dividend dates on short calls; plan for early assignment

Example 3: Return Attribution

Your Flex Query shows (monthly):

Beginning Portfolio Value: $100,000
Deposits: $5,000
Withdrawals: $0
Realized Gains/Losses: +$450
Unrealized Gains/Losses: +$1,200
Dividends: $120
Interest: $15
Ending Portfolio Value: $106,785

Calculation:
Simple Return = (Ending - Beginning - Deposits + Withdrawals) / Beginning
            = ($106,785 - $100,000 - $5,000) / $100,000
            = $1,785 / $100,000
            = 1.785% for the month

Annualized: 1.785% × 12 = ~21.4% annualized

This is your true return, accounting for all cash flows and timing.

Example 4: Tax Planning

Your Flex Query shows (YTD):

Short-term Capital Gains: +$3,200
Long-term Capital Gains: +$1,500
Wash Sales Identified: 3 transactions (must adjust cost basis)
Dividend Income: +$1,200
Interest Income: +$45
Total Taxable Income: ~$6,000 (estimated taxes: ~$1,500–$2,000 depending on bracket)

Insight: You're on track for a $1,500–$2,000 tax bill by year-end. Plan quarterly estimated taxes or adjust trading size.

Flex Queries + Python: Automating Analysis

Once you've mastered the manual export, consider automating. The IBKR Flex Query API lets you pull data programmatically.

Basic Python workflow:

import requests
import pandas as pd

# Set up your query (get token from IBKR)
query_id = 123456  # Your query ID
token = "YOUR_API_TOKEN"

# Pull data from IBKR API
url = f"https://flex.interactivebrokers.com/data/{query_id}/{token}"
response = requests.get(url)

# Parse as DataFrame
df = pd.read_csv(pd.StringIO(response.text))

# Analyze
total_trades = len(df[df['Type'] == 'Trade'])
avg_slippage = df['Slippage'].mean()
realized_pl = df['RealizationPrice - Strike'].sum()

print(f"Total trades: {total_trades}")
print(f"Average slippage: ${avg_slippage:.4f}")
print(f"Realized P&L: ${realized_pl:.2f}")

Once automated, you can:

  • Run daily analysis
  • Feed into your dashboard
  • Generate alerts (e.g., "Slippage exceeding 5 cents")
  • Calculate metrics on schedule

For non-technical traders, the manual export is sufficient. For serious traders tracking 50+ positions, automation becomes valuable.

Troubleshooting Flex Queries

Issue: Flex Query Not Available

Requirement: Professional subscription (higher IB account tier)

  • Comes automatically with active trader status (18+ trades/month, $130K AUM)
  • Can upgrade manually in Account Settings if you have the balance

Issue: Data Not Matching Account Statement

Common causes:

  • Different date ranges (Flex Query might be querying previous month)
  • Pending transactions (not settled yet)
  • Rounding differences (usually less than $1)

Solution: Compare dates carefully; ensure both are querying same time period.

Issue: API Token Expired

If using programmatic access, tokens expire after 180 days.

Solution: Regenerate token in IBKR Account Settings, then go to API Tokens

Issue: Too Much Data to Analyze

If your query returns 10,000+ rows, it's unmanageable by hand.

Solution: Use Python/Excel to:

  • Filter to specific symbols
  • Aggregate by strategy
  • Calculate summary statistics

Best Practices for Flex Query Success

Run Queries Consistently (1)

Set a weekly or monthly schedule. Consistency helps you spot trends (e.g., "My average slippage has improved 2 cents over 3 months").

Compare to Targets (2)

After each query, ask:

  • Am I trading more/less than planned?
  • Are my fills better or worse than expected?
  • Is my commission as low as I targeted?
  • Is my return tracking to goal?

Archive Historical Data (3)

Keep queries from previous months/years. This lets you:

  • Identify seasonal patterns
  • Compare long-term performance
  • Track improvement over time

Use for Accountability (4)

Share Flex Query summaries with yourself monthly. If you're not hitting targets, data makes it obvious.

Integrate into Your Dashboard (5)

Don't just download Flex Queries; feed them into your trading dashboard or spreadsheet. Automate your analysis.

The Bottom Line

Interactive Brokers Flex Queries are the missing link between your broker's platform and serious portfolio analysis. Most traders don't use them and stay blind to important patterns. Those who do use them transform raw trade data into actionable insights.

Spend an hour setting up your first Flex Query. Download it. Import to Excel. Calculate your true return and slippage. The clarity will immediately show you opportunities for improvement. That's worth far more than the effort to set it up.

Stop Letting IBKR Data Die in CSVs

Use Flex Query exports as the input to a real portfolio analytics workflow.

If you are already exporting trade history, assignment records, and cash activity, the next step is not another spreadsheet tab. It is turning that data into a system you can review consistently and act on.

Put The Workflow To Work

Turn the tool into a real workflow.

Connect broker activity
Review trade history
Replace one-off spreadsheets