Most entities in LUSID reside within a logical data partition known as a scope. A scope is an identity namespace allowing two entities with the same code to co-exist in individual address spaces. For most entities, therefore, the scope forms part of the unique identifier along with the code. See identifiers for all entities.
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.
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 |
Constructing a scope
A scope 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 before using it. When you specify a scope in a request to load data into LUSID it is automatically created for you if it does not exist.