When mastering certain types of instrument in LUSID, you must specify rules for payments arising during the lifetime of those instruments:
A flow convention determines the date schedule for a leg or set of cashflows. This is represented in LUSID by a
FlowConventions
object.A CDS flow convention determines the date schedule for instruments of type
CreditDefaultSwap
andCdsIndex
. This is represented in LUSID by aCdsFlowConventions
object that is similar, though not identical, toFlowConventions
.An index convention derives the calculation of payments from interbank lending rates and similar. This is represented in LUSID by an
IndexConvention
object.An inflation index convention derives the calculation of payments from an index such as UKRPI. This is represented in LUSID by an
InflationIndexConventions
object.
Instrument type (see all) | Flow convention | CDS flow convention | Index convention | Inflation index convention | |
| YES | N/A | N/A | N/A | |
| Fixed schedule | YES | N/A | N/A | N/A |
FX rate schedule | YES | N/A | N/A | N/A | |
Floating schedule | YES | N/A | YES | N/A | |
| YES | N/A | N/A | YES | |
| YES | N/A | YES | N/A | |
| N/A | YES | N/A | N/A | |
| N/A | YES | N/A | N/A | |
| Equity leg | YES | N/A | N/A | N/A |
Interest-paying leg | YES | N/A | YES | N/A | |
| N/A | N/A | YES (optional) | N/A | |
| YES | N/A | YES (optional) | N/A | |
| YES | N/A | N/A | Coming soon | |
| YES | N/A | YES | N/A | |
| YES | N/A | N/A | N/A |
Understanding convention objects
Object | Documentation | Extra notes |
| For information on the tenors accepted by the For information on the day count methodologies supported by the For information on the business day and roll conventions supported by the The | |
| ||
| The For information on the tenors accepted by the For information on the day count methodologies supported by the | |
| For information on the format of tenors accepted by the |
Specifying convention objects inline
For any instrument that requires a flow convention and/or an index convention, you can specify the object ‘inline’ within the economic definition; that is, create a bespoke convention object at the same time as you master that instrument.
Consider the following example of a call to the UpsertInstruments API to master a floating schedule complex bond:
curl -X POST "https://<your-domain>.lusid.com/api/api/instruments"
-H "Authorization: Bearer <your-API-access-token>"
-H "Content-Type: application/json"
-d '{ "bond-upsert-1": {
"name": "NWG 3 1/8 03/28/27",
"identifiers": {"ClientInternal": {"value": "XS1970533219"}},
"definition": {
"instrumentType": "ComplexBond",
"schedules": [
{
"scheduleType": "Float",
"startDate": "2026-03-28T00:00:00+00:00",
"maturityDate": "2027-03-28T00:00:00+00:00",
"flowConventions": {
"currency": "GBP",
"paymentFrequency": "12M",
"dayCountConvention": "ActActIcma",
"rollConvention": "None",
"paymentCalendars": ["GBP","LON"],
"resetCalendars": ["GBP","LON"],
"settleDays": 2,
"resetDays": 2,
"leapDaysIncluded": true
},
"notional": 1000000.0,
"paymentCurrency": "GBP",
"stubType": "ShortFront",
"spread": "0.0",
"indexConventions": {
"currency": "GBP",
"code": "GBP1YSWO",
"paymentTenor": "12M",
"dayCountConvention": "ActActIcma",
"fixingReference": "GBP1YSWO",
"publicationDayLag": 0,
"IndexName": "GBP1YSWO"
}
}
]
}
}
}'