Skip to main content
Skip table of contents

2.3.9 private_equity_custom_benchmarks

Please note that this function is in beta stage. Function signature and parameters may change.

Purpose

To generate custom benchmarks based on an existing private equity index, with the option to modify the weightage of constituents by constraints. This function returns the computed index level and total returns in timeseries by default.

The computation may take a little longer if complex constraints are supplied, and/or the benchmark is based on an index containing large number of constituents.

Parameters

  • index_ticker (string, required):
    Ticker of the index to be used as a base reference. List of tickers can be obtained from 2.3.7 indices_catalogue.

  • start_date (date, optional):
    Start date of the benchmark. This date must be on or after than 2013-06-30.

  • end_date (date, optional):
    End date of the benchmark. This date may not be later than the latest release date.

  • currency (str, optional):
    The reporting currency.
    Supported currencies are: "EUR", "GBP", "LCU", "USD". Default value is "USD" if omitted.

  • constraints (list of EqualityConstraint, RangeConstraint or Constraint, optional):
    Constraints to be submitted. Please refer to the Constraints section below for more information.

  • initial_index_value (float, optional):
    Initial index pricing level. Default value is 1000.

  • allocations (bool, optional):
    Flag to indicate that the response shall include geography (country and region) and PECCS allocations. Default value is False.

  • risk_profiles (bool, optional):
    Flag to indicate that the response shall include risk profiles. Default value is False.
    Risk profiles include the following metrics:

    • Annualised Total Returns

    • Volatility

    • Maximum Drawdown

    • Sharpe Ratio

    • Value-at-Risk (97.5% and 99.5%)

  • include_constituents (bool, optional):
    Flag to indicate that the response shall include list of constituents. Default value is False.

Constraints

  • EqualityConstraint
    A constraint that sets a specific goal.

    • criteria (list of ColumnAndValue, required): List of filtering criteria.

    • target (float, required): Desired value for the criteria, represented as a percentage.
      Acceptable values include: 0 to 1, 0.5 represents 50%.

  • RangeConstraint
    A constraint that sets the goal to be within a value range.

    • criteria (list of ColumnAndValue, required): List of filtering criteria

    • lower (float, required): Lower bound of the target range, represented as a percentage.
      Acceptable values include: 0 to 1, 0.5 represents 50%.

    • upper (float, required): Upper bound of the target range, represented as a percentage.
      Acceptable values include: 0 to 1, 0.5 represents 50%.

  • ColumnAndValue

    • column (string, required): Name of the field.
      Supported values include: "CustomerModel", "Geography", "IndustrialClass", "IndustrialSubclass", "LifecyclePhase", "RevenueModel", "ValueChainType.

    • value (string, required): Value of the field to be filtered.
      Acceptable values differ from column to column:

      • CustomerModel: See 4.5 Customer Model for the complete definitions.
        Acceptable values include "CM01", "CM02".

      • Geography: Country/Region ISO codes. Supported values could be obtained by referencing 2.3.10 private_equity_region_tree .

      • IndustrialClass and IndustrialSubclass: See 4.2 Activity Classification for the complete definitions.
        Acceptable values include "AC01", "AC02".

      • LifecyclePhase: See 4.3 Lifecycle Phases for the complete definitions.
        Acceptable values include "LP01", "LP02".

      • RevenuModel: See 4.4 Revenue Model for the complete definitions.
        Acceptable values include "RM01", "RM02".

      • ValueChainType: See 4.6 Value Chain Types for the complete definitions.
        Acceptable values include "VC01", "VC02".

  • Constraint
    A wrapper for EqualityConstraint and RangeConstraint.

    • criteria (list of EqualityConstraint, RangeConstraint or Constraint, required): List of one or more constraints.

    • type (CriteriaAggregationType, optional): Operation to be applied to the list of criteria. Default value is constants.CriteriaAggretationType.AND.

    • start_date (date, optional): Effective date for the constraint. Default value would be the start date of the benchmark if left omitted.

Example

PY
import sipametrics.models.custom_benchmarks as custom_benchmark_models

constraint_1 = custom_benchmark_models.EqualityConstraint(
    criteria=[
      custom_benchmark_models.ColumnAndValue(column="Geography", value="AUS")
    ],
    target=0.4, 
)
constraint_2 = custom_benchmark_models.RangeConstraint(
    criteria=[
      custom_benchmark_models.ColumnAndValue(column="RevenueModel", value="RM02")
    ],
    lower=0.2,
    upper=0.5,
)
constraints = custom_benchmark_models.Constraint(
    criteria=[
      constraint_1, 
      constraint_2,
    ]
)

response = await service.private_equity_custom_benchmarks(
    index_ticker="PE2KBBBF",
    start_date=datetime.date(2014, 4, 30),
    end_date=datetime.date(2024, 3, 31),
    constraints=[constraints],
    # initial_index_value=1000.0,
    allocations=True,
    # risk_profiles=False,
    # include_constituents=False,
)

#Sample Response
#{
#    "data": {
#        "results": [
#            {
#                "metrics": [
#                    {
#                        "values": [
#                            {
#                                "valueDate": "2014-04-30",
#                                "value": 1000.0,
#                                "typeId": "T01414",
#                                "reportDate": "2025-03-31",
#                                "unitId": 1,
#                                "currencyId": 991
#                            },
#                            ...
#                            {
#                                "valueDate": "2019-04-30",
#                                "value": -0.005498885286291897,
#                                "typeId": "T02798",
#                                "reportDate": "2025-03-31",
#                                "unitId": 1,
#                                "currencyId": 991
#                            },      
#                            ... 
#                            {
#                                "valueDate": "2014-06-30",
#                                "value": {
#                                    "amr": 0.21405263535548216,
#                                    "asi": 0.18909634874669515,
#                                    "oce": 0.40209001390759547,
#                                    "eur": 0.19476100199023444
#                                },
#                                "typeId": "T02813",
#                                "reportDate": "2025-03-31",
#                                "unitId": 1,
#                                "currencyId": 991
#                            },    
#                            ...                                             
#                        ]
#                    }
#                ]
#            }
#        ]
#    },
#    "metadata": {
#        "datumCount": 1206
#    }
#}
JavaScript errors detected

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

If this problem persists, please contact our support.