Optional Performance Report Settings

The settings described on this page provide additional control over how performance data is calculated and presented. All settings are optional; when omitted, the related data is not included in reports.

Overview

SettingPurposeEndpoint
HouseholdsGroup accounts for consolidated reporting/v2/reporting/households
Index DataLook up indexes for use in benchmarks/v2/data/idc/indexes
BenchmarksCompare performance against custom benchmarks/v2/reporting/benchmarks
Classification TagsDefine custom asset class labels/v2/reporting/class-tags
Asset ClassificationsAssign securities to custom asset classes/v2/reporting/asset-classifications
Target AllocationsCompare actual allocations against a model/v2/reporting/target-allocations
PDF Report OptionsAdjust calculations, layout, logo, and disclosures for a PDF report/v2/reporting/printable-reports/create

Setup Order

Some settings depend on others. Configure them in the following order:

  1. Index Data → Benchmarks. Each benchmark component references an index.
  2. Benchmarks → Accounts and Households. Benchmarks are assigned through the benchmarks_ids field.
  3. Classification Tags → Asset Classifications and Target Allocations. A tag must exist before it can be referenced.
  4. Target Allocations → Accounts. Target allocations are assigned through the target_allocation_id field.

Report Sections Affected

SettingReport sections
HouseholdsHousehold summary, household performance attribution, consolidated reporting
BenchmarksAccount summary, benchmark performance summary, consolidated summary, performance chart, risk/return chart
Classification Tags and Asset ClassificationsAsset allocation and top holdings, appraisals by classification
Target AllocationsTarget vs. actual allocation

Households

A household groups related accounts, such as those belonging to a single family, so that performance can be reported on a consolidated basis. To run a consolidated report, provide a household_id in place of an account_id.

A household's inception date is the earliest inception date among its accounts.

FieldTypeDescription
namestringName of the household.
firm_idintegerID of the owning firm.
benchmarks_idsinteger[]IDs of the benchmarks assigned to the household.

Endpoints: Create a Household · Assign Accounts to Households · Update a Household · List all Households


Index Data

Index Data provides read-only access to the market indexes available for building benchmarks. Use an index's id as the index_id when defining a benchmark component.

FieldTypeDescription
idintegerUnique ID of the index.
namestringName of the index.
symbolstringSymbol of the index.
cusipstringCUSIP of the index.

Endpoints: List all IDC Indexes · Filter all IDC Indexes · Retrieve an IDC Index


Benchmarks

A benchmark is a reference point against which portfolio performance is measured. A benchmark may track a single index or a weighted blend of several indexes. Benchmark returns are calculated using the same methodology as account returns, allowing for a like-for-like comparison.

FieldTypeDescription
namestringName of the benchmark.
slugstringURL-friendly version of the name.
coefficientsarrayIndex components of the benchmark.
coefficients[].benchmark_idintegerID of the benchmark the component belongs to.
coefficients[].index_idintegerID of the index. See Index Data.
coefficients[].weightnumberWeight of the component, on a percentage scale (0.0 to 100.0).

A benchmark is created with its name and slug; its components are then added with Update a Benchmark. See the example below.

Endpoints: Create a Benchmark · Update a Benchmark · List all Benchmarks · Filter all Benchmarks


Classification Tags

By default, securities are reported under the master asset class provided by the custodian. Classification tags let your firm define its own asset class labels, such as "Tech Stock" or "Alternatives," which can then be applied to securities. A single tag may be applied to any number of securities.

FieldTypeDescription
namestringName of the classification tag.
firm_idintegerID of the owning firm.

Endpoints: Create a Classification Tag · Update a Classification Tag · List all Classification Tags


Asset Classifications

An asset classification assigns a security to a classification tag, replacing the custodian's default classification in reports. Each security may have only one asset classification at a time.

Asset classifications apply to reporting only. The custodian securities endpoint (/v2/data/custodian/securities) continues to return the custodian's original classification.

FieldTypeDescription
security_idintegerID of the security.
class_tag_idintegerID of the classification tag.
firm_idintegerID of the owning firm.

Example: classifying Apple (AAPL, security ID 62) under a "Tech Stock" tag (ID 188):

{
  "firm_id": 39,
  "security_id": 62,
  "class_tag_id": 188
}

For more detail, see Asset Classification Overlay.

Endpoints: Create an Asset Classification · Bulk Update Asset Classifications · Filter all Asset Classifications


Target Allocations

A target allocation defines the intended weighting of a portfolio across asset classes. Reports compare an account's actual allocation against its target and display the drift between the two.

Tolerances define the acceptable drift for each component as a percentage of its target weight. For example, a tolerance of 5 on a 40% target allows an actual weight between 38% and 42%.

FieldTypeDescription
namestringName of the target allocation.
slugstringURL-friendly version of the name.
coefficientsarrayAsset class components of the target allocation.
coefficients[].macstringMaster asset class code. See the Data Dictionary.
coefficients[].class_tag_idinteger | nullID of a classification tag.
coefficients[].weightnumberTarget weight of the component.
coefficients[].negative_tolerancenumberAllowable underweight, as a percentage of the target weight.
coefficients[].positive_tolerancenumberAllowable overweight, as a percentage of the target weight.

Each component is typically defined by either a master asset class (mac) or a classification tag (class_tag_id), though both may be used together.

{
  "firm_id": 39,
  "name": "Conservative",
  "slug": "conservative",
  "coefficients": [
    { "mac": "EQ", "weight": 40, "negative_tolerance": 5, "positive_tolerance": 5 },
    { "mac": "DT", "weight": 60, "negative_tolerance": 5, "positive_tolerance": 5 }
  ]
}

Endpoints: Create a Target Allocation · Update a Target Allocation · List all Target Allocations


Assigning Settings

Benchmarks and target allocations take effect once they are assigned to an account or household.

SettingAccount fieldHousehold field
Benchmarksbenchmarks_idsbenchmarks_ids
Target Allocationtarget_allocation_idNot supported

Important: Update an Account requires the complete account object. Retrieve the account, modify the relevant field, and send the full object back. Omitting fields may overwrite existing account data.

Bulk Operations

Each setting supports bulk endpoints, such as Create Many and Bulk Update. Use these when configuring a large number of records.


PDF Report Options

The following options are included in the request body of Start a PDF Report Job (POST /v2/reporting/printable-reports/create). They apply only to the report being generated.

Calculation and Display Options

FieldTypeDescription
irr_performancebooleanCalculates performance using internal rate of return (IRR) instead of time-weighted return (TWR).
gross_fee_performancebooleanReports performance gross of fees instead of net of fees.
non_inception_performance_chartbooleanPlots the performance chart for the report period (PTD) instead of since inception (ITD).
portrait_pdf_orientationbooleanRenders the PDF in portrait orientation instead of landscape.
exclude_portfolio_performance_summarybooleanOmits the Portfolio Performance Summary section from the Asset Allocation and Performance Summary report.

All options default to false.

Settings Overrides

The settings_overrides object replaces your firm's default logo and disclosures for the report being generated.

FieldTypeDescription
logo_settings.logostringBase64-encoded PNG or JPEG image to display on the report.
logo_settings.logo_mime_typestringImage type of the logo: image/png or image/jpeg.
disclosuresstringDisclosure text displayed at the end of the report. HTML may be used for formatting.

Example request body:

{
  "account_ids": [1],
  "start_date": "2026-01-01",
  "end_date": "2026-09-30",
  "sub_reports": ["account_summary", "performance_summary", "performance_chart"],
  "gross_fee_performance": true,
  "portrait_pdf_orientation": true,
  "settings_overrides": {
    "logo_settings": {
      "logo": "iVBORw0KGgoAAAANSUhEUgAA...",
      "logo_mime_type": "image/jpeg"
    },
    "disclosures": "<p>Past performance is not indicative of future results.</p>"
  }
}

Example: Setting Up a Custom Benchmark

This example creates a 60/40 blended benchmark and assigns it to an account.

1. Find the index IDs

Use Filter all IDC Indexes to locate each index and note its id. The IDs in this example (101, 202, and 500) are placeholders; replace them with your own.

2. Create the benchmark

POST /v2/reporting/benchmarks

{
  "firm_id": 39,
  "name": "60/40 Blend",
  "slug": "60-40-blend"
}

The response returns the benchmark's id, for example 500.

3. Add the index components

PUT /v2/reporting/benchmarks/500

{
  "id": 500,
  "firm_id": 39,
  "name": "60/40 Blend",
  "slug": "60-40-blend",
  "coefficients": [
    { "benchmark_id": 500, "index_id": 101, "weight": 60 },
    { "benchmark_id": 500, "index_id": 202, "weight": 40 }
  ]
}

Each coefficient must include the benchmark_id. Coefficient IDs are assigned by the API and do not need to be provided.

4. Assign the benchmark to an account

Retrieve the account, add 500 to its benchmarks_ids, and send the complete account object to PUT /v2/account-management/accounts/{id}.

5. Run a report

Reports for the account now include the 60/40 Blend in benchmark-related sections. See the Reporting Engine APIs Guide for details on running reports.


Related Guides


Did this page help you?