Views:

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 and CdsIndex. This is represented in LUSID by a CdsFlowConventions object that is similar, though not identical, to FlowConventions.
  • 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 conventionCDS flow conventionIndex conventionInflation index convention
BondYESN/AN/AN/A
ComplexBondFixed scheduleYESN/AN/AN/A
FX rate scheduleYESN/AN/AN/A
Floating scheduleYESN/AYESN/A
InflationLinkedBondYESN/AN/AYES
CapFloorYESN/AYESN/A
CreditDefaultSwapN/AYESN/AN/A
CdsIndexN/AYESN/AN/A
EquitySwapEquity legYESN/AN/AN/A
Interest-paying legYESN/AYESN/A
ForwardRateAgreementN/AN/AYES (optional)N/A
FundingLegYESN/AYES (optional)N/A
InflationSwapYESN/AN/AComing soon
InterestRateSwap (also InterestRateSwaption)YESN/AYESN/A
TermDepositYESN/AN/AN/A

Understanding convention objects

ObjectDocumentationExtra notes
FlowConventionsClass reference

For information on the tenors accepted by the paymentFrequency field, see this article.
 

For information on the day count methodologies supported by the dayCountConvention field to determine the number of days in a period, see this article.

 

For information on the business day and roll conventions supported by the businessDayConvention and rollConvention fields to schedule payments, see this article.

 

The paymentCalendars and resetCalendars fields both accept codes of one or more holiday calendars to determine good business days, for example ["GBP", "LON"]. Note the scope of holiday calendars is defined in a recipe. More information about calendars in LUSID.

CdsFlowConventionsClass reference
IndexConventionClass reference

The fixingReference field requires the code of a set of quotes in the LUSID Quote Store.
 

For information on the tenors accepted by the paymentTenor field, see this article.
 

For information on the day count methodologies supported by the dayCountConvention field to determine the number of days in a period, see this article.

InflationIndexConventionsClass referenceFor information on the format of tenors accepted by the inflationFrequency and observationLag fields, see this article.

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"
                    }
                }
            ]
        }
    }
}'