Views:

A reference list in LUSID is a repository of data that can contain:

A series of...For example, if you want to...
StringsStore a list of asset classes.
Portfolios or portfolio groupsStore a list of portfolios to exclude from a compliance rule.
InstrumentsStore a list of instruments to exclude from a particular compliance rule.
Address keysStore a list of instrument properties that should exist to pass a compliance check.
DecimalsStore a list of upper and lower bounds that an order should remain within.

All reference lists in LUSID have a scope and a code forming a unique ID. Currently, you can pass one or more reference list IDs into various LUSID compliance rules to ensure the rule checks against the values in the list. For example, you can:

  • Set up a compliance rule that checks orders do not comprise of instruments of a particular set of asset classes.
  • Set up a compliance rule that checks orders contain a list of required properties, such as the country of origin.
  • Specify a reference list of portfolios within a compliance rule to exclude those in the list from the rule.

You can also use reference lists for other LUSID operations, such as to specify a list of portfolios to create valuation reports for.

There are several ways to create reference lists in LUSID:

  • Use the APIs in the ReferenceLists collection to create your own reference lists and load them with data. See how to create a reference list.
  • Use the dashboard in the LUSID web app to create your own reference lists (coming soon).
  • Use dedicated Luminesce providers to create your own reference lists (coming soon).

How do I create a reference list?

Providing you are a LUSID user with sufficient privileges, you can create a reference list to store a collection of values.

  • Method 1: Using the LUSID REST API
  • Method 2: Using the LUSID web app (coming soon)
  • Method 3: Using the dedicated Luminesce provider (coming soon)

Using the LUSID REST API

Currently, you can create one reference list per API call.

  1. Obtain an API access token.
  2. Call the UpsertReferenceList API, passing in:
    • A scope and code that together uniquely identify the reference list.
    • A user-friendly name and optional description for the reference list.
    • Any tags for the reference list.
    • One referenceListType out of the following options, and an array of values to populate the reference list with:
      • PortfolioGroupIdList: takes in an array of scope and code pairs that uniquely identify portfolio groups.
      • PortfolioIdList: takes in an array of scope and code pairs that uniquely identify portfolios.
      • AddressKeyList: takes in an array of strings containing keys that uniquely identify a queryable address (such as a property or metric) in LUSID.
      • InstrumentList: takes in an array of strings containing instrument identifiers of any type.
      • StringList: takes in an array of strings.
      • DecimalList: takes in an array of doubles.

The following example creates (or updates if it already exists) a reference list of portfolios:

curl -X POST 
"https://<your-domain>.lusid.com/api/api/referencelists"
  -H "Content-Type: application/json-patch+json"
  -H "Authorization: Bearer <your-API-access-token>"
  -d "{
  "id": {
    "scope": "Finbourne-Examples",
    "code": "Uk-Portfolios"
  },
  "name": "UkPortfoliosReferenceList",
  "description": "Reference list containing the scope and code of all my UK portfolios",
  "tags": [
    "portfolio",
    "uk"
  ],
  "referenceList": {
    "values": [
      {
        "scope": "Finbourne-Examples",
        "code": "PortfolioUk"
      },
      {
        "scope": "Finbourne-Examples",
        "code": "Uk-Equities"
      }
    ],
    "referenceListType": "PortfolioIdList"
  }
}"

Once you have created a reference list, you could include the scope and code when creating a compliance rule to, for example, exclude the portfolios in the reference list from being checked by a particular rule.