Skip to main content
Skip table of contents

Working with Segmentations


Segmentations are used to generate the optimal structure for a visualisation (e.g. table or chart) by defining how data will be aggregated. Segmentations are a part of the reporting business logic (see Business Logic (Concepts Guide)).

This page describes the features of a segmentation. See also Best practices to use Segmentation for a more in depth discussion about how to use segmentations.

Types of segmentations



Base Segmentation

Base segmentations like currency, country, asset class are typically delivered by the source systems (e.g. a portfolio management system) and are described by a source API segmentations delivering

  • the native order of the segments

  • the structure of a multi-level segmentation (tree)

Derived Segmentations

In reporting we typically don’t want to list all currencies invested but a rather more optimised break down to populate a table or chart., e.g. CHF, USD + next 3 largest currencies + a rest segment (aggregating all other currencies).

Derived segmentations allow features like grouping, ordering, selection of segments on top of base segmentations or even other derived segmentations.

  • mostly stored, reuse them by name

  • create ad-hoc by modifiers (segmentationId<6)

The Segmentation Editor

To create or modify a derived segmentation, the Segmentation Editor can be used. The UI is organised into the following sections:

Listing of segmentations

The list of segmentations allows to

  • search for segmentations

  • upload a segmentation from a json file

  • create a new segmentation

  • filter for drafts or published segmentations

  • on a segmentation (icons appear when hovering):

    • duplicate/export/delete a published segmentation

    • publish/export/revert a draft segmentation

Header and Settings

  • label for translation will always be segmentation_segmentationId

Segments (Grouping)

  • create and define segments

  • label for translation will always be segment_segmentId$

rule language

  • “in”

  • use normal javascript logic (!, &&, || )


rule language

Alternatively to an include list, a segment can be defined by a rule (just toggle the type). A rule has a priority (number) and a filterPredicate:

Supported syntax for filterPredicate:

  • Javascript logic (!, &&, ||)

  • in can be used for checking array members, e.g. "'foo' in ['foo','bar']" evaluates to true

  • Segmentations are available like this: "filterPredicate": "OVERALL_CONTROVERSY_FLAG in ['Green']"

  • figures are available like this: "filterPredicate": "mktValuePflCcy > 100000"

  • there is a pure js mode in filter predicates: "filterPredicate": "pure(p.details.isin === 'LU2479964202')"

    • p is just e.g. the valuation of the portfolio

    • within pure(..) all javascript is possible

    • only use this if you know what you are doing

Rest Segment

  • define a rest segment


  • define the order (sorting) of segments


  • define segments to be mandatory

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.