Interactive Brokers Performance Analytics: What TWR Actually Means

IBKR's Performance Analytics tab gives you a time-weighted return series — but the interface buries it. Here's what you're actually looking at and how to use it.

Chris ReynoldsChris Reynolds
January 22, 20264 min read
ShareTwitterLinkedIn

Interactive Brokers has some of the most sophisticated performance data of any retail broker. It also has one of the most confusing interfaces for accessing it. Most IBKR users have never found their real time-weighted return, let alone compared it to a benchmark correctly.

This is a guide to what IBKR actually gives you and how to use it.

The Performance Analytics Tab

In Client Portal (the web interface), Performance Analytics is under Reports → Performance Analytics. From the legacy Trader Workstation, it's under Account → Performance Analytics.

The tab shows several things, but the most important are:

  • Cumulative Performance — a percentage return chart. This is your TWR.
  • Period Performance — returns broken down by period (monthly, yearly, since inception)
  • Returns Attribution — what drove your returns (sectors, asset classes)

The Cumulative Performance chart is the one that matters most. It's labeled somewhat obscurely, but it's a Cumulative Performance Series (CPS) — a time-weighted return that strips out the effect of your deposits and withdrawals.

What TWR Means in This Context

IBKR uses the Modified Dietz method to approximate true daily time-weighted returns. The result is a cumulative series that answers: "If I had invested $1 at inception using this strategy, what would it be worth today — assuming a constant pool of capital with no additions or withdrawals?"

This is the right number for evaluating whether your investment strategy is working. It's also the number that should be compared to a benchmark return.

What it is not: your actual account return if you've been adding money. That figure — your personal internal rate of return — is the money-weighted return, a different number that includes the luck of your cash flow timing.

The Rate-Limiting Reality

IBKR's performance analytics API is significantly rate-limited: approximately 1 request per 15 minutes per account. This is because the CPS calculation is computationally expensive on IBKR's side.

In practice, this means your IBKR performance data in any analytics tool (including AlphaLens) can be up to 15 minutes stale. For most purposes this is fine — you're not making intraday decisions based on TWR.

It also means that if multiple tools are requesting your IBKR performance data simultaneously, they may hit rate limits. AlphaLens caches the result in-memory with a 15-minute TTL to avoid unnecessary repeated requests.

The IBKR Benchmark Comparison Problem

IBKR does show a benchmark comparison in Client Portal, but it suffers from a specific flaw: the benchmark always starts from the same date as your account inception, using a lump-sum methodology. If you've been adding capital over time, the benchmark doesn't reflect what a comparable passive investment of the same cash flows would have returned.

The correct comparison — which IBKR doesn't natively provide — is to calculate what SPY's return would have been on the same cash flows you put into your account, using IRR on both sides. Or, simpler, to compare your TWR to SPY's TWR from the same start date (which AlphaLens does).

Multi-Account IBKR

IBKR's performance analytics is at the individual account level. If you have multiple IBKR accounts (e.g., individual and IRA), their TWR series are separate and can't be naively averaged.

The correct way to combine them is to weight each account's return by its asset value, or to calculate a blended TWR that treats the combined entity as a single portfolio. AlphaLens merges IBKR accounts alongside Alpaca accounts by averaging overlapping periods and carrying forward values on non-overlapping dates.

IBKR vs. Alpaca: A Data Quality Comparison

FeatureAlpacaIBKR
TWR seriesprofit_loss_pct in portfolio historyCPS from /pa/performance
Update frequencyReal-time (portfolio history)~15 min cached
Intraday data1-minute bars availableNot available
PositionsReal-time via APINear-real-time
Transaction historyOrders endpointTransactions endpoint (per-conid)
Cash/NLVAccount endpointLedger endpoint

Alpaca's data is generally fresher and easier to work with programmatically. IBKR's data is more comprehensive for complex accounts (multiple currencies, derivatives, futures) but harder to access reliably.

Getting Your IBKR Data Into AlphaLens

AlphaLens connects to IBKR via OAuth. The setup process:

  1. In AlphaLens Settings → Connections → Add Interactive Brokers connection
  2. You'll be redirected to IBKR's OAuth portal to authenticate
  3. Once connected, AlphaLens fetches your accounts, positions, performance data, and transaction history

Because IBKR's performance analytics are rate-limited, the first data load may take a moment. Subsequent loads use the cached data.

The dashboard merges your IBKR accounts with any connected Alpaca accounts, giving you a combined portfolio view with a single blended return series and unified positions table.

Connect your IBKR account to see your real time-weighted return history.

Newsletter

Trader-grade analytics, in your inbox

One short email when we publish a new piece on portfolio analytics, risk metrics, or broker integrations. No spam, no auto-DRIPs.