Document toolboxDocument toolbox

Business Logic (Features)

Goals

  • Re-usable reporting aggregation logic (Top-N, rest, sorting, grouping)

  • Translations & formatting of data

Cinnamon Features

Feature

Description

Examples

Feature

Description

Examples

Dates & Periods

In reporting, the determination of periods and subperiods from dates and parameters is important.

  • generate subperiods given by period lenght and frequency

  • aligning subperiods with month- / quarter- / year-ends

 

Aggregation of Figures

Aggregation of figures along segmentations (breakdowns) from detailed data on position-level up to segments as well as portfolio level. Aggregation methods supported are

  • none: figures can't be aggregated

  • sum: figures that can be simply aggregated by summing up (e.g. market value)

  • weightedAvg: aggregation by the the weighted average regarding a provided weight (e.g. for figures like modified duration)

 

Portfolio (Cover) Figures

  • Flexible definition of portfolio-level figures from masterdata, valuations or returns.

 

Formula Figures

  • Dynamically calculated figures that can have a specific aggregation method

weightedAverageCarbonIntensityESGRated: { aggregationMethod: "weightedAvg", formula: "(p.segments['MSCI_ESG_RATING'] !== undefined && p.segments['MSCI_ESG_RATING'] !== 'Not Rated') ? weightedAverageCarbonIntensity : undefined", weightFormula: "weightedAverageCarbonIntensity.aggregationWeight" }

Return calculations

  • Generating returns from of indexed values (by division index_end / index_start)

  • Calculation of relative returns (typically calculated as ptf_return - bm_return)

  • Calculation of rolling returns (incl. interpolation of index values for non-available exact day data)

 

Performance Analysis

  • If your core banking or portfolio management system is not capable to deliver the required performance analysis we support

    • multi-period contributions (Frongello, Cariño, etc.)

    • performance attribution (Brinson-Fachler etc.)

    • ex-post risk figures (traynor ratio, information ratio, tracking error, volatility, max drawdown etc.)

 

Segmentations

Next to the (base) segmentations delivered by a data source, Cinnamon supports the definition of derived segmentations that are used to generate the optimal structure of a dimensions for a visualisation (e.g. table or chart). Segmentations support

  • Grouping of (base) segments into a more coarse segment definition by either using a simple list of segments or by using predicates (e.g. 'assetClass = Bonds && currency = CHF')

  • Sorting/ordering of segments by a fixed order or ascending/descending by a measure/figure

  • Selection of segments for the output by

    • defining segments as mandatory

    • defining the maximum number of segments (for Top-N/Bottom-N)

    • building of "Others" segment

  • Adding translations for any new segment

 

Filtering

  • Filtering of data uses the powerful features of segmentations

  • Filtering is used to e.g. analyse allocations only for bonds or equities in a portfolio

 

Translation

  • Definition of arbitrary number of languages

  • Dictionary to provide translations for labels used in reporting.

  • Support for arguments that can be positioned inside a translation (e.g. “Total assets in {1}” where “{1}” will be replaced with the portfolio’s currency code)

  • Areas covered

    • Segmentations

    • Titles for sections, building blocks etc.

    • Longer texts (that are not maintained in Content Management)

    • Figure titles used in tables and charts

    • etc.

Dictionary entry in multiple languages allowing to be parametrized with data

 

Formatting

  • Solution-specific support for formatting

  • Support for localization (e.g. locale de-CH to translate and format specifically for Swiss german reports)

  • Standard formatting support for pre-defined value types

    • absolute and relative returns

    • market values and p&l figures

    • dates and periods