S&P 5005,983+0.49%
NASDAQ21,220+0.47%
Russell2,187-0.64%
VIX18.20+0.7
10Y Yield4.31%+3.0bp
Gold2,936+0.62%
Crude70.40-0.98%
Bitcoin95,800-0.42%
S&P 5005,983+0.49%
NASDAQ21,220+0.47%
Russell2,187-0.64%
VIX18.20+0.7
10Y Yield4.31%+3.0bp
Gold2,936+0.62%
Crude70.40-0.98%
Bitcoin95,800-0.42%
simulated

OCC TIMS Methodology

Theoretical Intermarket Margining System — the regulatory baseline for all US portfolio margin.


Overview

The Theoretical Intermarket Margining System (TIMS) is the margin methodology developed and maintained by the Options Clearing Corporation (OCC). It serves as the regulatory minimum for portfolio margin accounts in the United States, as mandated by FINRA Rule 4210.

Every broker-dealer offering portfolio margin must compute TIMS as a floor. Firms layer proprietary "house" add-ons (concentration charges, liquidity surcharges, singleton requirements) on top of TIMS to arrive at their actual margin requirements.

Key Characteristics


Scan Range Parameters

TIMS evaluates each position at equidistant price points across a defined scan range. The scan range varies by asset class.

Equity Securities (Individual Stocks)

DirectionScan Range
Downside-15%
Upside+15%
Scan Points10 equidistant

A stock position is scanned from 0% to -15% and from 0% to +15% in 10 equal steps (1.5% increments). The worst-case loss across all 21 evaluation points (10 down + 10 up + flat) determines the margin requirement.

Broad-Based Index Products

DirectionScan Range
Downside-8%
Upside+6%
Scan Points10 equidistant

Broad-based indexes receive narrower scan ranges because diversified indexes exhibit lower volatility than individual stocks. The asymmetry (-8% down vs. +6% up) reflects the empirical observation that markets fall faster than they rise.

Recognized Broad-Based Index Products

The following tickers are classified as broad-based indexes and receive the narrower -8%/+6% scan:

CategoryTickers
S&P 500SPY, SPX, IVV, VOO, SPYG, SPYV, RSP
NasdaqQQQ, NDX
Dow JonesDIA
RussellIWM, IWB
Total MarketVTI, ITOT, SPTM
Mid-CapMDY
Small-CapIJR, VB
ValueVTV, VUG
Sector ETFsXLK, XLF, XLE, XLV, XLI, XLP, XLY, XLB, XLC, XLRE, XLU
InternationalEEM, EFA, VEA, VWO, IEMG, ACWI

Scan Algorithm

For each position, the algorithm evaluates P&L at every scan point and selects the worst outcome.

Step 1: Position-Level Scan

For a position with market value MV (positive for long, negative for short):

For i = 0 to SCAN_POINTS:
    fraction = i / SCAN_POINTS

    moveDown = scanRangeDown × fraction
    PnL_down = MV × moveDown

    moveUp = scanRangeUp × fraction
    PnL_up = MV × moveUp

    worstLoss = min(worstLoss, PnL_down, PnL_up)

marginRequirement = |worstLoss|

Example: A long position worth $10M in AAPL (equity scan: +/-15%):

Example: A short position worth -$5M in SPY (broad-based index scan: -8%/+6%):

Step 2: Portfolio Aggregation

Position-level margin requirements are summed to get the total base requirement:

totalBaseRequirement = Σ |worstLoss_i| for all positions

Product Group Netting

TIMS provides margin credit for positions in correlated products. If one product group has a directional exposure that offsets another, the OCC publishes cross-offset percentages that reduce the total requirement.

Product Groups

Positions are classified into product groups based on their underlying index:

GroupMembersDescription
SP500SPY, SPX, IVV, VOO, SPYG, SPYV, RSPS&P 500 family
NASDAQQQQ, NDX, TQQQ, SQQQNasdaq-100 family
RUSSELLIWM, IWB, IWN, IWO, IWFRussell family
DOWDIADow Jones Industrial Average
TOTAL_MKTVTI, ITOT, SPTMTotal US market
MIDCAPMDY, IJH, VOUS mid-cap
SMALLCAPIJR, VB, VIOOUS small-cap
VALUEVTV, IVE, VLUEUS value factor
SECTORXLK, XLF, XLE, XLV, XLI, XLP, XLY, XLB, XLC, XLRE, XLUSPDR sector ETFs
INTLEEM, EFA, VEA, VWO, IEMG, ACWIInternational / emerging markets

Cross-Offset Matrix

When two product groups have opposing directional exposure (one long, one short), the OCC allows a percentage of the smaller exposure's profit to offset the larger exposure's loss.

SP500NASDAQRUSSELLDOWTOTAL_MKTMIDCAPSMALLCAPVALUESECTORINTL
SP50090%85%95%98%80%70%90%75%60%
NASDAQ90%80%85%90%75%65%75%70%55%
RUSSELL85%80%80%90%90%95%85%70%55%
DOW95%85%80%95%75%65%90%70%60%
TOTAL_MKT98%90%90%95%90%85%92%78%65%
MIDCAP80%75%90%75%90%90%80%65%50%
SMALLCAP70%65%95%65%85%90%70%55%45%
VALUE90%75%85%90%92%80%70%70%55%
SECTOR75%70%70%70%78%65%55%70%50%
INTL60%55%55%60%65%50%45%55%50%

Example: Long $8M in SPY (SP500 group), Short -$6M in QQQ (NASDAQ group).

The SP500-NASDAQ cross-offset is 90%. Since the positions are directionally opposing:

nettingBenefit = min(|$8M|, |$6M|) × 15% × 90% = $6M × 0.15 × 0.90 = $0.81M

Netting Algorithm

For each pair of product groups (g1, g2):
    If g1 and g2 have opposing directional exposure:
        offsetPct = CROSS_OFFSETS[g1][g2]
        benefit = min(|MV_g1|, |MV_g2|) × 15% × offsetPct
        totalNettingBenefit += benefit

finalRequirement = max(0, totalBaseRequirement - totalNettingBenefit)

Individual equities receive no cross-offset. Only positions in recognized index products participate in netting.


Relationship to Broker House Margin

TIMS is the floor. Every broker sets their own margin at or above TIMS. The table below shows how major brokers layer add-ons.

BrokerBaseHouse Add-OnsSource
OCC TIMS+/-15% equity, -8%/+6% indexNone (regulatory minimum)Published
Interactive BrokersTIMS baseConcentration (+/-30% top 2), singleton (+30%/-25%), per-contract min, liquidity surchargePublished
Charles SchwabTIMS baseRBC concentration (EPR-based), PNR monitoring, 30% maintenance floorPublished
A Prime StressProprietary stress200 DMA reversion, cap-bucket minimums, vol shock (1-3 SD), SPAC trustProprietary
Goldman SachsWider scan (+/-20%)Aggressive concentration (+/-35% top 5), liquidity surchargeEstimated
JP Morgan+/-18% scanVaR overlay (99%, 10-day), moderate concentrationEstimated
Morgan Stanley+/-20% scanAggressive concentration, high liquidity multiplier (1.20x)Estimated

In the PrimeRisk margin comparison table, every broker row shows the TIMS Base column — the OCC TIMS requirement for the same portfolio. Click the TIMS Base link to see full methodology detail.


FINRA Rule 4210 Reference

FINRA Rule 4210 governs margin requirements for broker-dealer accounts. Key provisions for portfolio margin:

RequirementValue
Minimum account equity$5,000,000 (institutional) / $125,000 (retail)
Stress test range (equities)+/-15%
Stress test range (broad-based indexes)-8% / +6%
Reporting frequencyDaily
House requirementsMay exceed TIMS but never fall below

Eligible Securities

Portfolio margin under Rule 4210 applies to:

Ineligible Securities

The following are NOT eligible for TIMS-based portfolio margin:


Implementation in PrimeRisk

PrimeRisk implements TIMS as a shared utility module (tims-scan.ts) that serves as the foundation for all margin calculations.

Architecture

tims-scan.ts          ← Core scan algorithm, product groups, netting
    ├── occ-tims.ts   ← Standalone OCC TIMS methodology
    ├── ibkr.ts       ← IBKR (imports scanPosition, getScanRange)
    ├── schwab.ts     ← Schwab (imports scanPosition, getScanRange, isBroadIndex)
    ├── standard-prime.ts ← Standard Prime Broker Stress (wraps proprietary stress engine)
    └── parameterized.ts ← GS, JPM, MS, Citi, BofA, BNP, Jefferies
                           (imports scanPosition, getCustomScanRange)

Key Functions

FunctionDescription
scanPosition(mv, range, points)Scan a single position and return worst-case loss
getScanRange(ticker)Return published scan range for a ticker (equity vs. index)
getCustomScanRange(down, up)Create a custom scan range for house methodologies
computeTimsBaseScan(positions, quotes)Full portfolio TIMS computation with netting
computeTimsResult(positions, quotes)Returns a complete MarginResult object
isBroadIndex(ticker)Check if a ticker qualifies for narrower index scan
getProductGroup(ticker)Look up which product group a ticker belongs to

Performance


Limitations and Assumptions

  1. Equity-only P&L: The current implementation uses linear P&L (MV × priceMove). Options positions benefit from non-linear payoffs that would reduce margin under a full TIMS model with theoretical pricing. Future versions will incorporate Black-Scholes repricing at each scan point.

  2. Simplified product groups: The OCC publishes 28+ product groups with granular correlation data. PrimeRisk uses 10 representative groups covering the most commonly held ETFs.

  3. No inter-month spread credits: TIMS provides additional netting for calendar spreads in options. This is not yet implemented.

  4. No short option minimum: OCC imposes a short option minimum charge that is not included in this implementation.

  5. Static scan ranges: The OCC may temporarily widen scan ranges during periods of extreme volatility. PrimeRisk uses the standard published ranges.


Sources