Versions Compared

Key

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

...

Key Principles

Principle

Decision / Discussion

Status

Aggregation

  • The reporting engine should be flexible to aggregate attribution effects to derived segments

StatuscolourGreentitleSpecified

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)

StatuscolourGreentitleSpecified

Benchmark Data

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

StatuscolourGreentitleSpecified

Breakdown Segments & Sorting

  • should be included in the same manner as with Valuation

StatuscolourGreentitleSpecified

Models & Figures

  • the attribution model can be chosen / setup on

Aladdin
  • the Portfolio Management System 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 - Segmentations & Figures StatuscolourGreentitleSpecified
  • effects

Interface "PortfolioAttributions"

...

Status

...

Usage & Contents

  • used to produce attribution tables and charts CA001-CA004 and CA007

  • all available attributions for the portfolio calculated

    • over multiple periods

    • by multiple breakdowns / models

    • against multiple benchmarks

  • portfolio & segment level key figures (e.g. relative return, selection effect etc.)

Path

/portfolio/attributions

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/attributions?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 schema for dataVersioning (should be designed by CSAM)

  • Segmentations will be defined separately

Schema

https://bitbucket.org/banknotes/ngr/src/df61b39d18a16581cd95aed9694991bbe39c5fb1/ngr-csamsolution/src/Model/schema/PortfolioAttributions.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 from segments to derived segments for simple and weighted figures

  • aggregation of figures / measures

  • top n, filtering, sorting

  • build hierarchical view from segment data

  • translation of segment labels

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 an attribution object should be defined in the figures declaration
* A model referenced in an attribution object has to be declared under models
* Every effect used within an attribution object has to be a declared effect of the referenced model
* Every effect declared within a model has to be also declared as figure
* If the attribution has a segmentationId, it also has to deliver the breakdown
* All effects of a model having effectAggregation = sum should sum up to the value of the figure they explain
* All figure having an aggregationMethod = sum has to match the top level figure value when summing up the breakdown figure values 
* All attribution objects have to name a period that ends earlier than or at the reportingDate
* All end dates of attribution periods have to be the same and have to be a month's ultimo date
* All period's start dates have to be earlier than the end date

Later we will check against the segmentations request:

Code Block

* All segmentations referenced in attribution objects have to be declared within the response
* All segments used within the breakdown of an attribution object have to be declared as segments of the attributions segmentation

Reporting Business Logic

  • aggregation from segments to derived segments for simple and weighted figures

  • aggregation of figures / measures

  • top n, filtering, sorting

  • build hierarchical view from segment data

  • translation of segment labels

Potential Problems

Offering should be aligned to not confuse MWR-type contributions with contribution figures as part of attribution

Path

/portfolio/attributions

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/attributions?portfolioId=E0002&reportingDate=2019-03-31

Schema

Example