AUM Analytics

WealthTech API platform provides a set of APIs to conduct various analytics about Assets Under Management (AUM), Households and Accounts Performance, Benchmark Performance. These APIs meant to support you in building company or portfolio wide visual analytics features such as charts, widgets and dashboards in your application.

Using our AUM Analytics API you can easily build a comprehensive and user friendly visualizations, similar to these:

How is AUM Calculated in BridgeFT?

AUM Analytics API allows to retrieve the information about assets under management with a different levels of detail: firm-wide, for households and for accounts.

Firm's AUM is calculated as a cumulative balances value of all accounts belonging to the firm. Household's AUM is calculated as a cumulative balances value of all accounts belonging to the household. And Account's AUM is generally the value of the selected account’s balance.

We use custodial Source Data for accounts balances records and then aggregate it on a different levels. Thus if you wish to perform AUM calculation on your side and do not use our AUM Analytics API, you are able to do so using our source custodial data from Source Account Balances API providing accounts IDs or any other required filters and looking at the total_value_reported field in the response. But if this field is empty, means that this data is not provided by the custodian, please address to total_value field which we aggregate and populate from source positions. Having this data you can implement your own AUM calculations to support other nontrivial use cases.

AUM API Overview and Examples of Use

MethodEndpoint URLDescription
GETv2/analytics/aumReturns a list of all firm-wide AUM records that have been calculated over-time. Firm-wide AUM is calculated by BridgeFT daily, stored as a resource and accessible over this API endpoint. This enables consumers to view firm AUM as a daily and monthly time-series.
POST/v2/analytics/aum/filterReturns a list of all firm-wide AUM records that have been calculated over-time. Firm-wide AUM is calculated by BridgeFT daily, stored as a resource and accessible over this API endpoint. This endpoint allows to view firm AUM filtered by various parameters (as of date, frequency and AUM value) provided in the request body.
POST/v2/analytics/aum/by-accountReturns AUM records for requested Account(s) on a selected date. Provide a list of account_ids and receive the assets under management value for each account.
POST/v2/analytics/aum/by-householdReturns AUM records for requested Household(s) on a selected date. Provide a list of household_ids and receive the assets under management value for each household.

Getting firm-wide AUM

The most basic case is when you may want to get your firm’s AUMs by time periods to see its dynamic over the time. Firm AUM Records endpoint returns daily and monthly AUMs values and also allows to paginate through all AUM records calculated since the begging of your firm’s data coming to BridgeFT. There is no limitation on a date range within what you are able to get AUM records.

Try out the below example to get all AUMs for your firm:

Request

curl --location --request GET 'https://api.bridgeft.com/v2/analytics/aum' \
--header 'Authorization: Bearer {YOUR_TOKEN}' 

Response

{
   "current_page": 1,
   "data": [
       {
           "as_of_date": "1999-12-31T00:00:00Z",
           "firm_id": 39,
           "frequency": "D",
           "id": 383318435,
           "object": "analytics.aum",
           "total": 3000
       },
               {
           "as_of_date": "2000-01-01T00:00:00Z",
           "firm_id": 39,
           "frequency": "D",
           "id": 383318436,
           "object": "analytics.aum",
           "total": 3000
       },
       ...,
       {
         "as_of_date": "2023-07-27T00:00:00Z",
         "firm_id": 39,
         "frequency": "D",
         "id": 384381148,
         "object": "analytics.aum",
         "total": 245324.26
     }
 ],
 "has_next": false,
 "has_previous": false,
 "object": "list",
 "orient": "row",
 "page_size_limit": 10000,
 "total_items": 8893,
 "total_pages": 1
}

Getting firm-wide Filtered AUM

In the more complex cases when it’s required to get AUM for a set of criteria's the Filter Firm AUM Records endpoint allows to query the information by the following parameters: firm_id, as_of_date , frequency and total (AUM value). This endpoint requires a POST request made with a filtering parameters sent in the request body.

Below is an example how to get firm-wide AUM records for the requested date range and with a monthly frequency:

Request

curl --location --request POST 'https://api.bridgeft.com/v2/analytics/aum/filter' \
--header 'Authorization: Bearer {YOUR_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "as_of_date": {
       "any_or_all": "all",
       "conditions": [
           {
               "value": "2023-06-01",
               "op": "gte"
           }, 
           {
               "value": "2023-12-01",
               "op": "lte"
           }
       ]
   },
   "frequency": "M"
}'

Response

{
    "current_page": 1,
    "data": [
        {
            "as_of_date": "2023-06-01T00:00:00Z",
            "firm_id": 39,
            "frequency": "M",
            "id": 384306890,
            "object": "analytics.aum",
            "total": 200042662.52
        },
        {
            "as_of_date": "2023-07-01T00:00:00Z",
            "firm_id": 39,
            "frequency": "M",
            "id": 384306891,
            "object": "analytics.aum",
            "total": 202130723.06
        },
        ..., 
        {
            "as_of_date": "2023-12-01T00:00:00Z",
            "firm_id": 39,
            "frequency": "M",
            "id": 384306919,
            "object": "analytics.aum",
            "total": 208329027.75
        }
    ],
    "has_next": false,
    "has_previous": false,
    "object": "list",
    "orient": "row",
    "page_size_limit": 10000,
    "total_items": 30,
    "total_pages": 1
}

Getting AUM for Accounts

In order to retrieve AUM not just for the entire company but for a specific account(s) you have to provide the list of account_ids in the request body, as well as as_of_date when the AUM has been calculated. Both of these input fields are required to be provided in the Account AUM endpoint request.

Request

curl --location --request POST 'https://api.bridgeft.com/v2/analytics/aum/by-account' \
--header 'Authorization: Bearer {YOUR_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "as_of_date": "2023-07-17",
    "account_ids": [
        123456,
        123457,
        123458
    ]
}'

Response

{
  "as_of_date": "2023-07-17",
  "values": [
    {
      "account_id": 123456,
      "aum": 10000.00
    },
    {
      "account_id": 123457,
      "aum": 10000.00
    },
    {
      "account_id": 123458,
      "aum": 10000.00
    },
  ],
  "total_aum": 30000.00
}

Getting AUM for Households

Similarly to requesting AUM by accounts, Household AUM endpoint requires household_ids to be provided as an input instead of account_ids, as well as as_of_date in the request body.

Request

curl --location --request POST 'https://api.bridgeft.com/v2/analytics/aum/by-household' \
--header 'Authorization: Bearer {YOUR_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "as_of_date": "2023-07-17",
    "household_ids": [
      123476,
      123477,
      123478
    ]
}'

Response

{
  "as_of_date": "2023-07-17",
  "values": [
    {
      "household_id": 123476,
      "aum": 10000.00
    },
    {
      "household_id": 123477,
      "aum": 10000.00
    },
    {
      "household_id": 123478,
      "aum": 10000.00
    },
    "total_aum": 30000.00
}

Errors Handling

There are couple of exceptional cases you may face while using the AUM Analytics API. Let’s see when they can happen and how to manage them.

1. Receiving Zero AUM value

If AUM is being requested for an account or household that we are no longer receiving source data from the custodian for, the AUM value with be marked with a value of 0.00 in the response:

{
    "as_of_date": "2023-07-26",
    "total_aum": 0,
    "values": [
        {
            "id": 301421,
            "aum": 0.00
        }
    ]
}

Our suggestion in this situation is to check if the account or accounts in the household are still active and confirm with the custodian that the data for these accounts are provided to BridgeFT.

2. Receiving Bad Request error

If required parameters aren’t provided in the request, a validation error will occur.

Code: 400 Bad Request

Response

{
    "message": "Invalid object or filter. See https://docs.bridgeft.com/reference",
    "validation_errors": [
        "account_ids is required"
    ]
}

Please make sure all required parameters (marked as *required in the API reference documentation) are provided in your requests.