Overview
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. It is intended to be used to validate the sensitivities and the Taylor VaR by comparing it to the actual day to day PnL. It can be seen as a one-scenario VaR from day minus one to day. 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. The input formula is the same as the Taylor VaR: In this formula:- is the current market state.
- is a market shift, it is a vector kind value as multiple market data can be shifted for the day to day.
- is the gradient of at , it’s a vector of the first-order risk factors such as delta, vega or correlation.
- is the Hessian matrix of at , it’s a matrix containing the second-order risk factors such as gamma, cross-gamma, vanna or volga.
Input data
Atoti Market Risk supports Delta, Gamma, Vega, Volga, Vanna, Correlation, CrossGamma, and Theta sensitivities.Market data
If the exact vertices/tenor points referenced by the sensitivities don’t coincide with the market data, Atoti Market Risk can apply a mathematical 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. Atoti Market Risk performs any necessary interpolation and fallback. See the Market Data API for more details about market data retrieval.Market Data Selection
Several kinds of market data are available to compute the PnL Explain. The kind of market data will be chosen with the following criteria:sensitivityKind: The formal name of the current metric chain.sensitivityName: The name of the sensitivity coming from the TradeSensitivities store.riskClass: The risk class coming from the TradeSensitivities store.
mr.sensi.market-data.sensitivityKind.sensitivityName.riskClass.market-data-type. The keyword any can be used as a wildcard.
The following values can be used to wire the market data to an existing metric:
For the second axis of cross-sensitivities (Vanna, CrossGamma) the risk factor hierarchy is Risk Factors Secondary with the corresponding measure.
Only specific market data types are supported per sensitivity kind. This can be extended by customization of the chains.
- delta, gamma: fx spot, eq spot, curve
- vanna1, vega, volga: surface, cube
- vanna2: eq spot, curve
- correlation: correlation
- dividend: dividend
- cross-gamma1, cross-gamma2: eq spot
Theta market data
As Theta represents time decay, the Theta Current MD and Theta Previous MD measures for Theta express the number of days remaining to the maturity of the trade. To correctly compute the losses due to time decay, the terms are now swapped, with the current day’s value being subtracted from the previous day’s value.Methodology
Date shifting
The PnL explain is computed with the sensitivities of day-1 and market data of day and day-1. To do such a thing, the PnL explain is computed on the context of day-1. So the (simplified) metric chain of the PnL explain will look like:PnL Explain: Shift from Day-1PnL Explain Next Date: Sum of the metric chain specifics PnLsDelta PnL Explain Next Date, …: FX conversion with Day-1 FX rateDelta PnL Explain Native Next Date: Computation of the PnL explain on the Day-1 contextDelta Native,Delta Ladder Native,Delta Current MD,Delta Next MD: The sensitivity, ladder of Day-1, Market Data of Day-1 and Day.
Computation
In Atoti Market Risk, 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. Atoti Market Risk 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 is the market data quote for a given day . The is computed by theScalarPnLExplainPostProcessor post-processor.
It will use two different functions, a PnL function that is quite the same as the one used by the Taylor VaR computation, and a shift function
that will convert the Market Data pair into a shift.
The formulas are provided by the spring bean of type IPnLExplainFormulaProvider, with the functions
cache: The query cache.sensitivityKind: The formal name of the current metric chain.sensitivityName: The name of the sensitivity coming from the TradeSensitivities store.riskClass: The risk class coming from the TradeSensitivities store.
The
type, derivative-order, price-factor and shift are configured by the properties.
To find the right property set, we will look for the following path:
mr.sensi.rules.sensitivityName.pnl-explain.riskClassmr.sensi.rules.sensitivityKind.pnl-explain.riskClass
DHS
For negative interest rates, Atoti Market Risk uses the DHS (Displaced Historical Simulation) computations, where is a shift value that can be configured per risk class.Cross sensitivity
For Vanna and CrossGamma, the cross sensitivities are handled by applying the shift formula of both risk-factors: Where and are the market data quotes for a given day for risk-factors and respectively.Currently, cross-bucket sensitivity is not supported.