Risk & GreeksPortfolio RiskVega LadderVannaVolga

Portfolio Greeks Aggregation

Module 3 of 422 min readLevel: Hard

Setup

From Single Option to Book-Level Risk

A single option's Greeks are straightforward to compute. A trading book is a collection of hundreds to thousands of positions across different underlyings, strikes, maturities, and option types. Aggregating these into meaningful, actionable risk metrics requires:

  1. Netting: which positions offset each other.
  2. Bucketing: grouping by the risk factor that drives each position.
  3. Ladder construction: expressing sensitivities as a vector indexed by market pillars.
  4. Cross-Greeks: second-order sensitivities that matter for books with large vega.

None of these is trivial. A common error is to aggregate Greeks naively and miss the distinction between a flat ladder (no net risk) and a butterfly (zero net vega but large volga). The two have identical total vega but completely different risk profiles.

Notation and Sign Conventions

Throughout:

  • V=knkCkV = \sum_{k} n_k C_k: portfolio value, where nkn_k is the position (positive = long, negative = short) and CkC_k the per-unit option price.
  • Portfolio Greeks are additive for positions in the same underlying: Δportfolio=knkΔk\Delta_{\mathrm{portfolio}} = \sum_k n_k \Delta_k. This is exact under the Black-Scholes flat-smile model; under smile models, the aggregation is approximate (because delta depends on the smile model, which is a portfolio-level calibration).
  • All Greeks computed at market mid-prices under a consistent model (e.g., Black-Scholes with the implied vol for each option).

Netting and Bucketing

Delta Netting

Delta is aggregated across all positions in the same underlying:

Δnet=knkΔk.\Delta_{\mathrm{net}} = \sum_{k} n_k \Delta_k.

A delta-neutral book requires Δnet=0\Delta_{\mathrm{net}} = 0, achieved by holding Δnet-\Delta_{\mathrm{net}} shares of the underlying. Note: delta netting applies within a single underlying. Across underlyings, deltas cannot be netted (a long delta in EURUSD and a short delta in GBPUSD are distinct risks).

Gamma Bucketing

Gamma is additive across positions in the same underlying:

Γnet=knkΓk.\Gamma_{\mathrm{net}} = \sum_{k} n_k \Gamma_k.

However, the total net gamma is less informative than the gamma profile — the gamma as a function of spot. A long ATM straddle and a short OTM strangle may have similar total gammas but completely different profiles: the straddle has concentrated gamma at current spot, while the strangle has distributed gamma at the wings. The profile determines the P&L distribution under different spot moves.

Gamma bucketing by moneyness: divide positions into buckets by ln(K/F)\ln(K/F) (log-moneyness) and report Γbucket\Gamma_{\mathrm{bucket}} for each bucket. This reveals concentrations.

Theta Aggregation

Θnet=knkΘk.\Theta_{\mathrm{net}} = \sum_{k} n_k \Theta_k.

For a delta-and-gamma-neutral book, the net theta is:

Θnet12σ2S2Γnet,\Theta_{\mathrm{net}} \approx -\frac{1}{2}\sigma^2 S^2 \Gamma_{\mathrm{net}},

from the BS PDE. A flat gamma book has flat theta. A long gamma book pays theta.


Vega Ladder Construction

The Implied Vol Surface as a Risk Factor

The implied vol surface σ^(K,T)\hat{\sigma}(K, T) is a function of two variables. The option book's P&L from a move in the surface is:

δVvega=i,jνijδσ^(Ki,Tj),\delta V_{\mathrm{vega}} = \sum_{i,j} \nu_{ij} \cdot \delta\hat{\sigma}(K_i, T_j),

where νij=V/σ^(Ki,Tj)\nu_{ij} = \partial V / \partial\hat{\sigma}(K_i, T_j) is the vega ladder entry at pillar (Ki,Tj)(K_i, T_j). The vega ladder has dimensions (number of strike pillars) ×\times (number of maturity pillars).

Constructing the Vega Ladder

For each surface pillar (Ki,Tj)(K_i, T_j):

νij=V(σ^+δijeij)V(σ^δijeij)2δij,\nu_{ij} = \frac{V(\hat{\sigma} + \delta_{ij}\,\mathbf{e}_{ij}) - V(\hat{\sigma} - \delta_{ij}\,\mathbf{e}_{ij})}{2\,\delta_{ij}},

where eij\mathbf{e}_{ij} is the unit bump at pillar (Ki,Tj)(K_i, T_j) and δij=0.01\delta_{ij} = 0.01 (1 vol point). Each entry requires two full portfolio repricings (or one complex-step repricing). For a surface with 5×7=355 \times 7 = 35 pillars, this is 70 repricings (or 35 complex steps) per risk run.

Term structure of vega. Summing across strikes for each maturity bucket:

νj=iνij,j=1,,N.\nu_j = \sum_i \nu_{ij}, \qquad j = 1, \ldots, N.

The vega term structure shows how the book's vol sensitivity is distributed across maturities — short-dated vega is more volatile (short-dated vol moves more) but also hedged more cheaply. Long-dated vega is more stable but harder to hedge (fewer liquid instruments at long maturities).

Vega-weighted by maturity: some desks report νj=νj/Tj\nu_j^* = \nu_j / \sqrt{T_j} (vega normalised by the vol scaling T\sqrt{T}), which gives a "volatility-normalised" sensitivity comparable across maturities.


Cross-Greeks: Vanna and Volga in Portfolio Context

The full lesson requires Premium

The complete derivation, the C++ / Python implementation, the validation tables, the quiz, and the interview-angle notes are part of Premium. Start a Premium plan to unlock every module in this track.