Flow conventions and index conventions

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 convention

CDS flow convention

Index convention

Inflation index convention

Bond

YES

N/A

N/A

N/A

ComplexBond

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

InflationLinkedBond

YES

N/A

N/A

YES

CapFloor

YES

N/A

YES

N/A

CreditDefaultSwap

N/A

YES

N/A

N/A

CdsIndex

N/A

YES

N/A

N/A

EquitySwap

Equity leg

YES

N/A

N/A

N/A

Interest-paying leg

YES

N/A

YES

N/A

ForwardRateAgreement

N/A

N/A

YES (optional)

N/A

FundingLeg

YES

N/A

YES (optional)

N/A

InflationSwap

YES

N/A

N/A

Coming soon

InterestRateSwap (also InterestRateSwaption)

YES

N/A

YES

N/A

TermDeposit

YES

N/A

N/A

N/A

Understanding convention objects

Object

Documentation

Extra notes

FlowConventions

Class 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.

CdsFlowConventions

Class reference

IndexConvention

Class 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.

InflationIndexConventions

Class reference

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