Providing you have suitable access control permissions, you can create a derived transaction portfolio that is a live copy of an existing parent transaction portfolio.
Note: Once created, you can only change certain characteristics of a derived portfolio in some circumstances. If you ever need to delete the parent portfolio, you must first delete the derived portfolio.
To create a derived portfolio, you must specify a unique identifier, friendly name and the unique identifier of the parent portfolio. Other characteristics are inherited, but you can override the following if desired:
- Register one or more sub-holding keys (SHKs) in order to split holdings into categories. By default, LUSID generates one holding per instrument.
- Subscribe to a corporate action source containing corporate actions affecting instruments transacted in the portfolio.
- Change the default accounting method (average cost) and amortisation method (none).
- Add custom properties to store additional information about the portfolio not recorded by the standard set of data fields. These properties must be from the
Portfolio
domain.
Note: While it is possible to change the inherited creation date and instrument scope of a derived portfolio, this is not recommended.
To examine the complete set of data fields for a derived portfolio, examine the API documentation. Note that to subsequently interact you can use the APIs in the Portfolios and Transaction Portfolios collections as well as the Derived Transaction Portfolios collection.
There are several ways to create a derived portfolio:
- Using the LUSID REST API
- Using the LUSID web app
- If you have a Luminesce license, by writing a SQL query.
Using the LUSID REST API
- Obtain an API access token.
- Call the LUSID CreateDerivedPortfolio API for your LUSID domain, passing in your API access token, nominating a
scope
in the URL, and specifying in the request body:- A
displayName
. - A
code
unique within thescope
. - The
scope
andcode
of the parent portfolio.
For example, to create a derived portfolio in
myexamplederivedscope
(highlighted in red in the URL; this is created if it does not exist):curl -X POST "https://<your-domain>.lusid.com/api/api/derivedtransactionportfolios/myexamplederivedscope" -H "Authorization: Bearer <your-API-access-token>" -H "Content-Type: application/json-patch+json" -d '{ "displayName": "Example derived transaction portfolio", "code": "Growth", "parentPortfolioId": { "scope": "myexamplescope", "code": "Income" } }'
Providing the request is successful, the response lists the inherited values applied to other data fields. Note the identifier for the derived portfolio entity consists of the
scope
andcode
(highlighted in red):{ "id": { "scope": "myexamplederivedscope", "code": "Growth" }, "type": "DerivedTransaction", "displayName": "Example derived transaction portfolio", "created": "2022-01-01T00:00:00.0000000+00:00", "parentPortfolioId": { "scope": "myexamplescope", "code": "Income" }, "version": { "effectiveFrom": "2022-01-01T00:00:00.0000000+00:00", "asAtDate": "2022-10-14T15:42:29.7166460+00:00" }, "isDerived": true, "baseCurrency": "GBP", "instrumentScopes": [], "accountingMethod": "Default", "amortisationMethod": "NoAmortisation", }
- A
Using the LUSID web app
- Sign in to the LUSID web app using the credentials of a LUSID administrator.
- From the top left menu, select Data Management > Portfolios.
- Find the transaction portfolio you want to derive from and select Create derived portfolio from the menu at the end of the row:
- On the Basic data screen of the Create Derived Portfolio dialog, specify a Scope and Code:
- Override the other inherited characteristics of the parent portfolio if desired and click the Create button on the Property constraints screen.