Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Key Principles

Principle

Decision / Discussion

Status

Scope is Portfolio

  • the interface should always deliver data on the scope of a single portfolio

  • the interface delivers key figures also on portfolio level (no aggregation needed)

Status
colourGreen
titleSpecified

Benchmark Data

  • benchmark data is inherently delivered as part of the analysis (see figures)

StatuscolourGreen
titleSPECIFIED

Models & Figures

  • the risk model can be chosen / setup on Aladdin side while the reporting engine is flexible towards new models as well as the number of figures and their effects

  • aggregation of figures as with Valuation

  • decomposition of figures with effects → see CSAM Data Hub - Figures

Status
colourGreen
titleSpecified

Aggregation of instruments / segments

  • The reporting engine should be flexible to aggregate risk effects from instrument level to segment level

status
colourBlue
titleout of scope


Interface "PortfolioRiskExPost"

...

Status

...

titleImplemented

Usage & contents

  • used to produce PO006, PO006C, CO001, RA001..RA003

  • Ex-post portfolio level risk figures for multiple periods.

  • The risk figures will only be delivered on a monthly basis, so calls for a reportingDate within a month will typically deliver risk figures for periods ending at the ultimo of the previous month.

Path

/portfolio/riskexpost

Parameters

portfolioId

string

The id of the portfolio (or consolidation) in the data source

reportingDate

string (date)

The date, the reporing is produced for.

Example call

/portfolio/riskexpost?portfolioId=E0002&reportingDate=2019-03-31

Response structure

If the API can fulfill the request (response status code 200 = OK) the response must follow the below json-schema.

Note
  • The request part of the response has to match the path and parameters used in the API call/request

  • The json schema currently excludes the schemas for dataVersioning (should be designed by CSAM) as well as segmentations (will be defined separately)

Schema

https://bitbucket.org/banknotes/ngr/src/df61b39d18a16581cd95aed9694991bbe39c5fb1/ngr-csamsolution/src/Model/schema/PortfolioRiskExPost.schema.json?at=release%2Fcurrent

Error handling

If the request can't be fulfilled an appropriate response status code (4xx or 5xx) must be used. Possible errors could be

  • bad request structure → expected status = 400

  • portfolioId not found or reportingDate in future → expected status = 404

  • etc.

The body of the response should contain information about the reason of the error in plain text or as json object.

Reporting business logic

  • aggregation of figures / effects

  • detection of available periods in result

  • top n, filtering, sorting

Consistency rules

The following rules should be adhered to by any response and will eventually be checked when consuming a response:

Consistency Rules
Code Block
languagejs
* All figures used within a risk object should be defined in the figures declaration
* All risk objects have to name a period that ends earlier than or at the reportingDate
* All end dates of risk object periods have to be the same and have to be a month's ultimo date

Reporting business logic

  • aggregation of figures / effects

  • detection of available periods in result

  • top n, filtering, sorting

Potential problems

  • As the ex-post figures are calculated on Aladdin side, no arbitrary periods are possible

...

Status

Status
colourGreen
titleImplemented

Usage & contents

used to produce

  • RA001, RA003

  • RA006..RA008

  • CO001 (some metrics)

Contents

  • Ex-ante portfolio level risk figures for a given date and predefined time horizons

  • This interface will include the previousely used interface PortfolioRiskDecompositions

Path

/portfolio/

riskexante

riskexpost

Parameters

portfolioId

string

The id of the portfolio (or consolidation) in the data source

reportingDate

string (date)

The date, the reporing is produced for.

Example call

/portfolio/

riskexante

riskexpost?portfolioId=E0002&reportingDate=2019-03-31

Response structure

If the API can fulfill the request (response status code 200 = OK) the response must follow the below json-schema.

Note
  • The request part of the response has to match the path and parameters used in the API call/request

  • The json schema currently excludes the schemas for dataVersioning (should be designed by CSAM) as well as segmentations (will be defined separately)

Schema

https://bitbucket.org/banknotes/ngr/src/df61b39d18a16581cd95aed9694991bbe39c5fb1/ngr-csamsolution/src/Model/schema/PortfolioRiskExAnte.schema.json?at=release%2Fcurrent

Error handling

If the request can't be fulfilled an appropriate response status code (4xx or 5xx) must be used. Possible errors could be

  • bad request structure → expected status = 400

  • portfolioId not found or reportingDate in future → expected status = 404

  • etc.

The body of the response should contain information about the reason of the error in plain text or as json object.

Schema

Example

Interface "PortfolioRiskExAnte"

Status

Status
colourGreen
titleimplemented

Usage & contents

used to produce cover overviews

Path

/portfolio/riskstatus

Usage & contents

used to produce

  • RA001, RA003

  • RA006..RA008

  • CO001 (some metrics)

Contents

  • Ex-ante portfolio level risk figures for a given date and predefined time horizons

  • This interface will include the previousely used interface PortfolioRiskDecompositions

Reporting business logic

  • aggregation of figures / effects

  • filtering, sorting

Consistency rules

The following rules should be adhered to by any response and will eventually be checked when consuming a response:

Consistency Rules
Code Block
languagejs
* All figures used within a risk object should be defined in the figures declaration
* All risk objects have the same referenceDate
* The referenceDate is not later than the reportingDate
* A model referenced in a risk object has to be declared under models
* Every effect used within a risk object has to be a declared effect of the referenced model
* Every effect declared within a model has to be also declared as figure
* All effects of a model having effectAggregation = sum should sum up to the value of the figure they explain

Reporting business logic

  • aggregation of figures / effects

  • filtering, sorting

Potential problems

Interface "PortfolioRiskStatus"

Path

/portfolio/riskexante

Parameters

portfolioId

string

The id of the portfolio (or consolidation) in the data source

reportingDate

string (date)

The date, the reporing is produced for.

Example call

/portfolio/

riskstatus

riskexante?portfolioId=E0002&reportingDate=2019-03-31

Response structure

Schema

https://bitbucket.org/banknotes/ngr/src/df61b39d18a16581cd95aed9694991bbe39c5fb1/ngr-csamsolution/src/Model/schema/PortfolioRiskStatus.schema.json?at=release%2Fcurrent

Error handling

  • If retrieving the risk status fails, an error is produced

  • If the retrieved risk status is none, the risk gauge is shown without any active segment

Parameters

  • portfolioId

  • reportingDate

Schema

Code Block
languagejs
"riskstatus": {
    "calcDate": "2019-03-31",
    "statusText": "moderate",
    "performanceHistoryMonths": 97,
    "SRRI": 3,
    "SRI": 2
}

where

  • calcDate and statusText are mandatory

  • any other attributes are only for data lineage reasons (not to be interpreted for reporting)

Example


Interface "PortfolioRiskStatus"

Usage & contents

used to produce risk status gauges on cover overviews

Reporting business logic

none

Consistency rules

  • Calculation date must not be newer than reporting date

Reporting business logic

none

Path

/portfolio/riskstatus

Example

Potential problems

call

/portfolio/riskstatus?portfolioId=E0002&reportingDate=2019-03-31

Parameters

  • portfolioId

  • reportingDate

Schema

Example