SA ETL for SBM Vega
This page provides an overview of ETL for SBM Vega, including the following breakdowns:
-
Table showing you the fields included in each row of a Vega Sensitivity CSV Input Data file, indicating which stores these fields are copied to during the ETL process.
-
Key fields for vector creation and the fields that have the potential to be populated with vectors, as opposed to always containing scalar values.
Vectorization
The following table provides information about the vectors employed within the Vega CSV Input files for each risk class:
Risk Class | Vector Information |
---|---|
- GIRR - CSR non-Sec - CSR Sec CTP - CSR Sec non-CTP - Equity - Commodity - FX |
If Vega sensitivities are provided in the input file as a vector, the indices of the vectors are the option maturities. Note: GIRR Vega is a two-dimensional vector, the second dimension being the residual underlying maturities. |
Un-Vectorization
Vectors within the input are split into several scalar lines by the RiskClassTuplePublisher.
For each OptionMaturity in the vectorized input, the corresponding index of VegaSensitivities is used to create scalar tuples under the scalar risk factor. The scalar risk factor is the concatenation of the input riskFactor and the OptionMaturity, using a space as a delimiter.
If OptionMaturity is not provided, a default of “6M”, “1Y”, “3Y”, “5Y”, “10Y” is used in that order.
In the case of GIRR Yield curves, UnderlyingMaturity is the second dimension of the vectorized input. The scalar risk factor is the concatenation of the input riskFactor, the OptionMaturity, and the UnderlyingMaturity using a space as a delimiter.
If UnderlyingMaturity is not provided, a default of “1Y” is used.
Normalization
Vega-relevant stores
The stores that are relevant for Vega are:
Stores |
---|
SASensitivities |
RiskFactorDescription |
UnderlyingDescription |
Mapping of SBM Vega CSV file fields onto the stores that they populate
Field from CSV file OR ColumnCalculator (if the CSV file field is null) | SASensitivities | RiskFactorDescription | UnderlyingDescription | Key Fields for Vector Creation |
---|---|---|---|---|
AsOfDate | (AsOfDate) | (AsOfDate) | (AsOfDate) | |
TradeId | (TradeKey for trade level data) | |||
Book | (part of TradeKey for summary data) | |||
LegalEntity | (part of TradeKey for summary data) | |||
RiskClass | (RiskClass) | (RiskClass) | (RiskClass) | |
OptionMaturity | (Maturity) | |||
UnderlyingMaturity | (Underlying Maturity) | |||
VegaSensitivities (vector or scalar) | ||||
Ccy | ||||
RiskFactor (if missing, RiskFactorColumnCalculator is used) |
(RiskFactor) | (RiskFactor) | ||
Type | (RiskFactorType) | (GIRR Curve Type) | ||
GIRRCcy | (GIRR Ccy) | |||
Underlying (if missing, UnderlyingColumnCalculator is used) |
(Underlying) | (Underlying) | ||
CSRQuality | (CSRQuality) | |||
CSRSector | (CSRSector) | |||
CSRTrance (Deprecated) | ||||
EquityEconomy | (EquityEconomy) | |||
EquityMarketCap | (EquityMarketCap) | |||
EquitySector | (EquitySector) | |||
CommodityLocation | (CommodityLocation) | |||
CommodityTime (Deprecated) | ||||
CommodityGrade (Deprecated) | ||||
CommodityRoute (Deprecated) | ||||
FXCounterCurrency | (FXCounterCurrency) | |||
OriginalOptionality | ||||
CSRRating | ||||
FXComplexTrade | ||||
FXOtherCcy | ||||
FXDividerEligibility | ||||
Bucket | ||||
Pool | ||||
Attachment | ||||
Detachment |
Column Calculators and Tuple Publishers
RiskFactorColumnCalculator
If Risk Factor is not provided, RiskFactorColumnCalculator
will create one based on risk class the table below explains how Risk Factors are derived.
Risk Class | Creation Method for RiskFactor |
---|---|
Commodity | Derived by concatenating Underlying and CommodityLocation, using ‘space’ as a delimiter |
GIRR | Underlying is used |
Equity | Derived by concatenating Underlying and RiskFactorType, using ‘space’ as a delimiter |
CSR non-Sec | Derived by concatenating Underlying and RiskFactorType, using ‘space’ as a delimiter |
CSR Sec CTP | Derived by concatenating Underlying and RiskFactorType, using ‘space’ as a delimiter |
CSR Sec non-CTP | Derived by concatenating Underlying and RiskFactorType, using ‘space’ as a delimiter |
FX | Underlying is used |
note
If sbm.risk-factor.always-append-tenor
is set to true, then tenor will also be added to Risk Factor.
The Tuple Publisher and Publisher Classes
The function of the TuplePublisher and its associated Publisher classes is to separate data in the incoming file row according to its relevance to particular stores and apply ETL logic to the incoming rows:
Tuple Publisher Class | Publisher Class | Function |
---|---|---|
RiskClassTuplePublisher | Splits fields according to the following criteria: - fields relevant to DeltaPublisher OR VegaPublisher OR CurvaturePublisher - fields relevant to StaticDataPublisher classes for RiskFactorDescription and UnderlyingDescription stores. Note: If multiple sensitivities are held on the same line, the line is de-multiplexed here |
|
VegaPublisher | VegaPublisher publishes to the SASensitivities store | |
RiskFactorPublisher (extends StaticDataPublisher) | RiskFactorPublisher publishes to the RiskFactorDescription store | |
UnderlyingPublisher (extends StaticDataPublisher) | UnderlyingPublisher publishes to the UnderlyingDescription store |