Every entity in LUSID must have at least one unique identifier.
Most entities in LUSID are identified by a scope and a code. The code must be unique within the scope. A scope is therefore a logical partition enabling two entities with the same code to co-exist in individual address spaces.
Note: LUSID has a built-in default (or system) scope that can store entities of certain types such as instruments, transaction types and transaction templates. More information.
This concept enables you to load multiple copies of what is logically the same data, compare them, safely modify them as required and entitle people to see only what they need to. For example, quotes from different vendors can be uploaded into different scopes such as Refinitiv and Bloomberg, and a portfolio can then be valued using either of the price sources by referencing the appropriate scope.
Scopes can be used in a number of ways:
To model organisational departments in your company.
To act as entitlement boundaries (users can be granted or denied permission to read/write all portfolios in a given scope).
To allow for a personal folder or research area for every user (and entitle only them to write to it as a side benefit).
To allow for multiple providers of the same piece of information. For instance, one portfolio could be provided by your (scopes in bold):
Fund Accountant [FA/myPortfolio]
Custodian [Cust/myPortfolio]
Middle Office [MO/myPortfolio]
Transfer Agent [TA/myPortfolio]
my own copy [dave/myPortfolio]
There are many more uses for scopes including the safe provision of a UAT environment in your production system. If you have any further questions, get in touch.
Allowed characters in a scope/code
A scope/code must be no more than 64 characters in length and consist entirely of the following characters:
Lowercase and uppercase letters
Numbers
Dash (
-
)Underscore (
_
)
Note that there is no need to create a scope/code before using it. They are automatically created for you when you supply this information in a request to load data into LUSID.
Fallback behaviour for hierarchies of scopes
Entities of certain types can be stored in the built-in default
scope provided with LUSID. It is also possible to store entities of these types in a custom (that is, user-defined) scope. In some circumstances, LUSID first searches a custom scope for a particuar target entity and, if it cannot be located, falls back to searching the default
scope:
Entity type | Falls back? | Explanation |
---|---|---|
Instrument | YES | When resolving a transaction to an instrument, LUSID first searches a custom instrument scope registered with the containing portfolio before falling back to the |
Transaction type | NO | When resolving a transaction to a transaction type, LUSID searches a custom transaction type scope if one is registered with the containing portfolio. It does not fall back to searching the |
Transaction template | YES | When resolving an instrument event to a transaction template, LUSID first searches a custom transaction template scope if one is registered with the containing portfolio before falling back to the |