The Sensitivities cube provides the “greeks” functionality of Atoti Market Risk and comprises:
- A default data model for sensitivities
- Dynamic bucketing
- Real-time and trade events
- PnL Explain analysis
Default data model
Key points at a glance:
- The sensitivies have their own cube
- Each sensitivity is in a separate store
- Each store is fed by the relevant sensitivity input file
Out of the box, Atoti Market Risk works with a predefined file format, CSV. If you produce your data in this format, you can load and use Atoti Market Risk with no customizations needed. However, you can edit and configure Atoti Market Risk to work with any format or
file, database, source, and so on, that Atoti is compatible with.
Sample CSV input files are included in the source distribution. These files are loaded when testing the MR application and provide examples of each of the file types.
- Risk data: A separate file for each sensitivity. Contains snapshots
of portfolio sensitivities, JtD, and other risk metrics on the trade
(position) level.
For parallel loading, each measure
(identified by the RiskType field) is in a separate file.
- Trade attributes: Contains reference data for all trades and
positions for each date in the cube.
- Risk factors catalog: Contains reference data for risk factors. For
example, source, whether modellable/non-modellable, etc.
- Tenors and maturities: Contains time points and labels to use for
dynamic bucketing.
- Market data: Contains sensitivities either in native currency or in
a reference currency. If the sensitivities have been converted to a
reference currency by the risk engine, the data can be used directly
in the calculations. If the sensitivities are in native currency,
Atoti Market Risk can convert them to a reference currency
- The reference currency is controlled by a context value that the
user can set at query time. Atoti Market Risk must be
supplied with FX rates, which can be either explicit for every
currency pair or expressed via a cross-currency.
- A set of FX rates must be supplied to Atoti Market Risk
for every business date where there are sensitivities to be
converted.
For full details of the input files, see Input file formats
in the Cube Reference Guide
Datastore definitions
The datastore schema contains the following stores arranged in a star
schema centered on the TradeSensitivities store as the base store.
This is detailed in
/mr-application/com/activeviam/mr/sensi/datastore/description/complete/SensiDatastoreDescriptionConfig.java
- Each sensitivity has its own datastore. The sensitivities comprise:
Delta, Vega, Gamma, Vanna, and Volga.
- From this, we populate a âTrade Sensitivitiesâ store, which is the
base store. There is no file for this store, it is populated from a
tuple publisher.
- The RiskFactorsCatalog store contains reference data for risk
factors.
- Dynamic tenors and maturities stores: Provide details of dynamic and
tenors and maturities respectively
- Market data store
Cube dimensions and measures
The sensitivities have their own cube. For a full description of the
dimensions and measures provided in the Sensitivities cube,
see the Cube Reference Guide.
Dynamic bucketing
By default, Atoti Market Risk aggregates sensitivities along the tenor
ladders provided in the sensitivities input files. Additionally, you can
select from a set of pre-configured time buckets that are defined as
context values in Atoti Market Risk to linearly allocate sensitivities to
arbitrary vertices on the fly.
For more information, see the Context values in the Cube Reference
Guide.
Vertices
The term vertex refers to a tenor or expiry/maturity point along which a
risk factor sensitivity is mapped or projected.
Examples
- Interest rate delta: the vertices represent points along a risk-free
yield curve
- Credit spread delta: the vertices represent points along a credit
spread curve
- Commodity delta: the vertices represent time to maturity for a
traded commodity
Linear interpolation to tenor ladders
A source bucket may not correspond to one distinct destination bucket,
its value may have to be distributed (interpolated) over two destination
buckets. For example, if sensitivities of hedges are produced by a risk
system on a more granular level. Linear interpolation to prescribed
points has been implemented in the MR libraries based on a
30/360 day count convention.
Other interpolation methods and day count conventions can be implemented
as needed in the client project by implementing the respective
configuration classes.
Real-time and trade events
By default, the MR application publishes snapshots of the
sensitivities.
Alternatively, the supports incremental real-time updates of individual
sensitivities if available from risk engine. Updates of the
sensitivities records need to be coupled with trade termination events,
setting the existing trade sensitivities to zero.
P&L Explain
The P&L Explain process aims to quantify the changes in the P&L 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
P&L.
For example, the portion of P&L due solely to the change of one
particular quote (for example, the EUR SWAP LIBOR 3Y)
The process begins with aggregation of the greeks and then uses those
values in a Taylor expansion to predict the expected one-day change in
P&L using the actual market data shift over one day.
Methodology
In the decomposition of P&L, the market data impact represents the
change in the portfolio value from market data shifts during the day.
To calculate the market data impact on the P&L, the source of the P&L
is further decomposed using Greeks and a Taylor expansion approach,
which aims at allocating a P&L number to each individual quote.
Shifts and shift factors
Atoti Market Risk supports both relative and absolute market data shifts
(for more information, see the P&L impact table below). This is
configurable and extendable.
The shift factor default is 1, but is configurable.
The following table shows the P&L impact calculations for each risk
class, where qn 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 | (q2/q1−1)∗sens | 1/2(q2/q1-1) 2*sens |
| IR, credit, repo curves | Provided in /bp</td><td>(q2−q1)∗sens</td><td>1/2(q2−q1)2∗sens</td></tr><tr><td>Vega</td><td>/vol point | (q2-q1) * sens | 1/2 (q2-q1) 2 * sens |
DHS computation
For negative interest rates, Atoti Market Risk 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 |
|---|
| sens*[( q2+ a)/(q1 + a) -1] | ([( q2+ a)/(q1 + a) -1]) 2*sens |
Customizing the methodology
In Atoti Market Risk, you can configure the methodology to use with the properties under mr.sensi.rules..pnl-explain.