PnL Explain

The PnL Explain process aims to quantify the changes in the PnL from one business day to the next, based on the closing prices for each day and show the impact of each input (each change in the quote) in terms of PnL.

For example, the portion of PnL due solely to the change of one particular quote, such as the EUR SWAP LIBOR 3Y.

The process begins with aggregation of the greeks and then uses those values in a Taylor expansion to explain the expected one-day change in PnL using the actual market data shift over one day.

Input data

The Market Risk Accelerator supports Delta, Gamma, Vega, Volga, Vanna, Cash, and Theta sensitivities.

Market data

If the exact vertices/tenor points referenced by the sensitivities don’t coincide with the market data, the Accelerator can apply a linear interpolation of the market data quotes between sensitivities and market data tenors.

That interpolation logic can be enabled or disabled based on the risk class and the sensitivity measure. Also, additional computations can be defined for every combination of sensitivity measures and risk classes before and after the interpolation of market data is performed.

The market data must be at the risk-factor level. The Accelerator performs any necessary interpolation and fallback.

Methodology

In the Market Risk Accelerator, the PnL Explain calculations are configurable and extendable. In the decomposition of PnL, the market data impact represents the change in the portfolio value from market data shifts during the day.

Shifts and shift factors

The Accelerator supports both relative and absolute market data shifts. This is configurable and extendable. The shift factor default is 1. The following table shows the PnL impact calculations for each risk class, where $q_{n}$ is the market data quote for a given day $n$.

Risk class How sensitivities are represented 1st order Taylor approximation 2nd order Taylor approximation
Equity, FX Cash equivalent positions $(q_{2}/q_{1}-1) \cdot \text{sens}$ $\frac{1}{2}(q_{2}/q_{1}-1)^{2} \cdot \text{sens}$
IR, credit, repo curves Provided in $/bp $(q_{2}-q_{1}) \cdot \text{sens}$ $\frac{1}{2}(q_{2}-q_{1})^{2} \cdot \text{sens}$
Vega $/vol point $(q_{2}-q_{1}) \cdot \text{sens}$ $\frac{1}{2}(q_{2}-q_{1})^{2} \cdot \text{sens}$

DHS computation

For negative interest rates, the Accelerator uses the following DHS (Displaced Historical Simulation) computations, where $a$ is a shift value that can be configured per risk class.

1st order Taylor approximation 2nd order Taylor approximation
$\text{sens} \cdot [(q_{2}+a)/(q_{1}+a)-1]$ $([(q_{2}+a)/(q_{1}+a)-1])^{2} \cdot \text{sens}$

Cross sensitivity

For Vanna, the cross sensitivities are handled by applying the shift formula of both risk-factors:

$$ \text{PnL Explain} = f_{\text{marketData2}}(f_{\text{marketData1}}(\text{sens},q_{1},q_{2}),p_{1},p_{2}) $$

Where $q_{n}$ and $p_{n}$ are the market data quotes for a given day $n$ for risk-factors $q$ and $p$ respectively.

note

Currently, cross-bucket sensitivity is not supported.