Reporting entities

Reporting entities are how a client wants to see their wealth, as opposed to how it's legally structured. A generation's trust may legally hold a dozen accounts across five custodians, but the family looks at it as three buckets — liquid, alternatives, operating businesses. That projection is a reporting entity, and it's where consolidated holdings, transactions, and performance are computed.

Why a separate structure?

Legal structure is messy. It exists for tax reasons, succession reasons, and historical reasons — none of which map cleanly to how a family reviews their quarterly returns. Rather than force the reporting view onto the legal tree (and break it every time a new vehicle is set up), Aleta keeps them separate and lets clients compose portfolios freely across the legal tree.

Every endpoint in the Data group (holdings, transactions, performance) operates against reporting entities. You never ask "what does this trust hold" in production — you ask "what does this reporting bucket hold" and the platform does the rollup.

Data model

Reporting Entity

  • Name
    id
    Type
    string
    Description

    Stable identifier, scoped to the parent client.

  • Name
    client_id
    Type
    string
    Description

    The client this reporting entity belongs to.

  • Name
    name
    Type
    string
    Description

    Human-readable label shown in dashboards and reports.

  • Name
    parent_reporting_entity_id
    Type
    string | null
    Description

    Reporting entities form a tree of their own. Aggregation rolls up the tree just like legal entities do.

Portfolio

A portfolio is a container inside a reporting entity. It groups a subset of accounts (potentially spanning legal entities) under a named bucket.

  • Name
    id
    Type
    string
    Description

    Stable identifier.

  • Name
    reporting_entity_id
    Type
    string
    Description

    The reporting entity this portfolio belongs to.

  • Name
    name
    Type
    string
    Description

    Display label. Examples: "Liquid — Equities," "Private Markets — 2024 vintage," "Operating businesses."

  • Name
    account_ids
    Type
    array of strings
    Description

    The accounts that roll up into this portfolio. An account can belong to multiple portfolios (e.g. a "Total liquid" view and a "Equities only" view both include the same brokerage account).


GET/v2/clients/{id}/reporting-entities

List reporting entities

Returns every reporting entity configured for the client, flat. Reconstruct the tree from parent_reporting_entity_id on the client side, or pass tree=true for a pre-assembled nested response.

Request

GET
/v2/clients/{id}/reporting-entities
curl https://api.aleta.io/v2/clients/{client_id}/reporting-entities \
  -H "Authorization: Bearer {token}"

GET/v2/reporting-entities/{id}/portfolios

List portfolios in a reporting entity

Useful when you want to drill into a specific reporting bucket rather than pull the full tree.

Request

GET
/v2/reporting-entities/{id}/portfolios
curl https://api.aleta.io/v2/reporting-entities/{id}/portfolios \
  -H "Authorization: Bearer {token}"