Skip to main content
The netting-set analytics framework provides three families of exposure measures: gross, netted, and collateralized. Each family produces exposure vectors (one double per scenario, per time point) for the bank side and the counterparty side. Within each family, a scenario-level expansion variant exposes the vector elements individually for scenario-level drill-down. Understanding exposure concepts and the data model is a prerequisite for this page.

What is an exposure vector measure?

An exposure vector measure is a measure whose value at a given cell is a double[] vector of length scenariosCount. Each element corresponds to one Monte-Carlo scenario. The exposure vector is computed at query time by aggregating the raw MtF vectors across all trades and time points in scope. The IExposureVectorMeasures interface provides typed access to a family’s vector measures:
The Side enum has two values: BANK (label "Bank") and CPTY (label "Cpty"). Convenience defaults getBankExposureVector() and getCptyExposureVector() delegate to the Side-parameterized methods.

What are the gross exposure measures?

Gross exposure measures operate on the raw MtF vectors without any netting or collateral adjustment. They form the foundation on which the other families are built.

Base gross exposure measures (IBaseGrossExposureMeasures)

These measures are the building blocks for gross and collateralized exposure.

Gross exposure vector family

Built from mtmSum and cumulativeCashflow, the gross exposure vectors represent the exposure of each trade or group of trades without netting. Two variants exist:
  • Gross (standard): aggregates all time points.
  • Gross with break dates: aggregates only time points before each trade’s break date.
The full IGrossMeasures interface extends both IExposureMeasures (for exposure vectors) and IInframarginalExposureMeasures (for inframarginal vectors). It also exposes baseGrossExposureMeasures().

What are the netted exposure measures?

Netted exposure measures aggregate MtF vectors within a netting set before taking the positive or negative part. This reduces gross exposure by the netting benefit when trades have offsetting values. The netted exposure is computed by the NettedExposure measure (plugin key NettedExposure) from the MarkToFuture values of each netting set, for the selected side, with an optional break-date restriction. Two variants exist:
  • Netted: standard aggregation.
  • Netted with break dates: aggregation limited to time points before each trade’s break date.
The INettedMeasures interface extends both IExposureMeasures and IInframarginalExposureMeasures.

What are the collateralized exposure measures?

Collateralized exposure measures subtract a CSA-based collateral balance from the netted MtF sum before taking the positive or negative part. The collateral balance is computed per netting set per time point by a collateral algorithm. The measures are organized by collateral algorithm. Each algorithm that a cube provides has its own named set of measures. The CSA and ISDA netting-agreement parameters are provided by a separate measures bundle. See What are the netting set parameter measures?.

Independent amount measures (IIndependentAmountMeasures)

Technical collateral measures (ITechCollateralMeasures)

These measures are produced by the collateral algorithm.

Collateralized exposure vectors (ICollateralizedExposureByAlgoMeasures)

The ICollateralizedMeasures interface groups all collateral-related measures:

What are the netting set parameter measures?

Netting set parameter measures expose the ISDA and CSA fields from the NettingAgreements table as cube measures. See the data model for the field definitions. The cube combines these fields into a single object measure that the collateral algorithms read.

Per-field parameter measures (INettingSetParametersMeasures)

For each netting-agreement field, the cube publishes a per-field measure in the “Netting Set Parameters” folder. Each measure is a SINGLE_VALUE aggregation read at the netting set level. It does not aggregate above that level.

The netting set parameters object

The "Netting Set Parameters" object measure (plugin key NettingSetParameters) holds one value per netting set. It is built from the per-field measures listed above and is not read from a table. An override applied to one per-field measure is therefore reflected in the object and flows into the collateral balance computed from it.

How to add custom netting set parameters

The built-in parameter list can be extended through the additional-netting-set-parameters cube property, a list of entries that each pair a field-name with a data type. The property sits under the cube prefix, for example atoti.solution.model.cubes.pfe. For each configured parameter, the cube:
  • Adds a field to the NettingAgreements table.
  • Publishes a per-field measure for it, alongside the built-in ones, in the “Netting Set Parameters” folder.
  • Includes its value in the netting set parameters object, keyed by field name.
INettingSetParametersMeasures.additionalParameters(name) resolves the measure for a configured parameter by its field name. It throws IllegalArgumentException for a name that is not configured. Default parameters are already reachable through their own accessors.

How does the scenario expansion work?

Scenario-level measures are produced by the ScenarioExpansion measure (plugin key: ScenarioExpansion). They expose individual scenario values when the Scenarios dimension is included in the query context. Without the Scenarios dimension, these measures are not meaningful and typically return null.