CCP Initial Margin Models: SPAN vs VaR, the Default Waterfall and Procyclicality Controls (2026)
A central counterparty (CCP) survives a member default only if one number is right: the initial margin it collected before the default happened. Get that number too low and the loss falls on other members and eventually on the CCP’s own capital. Get it too high and you drain liquidity from the market. Get it right on a calm Tuesday but let it jump 40% on a volatile Thursday and you have manufactured the very liquidity squeeze the CCP exists to prevent.
That tension explains why ccp initial margin models have moved from the scenario grids of the 1980s to full-portfolio simulation, stress add-ons, and explicit anti-procyclicality rules. This article takes an engineering view. It explains how a scanning model such as SPAN differs from a value-at-risk (VaR) or expected-shortfall model, how the default waterfall consumes the margin, which controls limit procyclicality, and how a margin engine is built to run the whole thing in batch and intraday. You leave with a mental model of the risk stack, a toy implementation you can run, and a list of failure modes to look for.
What this covers: the CCP’s role, initial versus variation margin, SPAN and SPAN 2, VaR and Monte Carlo approaches such as OCC STANS, liquidation horizons, add-ons, procyclicality tools, the default waterfall, intraday workflow, engine architecture, and model validation.
Non-advisory disclaimer: this is a systems and architecture analysis for engineers, not investment, legal, or regulatory advice.
Context and Background
A CCP interposes itself between the two sides of a trade through novation: the original bilateral contract is replaced by two contracts, one between the CCP and each clearing member. After novation the CCP is the buyer to every seller and the seller to every buyer. Its book is matched, so it carries no market position at rest, but it carries every member’s counterparty risk. If a member fails, the CCP must still honour its obligations to the survivors, which means closing out or auctioning the defaulter’s portfolio at whatever prices the market offers during the stress.
Two kinds of margin protect against that. Variation margin (VM) moves the realised mark-to-market change of positions every day, sometimes several times a day, so that no unrealised profit or loss accumulates. Initial margin (IM) is collateral held against potential future exposure: the loss that could build between the member’s last margin payment and the moment the CCP has actually closed out the positions. VM resets exposure to zero; IM covers the gap while the reset fails. For the settlement side of this story, see our walk-through of T+1 securities settlement, CCP novation and CSD architecture, and for how collateral is sourced and optimised see collateral and margin management architecture for derivatives.
The international baseline is the CPMI-IOSCO Principles for Financial Market Infrastructures (PFMI, April 2012), published by the Bank for International Settlements. Principle 4 covers credit risk, Principle 5 collateral, and Principle 6 margin. Those principles require a CCP to cover its exposures to each participant with a high degree of confidence, to use risk-based models that are reviewed and backtested, and to limit procyclicality where practical. Regional rules implement them: in the EU, the European Market Infrastructure Regulation (EMIR) and Commission Delegated Regulation (EU) No 153/2013, the technical standard often called RTS 153/2013; in the US, the SEC and CFTC clearing-agency and derivatives-clearing-organisation rules.
The industry’s choice of model has shifted over two generations. SPAN, the Standard Portfolio Analysis of Risk system from the Chicago Mercantile Exchange, became the de facto standard for listed futures and options because it was computable on 1980s hardware: precompute a grid of scenario losses per contract, then let members and clearing houses aggregate the grids. Today, CME describes SPAN 2 as a historical VaR framework with explicit stress, liquidity and concentration components, and the Options Clearing Corporation (OCC) has run full-portfolio Monte Carlo simulation in its STANS system since August 2006, according to the OCC’s published margin methodology. Many OTC derivatives CCPs use filtered or weighted historical simulation on large risk-factor sets. The common drift is toward portfolio-level scenario engines with transparent stress and add-on layers.
The reader’s practical question is not “which model is best” but “which risks does each architecture hide?” The answer shapes the rest of this article.
Core Architecture: How a CCP Turns Positions into a Margin Number
The direct answer: a CCP margin engine maps every cleared position to risk factors, revalues the portfolio under many scenarios, picks a tail statistic (a worst-case scenario loss or a 99% to 99.5% VaR or expected-shortfall level), adds charges for concentration, liquidity and wrong-way risk, and applies anti-procyclicality controls. The result is a per-member, often per-account, initial margin requirement collected in eligible collateral.

Figure 1: Where initial margin sits in the clearing structure. Novation makes the CCP the counterparty to both sides; initial margin and the default fund then feed the default waterfall.
Figure 1 shows the structural point that matters for design. IM is member-specific and defaulter-pays: it is the first line of loss absorption and belongs to the member who posted it. The default fund is mutualised and kicks in only when a defaulter’s IM and own fund contribution are exhausted. Every modelling choice about IM sets how often, and how deep, the mutualised layers get touched. A CCP that under-margins externalises risk to its members. A CCP that over-margins taxes liquidity and pushes volume toward bilateral trades.
Confidence level, horizon and the margin period of risk
Every IM model rests on three parameters: the confidence level, the liquidation horizon, and the lookback. The horizon is called the margin period of risk (MPOR) or liquidation period. It starts with the last time the member had fully paid margin and ends when the CCP has closed out or hedged the defaulter’s portfolio. In between, the CCP must detect the failure, declare default, hedge, auction, and absorb price moves. Longer MPOR produces larger IM because losses accumulate over more days: under a naive square-root-of-time assumption, moving from a 2-day to a 5-day MPOR multiplies the volatility-driven margin by roughly sqrt(5/2), about 1.58, before accounting for fat tails and autocorrelation.
EMIR’s technical standard sets differentiated floors: higher confidence and longer liquidation periods for OTC derivatives than for exchange-traded ones. As I recall the text, the confidence levels are 99.5% for OTC derivatives and 99% for other instruments, and the minimum liquidation periods are five business days for OTC derivatives and two for exchange-traded derivatives; I did not re-verify these exact figures against the regulation text for this run, so check Articles 24 to 26 of Delegated Regulation 153/2013 before you cite them. ESMA’s 2023 final report on the RTS review confirms only that Article 26 sets “a minimum of 2 or 5 days.” The OCC says its base STANS requirement uses 99% expected shortfall over a two-day horizon, with the stress components at 99.5% expected shortfall (OCC margin methodology page).
A subtle point: MPOR is not a constant of nature. A liquid index future may be closed within a day. A concentrated position in an illiquid single-stock option may take weeks. Good CCPs treat the nominal MPOR as a floor and add liquidity and concentration charges to cover the gap, rather than silently inflating the horizon for everyone.
SPAN: the scanning-range model
SPAN margins a portfolio by scenario scanning. For each contract group (the futures and options on one underlying), the exchange publishes a risk array of 16 numbers: the gain or loss per contract under 16 predefined scenarios. Fourteen scenarios combine seven price moves (0, plus or minus one-third, plus or minus two-thirds, and plus or minus one full price scan range) with a volatility move up or down by the volatility scan range. The last two scenarios are extreme price moves, up and down, at a multiple of the scan range, and only a fraction of their loss counts, conventionally 35%, because the exchange does not expect to cover the full extreme but wants to avoid selling cheap deep-out-of-the-money shorts with no margin. I am describing the classic SPAN layout from general knowledge of the system; CME’s current page for SPAN 2 does not restate the 16-scenario grid.
To margin a portfolio, the member’s position in each contract is multiplied by that contract’s risk array, the arrays are summed within each combined commodity (same underlying) scenario by scenario, and the worst scenario loss becomes the scanning risk. Because the worst loss is taken after summing, a long and a short in related contracts net naturally. Then three adjustments are applied: the intra-commodity spread charge for calendar spreads that the scan does not fully capture, a short option minimum so that deep OTM short options do not margin to zero, and inter-commodity spread credits that reduce margin between correlated products (for example Treasury futures at different tenors). Finally the net option value is added or subtracted.
The attraction of SPAN is explainability and cheap recomputation. A member can reproduce the CCP’s number from a daily parameter file and its own positions, which also supports pre-trade margin estimates. The weaknesses are equally structural. Scan ranges are a statistical summary, not a joint distribution. Offsets between commodities are set by hand-tuned credit percentages that are static between reviews. And because scenarios are per contract group and aggregation occurs at a coarse level, a portfolio whose risk lives in cross-asset correlation is only crudely modelled.
VaR and expected-shortfall margin: portfolio-level simulation
The alternative is to simulate P&L for the whole portfolio under a large set of joint risk-factor scenarios and read off a tail statistic. Value at risk at confidence c is the loss threshold that is exceeded with probability 1 – c. Expected shortfall (ES) is the average loss in the tail beyond VaR. ES is coherent (it rewards diversification, VaR does not) and responds to tail shape, which is why OCC uses it. Scenario generation is the major design fork:
- Historical simulation replays actual past risk-factor moves. It preserves correlations and fat tails without distributional assumptions, but it responds slowly to a volatility regime change and is limited by the length of history.
- Filtered historical simulation (FHS) standardises past returns by a volatility model (EWMA or GARCH), then rescales the standardised residuals by today’s volatility forecast. It is the workhorse for margin because it reacts quickly to volatility while keeping empirical tails.
- Monte Carlo draws scenarios from a calibrated stochastic model. OCC describes STANS as full-portfolio Monte Carlo with econometric risk-factor models featuring volatility clustering and fat-tailed innovations, joined by a copula for correlation and tail dependence, using the higher of short-term and longer-run volatility estimates, with Extreme Value Theory used for tail estimates (OCC margin methodology).
CME states that SPAN 2 is a historical VaR framework: Total Portfolio Margin is x times the historical risk plus (1 – x) times the stress risk, plus liquidity and concentration charges, with at least ten years of historical data in the VaR lookback, volatility and correlation scaling, and implied-volatility surfaces as option risk factors. The value of the weight x is not published on that page.
SPAN-versus-VaR is therefore less a binary than a continuum: SPAN 2 keeps the SPAN calling convention (parameter files, risk-factor arrays, offsets across the two methodologies) but replaces the fixed 16-scenario grid with a historical VaR core. LCH’s PAIRS (Portfolio Approach to Interest Rate Scenarios) is a historical-simulation model for interest-rate swaps; I did not fetch LCH’s current methodology for this run, so treat that characterisation as general knowledge rather than a verified specification.
Deeper Analysis: Add-ons, Procyclicality and the Margin Engine
Scenario models answer “what is the tail loss if prices and vols behave like history?” Risk managers distrust that sentence, so every serious CCP layers charges on top.

Figure 2: One engine, two scenario cores. SPAN-style risk arrays and VaR scenario vectors converge on the same aggregation, add-on and anti-procyclicality stages before an initial margin requirement is emitted.
Figure 2 is the architectural claim of this article: the scenario core is swappable, the layers around it are what regulators examine. The scenario core produces a vector of portfolio P&L numbers per account. Everything after it works on that vector.
Add-ons: concentration, liquidity, wrong-way
Concentration. A member with a position of 30% of an option series’ open interest cannot be liquidated at the mid price. The charge compares position size with a liquidity proxy such as average daily volume. SPAN 2 describes a concentration charge that “adds cost when a holding exceeds a threshold, calibrated from recent Average Daily Volume” (CME), though it gives no threshold values. OCC’s concentration component of its stress test applies extreme moves to the two most exposed single-stock risk factors and takes a proportion of the excess over the base, excluding index positions.
Liquidity. The liquidity charge estimates close-out cost: roughly half the bid-offer spread times the position, scaled for the number of days to liquidate. CME says its SPAN 2 liquidity charge is based on bid-ask spreads over a reasonable lookback, calibrated to traded data where available.
Wrong-way risk. Wrong-way risk occurs when a member’s default probability is positively correlated with the exposure the CCP carries on that member: for example a bank clearing credit default swaps on itself or on its own country. Margin models that assume independence between default and market move understate the risk. Typical mitigations are specific add-ons that apply a jump-to-default scenario, limits on holding self-referencing positions, and haircut rules for collateral issued by the member or its group. OCC’s public methodology page does not discuss wrong-way risk, so I cannot attribute specifics to it; the point here is the design pattern.
Dependence. OCC’s STANS also compares expected shortfall under historical, perfect-correlation and zero-correlation assumptions and takes a proportion of the excess, which guards against a correlation structure that breaks exactly when it matters.
Margin procyclicality: why a good model can be a bad influence
Margin procyclicality is the tendency of margin requirements to rise when markets become stressed and volatile, and to fall when they are calm. A responsive model is, by construction, procyclical. If volatility doubles, the 99% VaR roughly doubles, so a member who was comfortable yesterday must find large amounts of eligible collateral today, often by selling assets into a falling market. That feedback loop is the concern: the margin model transmits a shock to the funding positions of members and their clients.
Regulators reason that complete elimination would defeat the purpose, so the aim is to damp the amplitude and smooth the timing. The EU rules give CCPs a menu. According to ESMA’s final report on the review of RTS 153/2013 (and its earlier guidelines on anti-procyclicality margin measures), Article 28 lists three alternatives, of which a CCP must apply at least one:
- A margin buffer at least equal to 25% of the calculated margin, which the CCP can let run down when requirements rise.
- Stressed observations: assign at least 25% weight to stressed observations in the lookback period.
- A 10-year floor: ensure that margin requirements are not lower than those that would be calculated using a lookback of ten years of volatility.
In the 2023 final report, ESMA proposed that the CCP justify its chosen tool and state its “tolerance for procyclicality,” use quantitative metrics, and consult its risk committee; it rejected predefined “speed limits”; it required that stress weights and floors not be scaled and that weights total 100%; and it said that for the buffer, CCPs need documented exhaustion and replenishment policies. These are proposals from the report as summarised; I have not confirmed which text has been adopted into the final Delegated Regulation in force in late 2026.
Each tool has a distinct mechanism and a distinct failure mode.
Buffer. The CCP holds margin 25% above the model output in calm times. When volatility spikes, the model output rises into the buffer and the actual call is smaller than the model’s. The failure: if the buffer is exhausted quickly and not replenished in calm periods, the next stress sees the full jump, and replenishing during recovery creates an artificial pro-cyclical drag on members just as markets settle.
Stressed-weight blend. Margin equals roughly 75% of current-regime margin plus 25% of a margin computed from a stressed window. The stressed component is a floor that keeps requirements high after calm returns, and it limits the jump when stress returns because 25% of the number was already stress-based. The failure: the stressed window is a judgment. If it is too benign, the blend does little; if it never ages out, margins are persistently high and uncompetitive.
Ten-year floor. Margin never falls below that computed with ten years of data, which will include 2008 or 2020 depending on the asset class. The failure: the floor is blunt, it binds for years in quiet markets, and a CCP that elects it effectively runs a through-the-cycle model and a point-in-time model in parallel.
SPAN 2 is explicitly designed around this: CME says its historical stress VaR rebases long-lookback returns to the current environment while short-lookback returns provide counter-cyclicality.
The margin calculation engine
A production engine has five stages.
- Position ingestion. Trades arrive from the clearing system after novation, grouped by account and by the margin hierarchy (house versus client, gross versus net omnibus). Position snapshots are versioned: a margin number must be reproducible from the snapshot id plus the parameter set id. Late trades, give-ups and corrections force reprocessing.
- Risk-factor and scenario generation. For SPAN-style engines, the risk arrays are generated once a day per contract by a pricing job that revalues the contract under every scenario. For VaR engines, scenario sets are generated per risk factor from the filtered returns, with scenario ids shared across all instruments so that joint dependence is preserved. Option positions need full revaluation across the surface; linear products can be computed with sensitivities.
- Portfolio P&L aggregation. Position times scenario P&L, summed per account. This is a tall matrix multiplication: accounts by instruments times instruments by scenarios. With 100,000 instruments and 2,500 scenarios, the scenario matrix has 250 million cells, about 2 GB in double precision. That fits memory on one large node, but parallelism by account matters because accounts are independent.
- Tail statistic, add-ons, and APC. VaR or ES from each account’s P&L vector; the offsets and add-ons described above; the anti-procyclicality tool.
- Output and distribution. Margin by account, component breakdown (market, stress, liquidity, concentration), and in many CCPs an API that lets members run what-if requests.
The batch versus intraday split is the architectural pivot. In the end-of-day batch, the CCP can regenerate all scenarios, recalibrate volatility, and run full revaluation. Intraday, it cannot afford a full recalculation on every trade. Common patterns are to freeze the day’s scenario set and risk arrays, and incrementally update portfolio vectors as trades arrive; to use sensitivities (delta, gamma, vega) with a Taylor approximation for option positions between full revaluations; and to trigger an intraday margin call when the incremental exposure exceeds a threshold or when a price move exceeds a pre-agreed trigger. OCC states that intraday margin calls can be made on accounts with significant losses and that intraday changes use a daily portfolio-specific haircut for collateral.

Figure 3: The default waterfall as a loss-absorption ladder. Each layer is consumed in order, and each imposes different incentives on the defaulter, the CCP and the surviving members.
The Default Waterfall: Who Pays, in What Order
When a clearing member fails to meet a margin call or a settlement obligation, the CCP declares default, closes out or auctions the defaulter’s positions, and charges the losses against a sequence of resources. That sequence is the default waterfall. The ordering is the CCP’s incentive design, and the sizing of each layer is where initial margin models meet the capital structure.
The typical order, which varies by jurisdiction and CCP rulebook, is:
- The defaulter’s initial margin and any other collateral posted by the defaulter. The principle is defaulter pays first.
- The defaulter’s default fund contribution.
- The CCP’s own capital, often called skin in the game (SITG), placed ahead of non-defaulting members’ contributions so that the CCP has an incentive to set margins prudently.
- The non-defaulting members’ default fund contributions, mutualised.
- Further loss-allocation tools: cash calls or assessments on surviving members up to a rulebook cap, variation margin gains haircutting, partial tear-up of contracts.
- Resolution under the relevant authority if the CCP itself is failing.
Under EMIR, as I recall the structure, the CCP must keep dedicated own resources equal to 25% of its minimum capital for the SITG layer and must size the default fund to cover the default of the two largest members (“cover 2”) under extreme but plausible conditions; PFMI Principle 4 sets cover 1 as the floor with cover 2 for CCPs with complex risk profiles or systemic importance. I have not re-verified the exact percentage or article numbers in this run, so treat them as pointers to check against the regulation and your CCP’s rulebook. The PFMI text itself is the BIS publication linked in Further Reading.
Sizing the default fund from stress tests
Initial margin is calibrated to a confidence level, such as 99% or 99.5%, for each member. The default fund exists for the tail beyond that: losses that exceed the defaulter’s margin. Its size is set by stress testing, not by the margin model. The CCP picks extreme but plausible scenarios, historical and hypothetical, applies them to each member’s portfolio, subtracts the member’s margin, and finds the uncovered exposure. It then sums the largest one or two uncovered exposures to size the fund.
Worked illustration with invented numbers: suppose the five largest members have stressed uncovered exposures of 900, 700, 400, 350 and 200 (in millions of currency units). Cover 1 requires at least 900. Cover 2 requires at least 1,600. Allocation of the fund among members is typically proportional to their margin or risk, so a member with heavy risk contributes more. The important design point is the interaction: if the CCP tightens IM, the uncovered exposures fall and the required default fund shrinks, which is why margin model changes are never isolated technical events.
Why the waterfall and the margin model are one system
Three couplings make the topic hard.
Coupling one: IM adequacy sets how often the mutualised layers are touched. If backtesting shows margin breaches at roughly the 1% rate for a 99% model, you expect roughly one breach per 100 member-days, but the breach only becomes a CCP loss when the member also defaults at that moment, which is rare. Even so, the loss given default is driven by the tail beyond the VaR point, which is why ES is attractive: it prices the severity of the breach, not just its frequency.
Coupling two: procyclical IM interacts with default risk. A sharp margin increase can itself cause a default among members already stretched on liquidity. This is the argument for smoothing: a margin model that is accurate but jumpy can raise the default probability it is trying to insure.
Coupling three: the defaulter’s portfolio is not liquidated in a vacuum. Auction participants are other members. In a stress those same members are short of capital and risk appetite, so prices in the auction are worse than the model assumed. This is the origin of the liquidity and concentration add-ons and of the margin-period-of-risk floor.
A fourth issue is incentive design. SITG ahead of the mutualised fund aligns the CCP with prudent margin setting, but too small a SITG is a token and too large a SITG makes the CCP conservative to the point of uncompetitive margins. Regulators and members debate the size continuously; I am not aware of a single settled number, and the rulebooks differ.
A Runnable Toy: SPAN-Style Scan vs Filtered Historical Margin
The following Python script is explicitly illustrative. It uses a synthetic short-straddle portfolio on one underlying, a simplified 16-scenario scan, and a filtered historical simulation on synthetic fat-tailed returns with a volatility regime change. Parameters (scan ranges, decay factor, horizon) are chosen for demonstration and are not any CCP’s calibration. It needs only NumPy.
import numpy as np
from math import log, sqrt
from statistics import NormalDist
rng = np.random.default_rng(7)
N = NormalDist().cdf
S0, K, T, sigma = 100.0, 100.0, 30/365, 0.20
def bs(S, vol, cp):
d1 = (log(S/K) + 0.5*vol**2*T) / (vol*sqrt(T)); d2 = d1 - vol*sqrt(T)
return S*N(d1) - K*N(d2) if cp == "c" else K*N(-d2) - S*N(-d1)
def pv(S, vol): # short 10 calls and 10 puts, multiplier 100
return -10*100*(bs(S, vol, "c") + bs(S, vol, "p"))
base = pv(S0, sigma)
# SPAN-style scan: 7 price steps x 2 vol moves, plus 2 extreme moves at 35% credit
PSR, VSR = 0.10, 0.25
losses = [base - pv(S0*(1 + s*PSR), sigma*(1 + v*VSR))
for s in (-1, -2/3, -1/3, 0, 1/3, 2/3, 1) for v in (1, -1)]
losses += [0.35*(base - pv(S0*(1 + s*3*PSR), sigma)) for s in (1, -1)]
print("scenarios:", len(losses), "SPAN-style margin: %.0f" % max(0, max(losses)))
# Filtered historical simulation on synthetic returns with a calm-to-stress shift
n = 2500
true_vol = np.where(np.arange(n) < 2000, 0.008, 0.02)
ret = rng.standard_t(4, n) / np.sqrt(2) * true_vol
lam = 0.94
h = np.empty(n); h[0] = ret[:50].var()
for t in range(1, n):
h[t] = lam*h[t-1] + (1-lam)*ret[t-1]**2
z = ret / np.sqrt(h) # standardised residuals
sigma_now = np.sqrt(lam*h[-1] + (1-lam)*ret[-1]**2)
mpor = 5
def fhs(window, q=0.99, scale_to=sigma_now):
x = z[-window:] * scale_to * sqrt(mpor) # sqrt-time scaling: a simplification
pnl = np.array([pv(S0*(1 + r), sigma) - base for r in x])
var = -np.quantile(pnl, 1 - q)
return var, -pnl[pnl <= -var].mean()
for w in (250, 1000, 2500):
v, e = fhs(w)
print("FHS window %4d: 99%% VaR %.0f, ES %.0f" % (w, v, e))
# Anti-procyclicality, option (b) flavour: 75/25 blend of current and stressed margin
cur, _ = fhs(250)
stress, _ = fhs(2500, scale_to=0.02)
print("current %.0f, stress %.0f, blended %.0f" % (cur, stress, 0.75*cur + 0.25*stress))
I ran this script before including it. With seed 7 it prints a 16-scenario SPAN-style margin of 8,899, FHS 99% VaR of 6,140 (250-day window), 6,055 (1,000-day) and 6,710 (2,500-day) with ES between roughly 9,800 and 10,900, and a 75/25 blended margin of 7,450 against a stress-only 11,379. Those numbers describe this synthetic portfolio only; they are not benchmarks, and the ordering between SPAN-style and VaR numbers would change with a different portfolio, scan range or horizon.
Three lessons are worth drawing out. First, the SPAN-style number is driven by one scenario at a time, so it is stable under changes in the return history, while the FHS number moves with the volatility forecast. Second, the ES figures sit well above the VaR figures because the tail of a short-option payoff is convex; that is the argument for ES in options books. Third, the blend moves the requirement from 6,140 to 7,450, a 21% rise, without any trade changing, which is the cost members pay for lower jumpiness later. Every one of these facts is a design decision you can see in forty lines of code.

Figure 4: A simplified intraday margin-call sequence. The engine reuses the day’s risk arrays, aggregates the new position snapshot, and requests a call when collateral falls short.
Figure 4 shows why intraday margin is a data-freshness problem more than a modelling problem. The scenario store is stable, the position feed is not, and the collateral system’s valuation of the posted securities is a third clock. The three disagree for seconds to minutes, and the engine has to define which snapshot constitutes the legal position when a call is issued.
Model Governance: Backtesting, Sensitivity and Stress Testing
A margin model is a regulated model, so it has an independent validation loop. The PFMI call for regular backtesting and sensitivity analysis of margin models and for stress testing of financial resources; EMIR’s technical standard sets frequencies and disclosure requirements that I will not restate here without having re-verified them.
Backtesting. Each day, compare the margin held at the previous close with the realised portfolio loss over the MPOR for every account. Count exceedances. At 99% confidence, an account with 250 observations should show about 2.5 exceedances; the standard Kupiec unconditional coverage test uses a likelihood ratio on the exceedance count to reject over- or under-coverage, and the Christoffersen test additionally checks that exceedances are not clustered. The clustering test matters more for CCPs than for banks, because clustered breaches are precisely what hit during stress. Coverage should be tracked per account, per asset class, and aggregated; a model that passes overall can fail on a concentrated account type.
Sensitivity analysis. Re-run margin with perturbed parameters: confidence level, lookback, decay factor, MPOR, correlation. The outputs show which assumptions are load-bearing. A model whose margin changes 30% when the lookback moves from 5 to 4 years is brittle.
Stress testing. Distinct from backtesting. It asks “what if the extreme but plausible scenario occurred?” Reverse stress testing asks the opposite: which scenario would exhaust the default fund? Both feed the sizing of the default waterfall.
Model risk and change management. Margin model changes are themselves a source of procyclicality and operational risk. Mature CCPs publish parallel-run results, give members notice, and phase changes in. CME’s SPAN 2 publication describes parallel risk-parameter files and offsets between SPAN and SPAN 2 during coexistence, which is exactly the pattern.
Trade-offs, Gotchas, and What Goes Wrong
Explainability versus accuracy. SPAN is reproducible by a member with a spreadsheet. A Monte Carlo copula model is not. Members who cannot predict their margin cannot manage their liquidity; CCPs mitigate with what-if tools and published parameter files, but the gap is real.
Lookback length cuts both ways. A short lookback is responsive and procyclical. A long lookback is stable and slow to react to a regime shift that is not in the history. The APC options all try to blend the two, and none solves the underlying problem of unknown unknowns.
Square-root-of-time scaling fails in stress. Scaling a one-day risk to five days assumes independence. Stress returns trend and autocorrelate. The toy code above scales this way for brevity; a production model would use overlapping multi-day returns or a dedicated multi-day process.
Offsets are a bet on correlation. Inter-commodity credits and portfolio diversification reduce margin by assuming relationships hold in the stress. When correlations go to one, the credit that looked prudent becomes the exposure. That is why OCC compares historical, perfect-correlation and zero-correlation scenarios.
Collateral is part of the model. Margin in the form of securities has a market value that can fall at the same time as the portfolio loses money. Haircut schedules and wrong-way collateral rules are inside the risk perimeter. OCC’s methodology includes equity collateral in its simulations, with traditional haircuts for the rest.
Operational failures dominate real incidents. A stale parameter file, a position feed that missed a give-up, or a pricing job that used a bad volatility surface produces a wrong margin number with no model failure at all. Reconciliation of positions between CCP and members, and sanity bounds on day-over-day margin change, catch more than model validation does.
Anti-procyclicality can hide risk. A buffer gives comfort, and comfort leads to complacency. If the buffer is counted as part of the margin the CCP “has”, but is routinely depleted, the real coverage is the lower number.
Competition between CCPs. CCPs that clear the same products compete partly on margin. That creates pressure to lower margin, which is exactly the race-to-the-bottom that the regulatory floors exist to stop.
Practical Recommendations
For engineers building or evaluating a margin stack, start with the data contract, not the model. Define a versioned position snapshot, a versioned scenario set and a versioned parameter set, and make every margin number reproducible from the triple. Most disputes with members are resolved by reproduction, and most incidents are traced to a mismatch between versions.
Separate the scenario core from the layers around it, as Figure 2 shows. A pluggable core lets you run SPAN-style and VaR-style models in parallel during a migration, compare them account by account, and publish the differences. Do the same for the add-ons, so concentration and liquidity charges can be tuned and explained independently of the VaR core.
Treat anti-procyclicality as a first-class component with its own metrics. Monitor the day-over-day change in margin, the peak-to-trough ratio, and the fraction of margin that is buffer. Decide in advance what conditions allow the buffer to be consumed and what replenishment looks like.
Run backtests with clustering tests and by account segment. Run sensitivity analysis on every parameter you can name. Keep the default waterfall model, with its stress scenarios, in the same code base and calendar as the margin model.
A short checklist:
- Margin number reproducible from snapshot id, scenario set id and parameter set id
- Scenario core swappable behind a stable interface
- Add-ons computed and reported as separate components
- At least one documented anti-procyclicality tool with exhaustion and replenishment rules
- Backtesting by account and asset class, with a clustering test
- Sensitivity runs on MPOR, lookback, decay and confidence level
- Stress scenarios that feed default fund sizing, rerun at least with every model change
- Sanity bounds on day-over-day margin change and a manual override process with audit trail
- Parallel-run and member-notice procedure for every model change
Frequently Asked Questions
What is the difference between initial margin and variation margin at a CCP?
Variation margin settles the realised change in the value of positions, usually daily or intraday, so no unrealised gain or loss builds up. Initial margin is a collateral buffer held against potential losses that could occur between the member’s last margin payment and the close-out of its positions after a default. VM is a payment between members through the CCP; IM is held by the CCP against the posting member’s own risk and returned when positions close.
How does SPAN margin work?
SPAN revalues each contract under 16 predefined scenarios, 14 combining price and volatility moves and 2 extreme price moves that count only partially. The member’s position is multiplied by each contract’s risk array, arrays are combined within related contracts, and the worst scenario loss becomes the scanning risk. Spread charges, a short option minimum and inter-commodity credits then adjust it. This is the classic layout; CME’s SPAN 2 now adds a VaR core with stress, liquidity and concentration components.
Is VaR or expected shortfall better for CCP margin?
Expected shortfall averages the losses beyond the VaR point, so it captures tail severity and rewards diversification, which is why OCC uses 99% expected shortfall as its base requirement. VaR is simpler to backtest because exceedances are a clean count. Many CCPs use a VaR-type core and cover severity with stress and add-on layers. The better choice depends on whether you value backtestability or tail sensitivity, and regulatory text may constrain it.
What is margin procyclicality and how do CCPs control it?
Procyclicality is the tendency of margin to rise in stress and fall in calm, forcing members to raise collateral at the worst time. EU rules offer three tools under Article 28 of RTS 153/2013: a buffer of at least 25% of calculated margin, at least 25% weight on stressed observations in the lookback, or a floor based on a ten-year volatility lookback. A CCP applies at least one and documents how it behaves in stress.
What happens in a CCP default waterfall?
The CCP first uses the defaulter’s initial margin and default fund contribution, then its own dedicated capital, then the default fund contributions of surviving members. If those are not enough, rulebook tools such as cash calls, variation margin haircutting or contract tear-up apply, and finally resolution. The order makes the defaulter pay first, gives the CCP skin in the game, and mutualises only the remaining tail.
How often is CCP margin recalculated?
Most CCPs run a full end-of-day calculation with fresh scenarios and parameters, and many also compute intraday margin using the day’s frozen scenario set and updated positions, calling extra margin when exposure or price moves cross triggers. OCC states that it can make intraday margin calls on accounts with significant losses. Exact schedules differ by CCP and product, so consult the rulebook of the specific clearing house.
Further Reading
- Securities settlement, T+1, CCP novation and CSD architecture for the clearing and settlement flow that produces the positions a margin engine consumes.
- Collateral and margin management architecture for derivatives for the member-side view of margin calls and collateral optimisation.
- VaR, expected shortfall and risk engine architecture with Monte Carlo and historical simulation for the scenario machinery behind VaR and ES.
- OCC margin methodology (STANS), the Options Clearing Corporation’s own description of its Monte Carlo expected-shortfall system.
- CME Group: SPAN 2 methodology and functionality, CME’s description of the historical VaR, stress, liquidity and concentration components.
- BIS CPMI-IOSCO Principles for financial market infrastructures, the international baseline for CCP credit risk, collateral and margin.
- ESMA final report on the review of RTS 153/2013 on procyclicality of CCP margin, the review of the Article 28 anti-procyclicality options.
By Riju — about
