Rather than having a strictly defined data model, LUSID makes use of an extensible data model which allows you to define custom attributes which are important to your use case.

One of the main benefits of an extensible data model is that there is only a very small set of required fields that you have to map your existing data into. You can then create your own bespoke schema/s for each entity e.g. instrument allowing you to connect your existing systems into LUSID without having to undergo a painful mapping and transformation exercise.

To better understand how this works, you can think of most entities in LUSID e.g. transactionsholdingsportfoliosinstruments as being composed of the following three parts.

1. Required Attributes

These are attributes which are absolutely required to make any sense of an entity. For example an instrument must have a "name" and at least one unique "identifier" e.g. FIGI. These are marked with a "Required" tag in the API documentation. An entity can not be created without these required attributes.

2. Optional Attributes

These are attributes which have a defined meaning but are not strictly necessary for an entity to exist. For example a more complex non-exchange traded instrument may have a "definition" associated with it or if it is an index it may have a "lookThroughPortfolioId" attached which links to the underlying securities. These attributes do not have a "Required" tag next to them in the API documentation. An entity can be created and used without these optional attributes.

3. Properties

In addition to the pre-defined required and optional attributes on an entity there are likely a large number of additional attributes associated with an entity that are important to you. Rather than trying to exhaustively list all of these as Optional Attributes out of the box you can instead populate your own bespoke attributes through what is known as a Property by creating a custom Property Definition. For example you may want to attach a CreditRating to an instrument. You can also add your own validation to these properties to ensure that they are only populated with allowed values. 

You also have the ability to individually entitle each property, allowing users to only see certain attributes on an entity. For example you can segregate sensitive data such as "Trader passport number" and make it only available to users that require this information for a task such as MiFID reporting. To learn more about LUSID's Identity and Access Managment system, click here.