--- title: "Flow conventions and index conventions" slug: "flow-conventions-and-index-conventions" tags: ["payment schedules", "cashflows", "calendars"] updated: 2026-05-12T13:48:14Z published: 2026-05-12T13:48:14Z canonical: "support.lusid.com/flow-conventions-and-index-conventions" --- > ## Documentation Index > Fetch the complete documentation index at: https://support.lusid.com/llms.txt > Use this file to discover all available pages before exploring further. # Flow conventions and index conventions When mastering certain types of [instrument](/v1/docs/instruments) in LUSID, you must specify rules for payments arising during the lifetime of those instruments: | Instrument type ([see all](/v1/docs/what-instruments-does-lusid-support)) | Flow convention | CDS flow convention | Index convention | Inflation index convention | | --- | --- | --- | --- | --- | | [Bond](/v1/docs/modelling-fixed-rate-vanilla-bonds-in-lusid) | ✅ | N/A | N/A | N/A | | [ComplexBond](/v1/docs/modelling-complex-bonds-in-lusid) | Fixed schedule | ✅ | N/A | N/A | N/A | | FX rate schedule | ✅ | N/A | N/A | N/A | | Floating schedule | ✅ | N/A | ✅ | N/A | | [InflationLinkedBond](/v1/docs/modelling-inflation-linked-bonds-in-lusid) | ✅ | N/A | N/A | ✅ | | `CapFloor` | ✅ | N/A | ✅ | N/A | | [CreditDefaultSwap](/v1/docs/modelling-cds-index-instruments-in-lusid) | N/A | ✅ | N/A | N/A | | [CdsIndex](/v1/docs/modelling-cds-index-instruments-in-lusid) | N/A | ✅ | N/A | N/A | | `EquitySwap` | Equity leg | ✅ | N/A | N/A | N/A | | Interest-paying leg | ✅ | N/A | ✅ | N/A | | `ForwardRateAgreement` | N/A | N/A | ✅ (optional) | N/A | | `FundingLeg` | ✅ | N/A | ✅ (optional) | N/A | | `InflationSwap` | ✅ | N/A | N/A | Coming soon | | [InterestRateSwap](/v1/docs/modelling-interest-rate-swaps-in-lusid) (also `InterestRateSwaption`) | ✅ | N/A | ✅ | N/A | | `TermDeposit` | ✅ | N/A | N/A | N/A | ## Specifying a flow convention A *flow convention* determines the payment schedule for a set of cashflows. Consider the following example of a schedule that pays twice yearly on the 22nd, rescheduling to the next good business day if this is a holiday in the UK: ```json {  "currency": "GBP",  "paymentFrequency": "6M",  "dayCountConvention": "Actual365",  "rollConvention": "22",  "businessDayConvention": "Following",  "paymentCalendars": ["GBP"],  "resetCalendars": ["GBP"] } ``` For information on all fields, examine the [FlowConventions](https://www.lusid.com/docs/api/lusid/schemas/FlowConventions/) schema. Note in particular the following: - `paymentFrequency` can be any [tenor](/v1/docs/specifying-tenors-in-lusid) determining the number of interest rate periods per year, in this case `6M` specifying two periods. - The `dayCountConvention` methodology determines the [number of days in a period](/v1/docs/day-count-conventions-supported-by-lusid). - `rollConvention` specifies the payment day of the month. For a bond, this should count back from maturity, so in this case `22` for a bond maturing on 22 October, which means the coupon dates are 22 October and 22 April each year. We also recommend setting a `businessDayConvention` to determine what should happen if this is not a good business day. [More information on roll and business day conventions](/v1/docs/roll-conventions-and-business-day-conventions). - `paymentCalendars` and `resetCalendars` both accept *codes* of one or more [holiday calendars](/v1/docs/using-calendars-in-lusid) to determine good business days, for example `["GBP","LON"]`. Note the *scope* of holiday calendars is defined in a recipe. - `accrualDateAdjustment` defaults to `Adjusted`. This is suitable for European treasury bonds but for US treasury bonds we recommend `Unadjusted`. - `settleDays` is deprecated, and `resetDays` is ignored for bond fixed schedules. The `scope` and `code` fields can be ignored unless you are loading a flow convention from a library. ## Specifying a CDS flow convention A *CDS flow convention* determines the payment schedule for [credit default swap instruments](/v1/docs/modelling-cds-index-instruments-in-lusid). This is represented in LUSID by a [CdsFlowConventions](https://www.lusid.com/docs/api/lusid/schemas/CdsFlowConventions/) object that is similar, though not identical, to `FlowConventions`. ## Specifying an index convention An *index convention* derives the calculation of payment amounts from interbank lending rates or similar. ```json {  "fixingReference": "GBP1YBMK",  "publicationDayLag": 1,  "paymentTenor": "12M",  "dayCountConvention": "ActActIsma",  "currency": "GBP" } ``` For information on all fields, examine the [IndexConvention](https://www.lusid.com/docs/api/lusid/schemas/IndexConvention/) schema. Note in particular the following: - `fixingReference` should be an intuitive string that enables LUSID to [look up fixings in the Quote Store](/v1/docs/how-do-i-load-an-interest-rate-fixing-into-the-lusid-quote-store) each time an accrued interest calculation is required. - `paymentTenor` must be a [tenor](/v1/docs/specifying-tenors-in-lusid) specifying the length of the interest rate period, in this case `12M`. For OIS, specify `1D`. - The `dayCountConvention` methodology determines the [number of days in a period](/v1/docs/day-count-conventions-supported-by-lusid). - `indexName` defaults to `INDEX` but you can change this to a more intuitive description, for example `LIBOR` or `SOFR`. ## Specifying an inflation index convention An *inflation index convention* derives the calculation of payments from an index such as UKRPI. ```json {  "inflationIndexName": "UKRPI",  "currency": "GBP",  "observationLag": "3M" } ``` For information on all fields, examine the [InflationIndexConvention](https://www.lusid.com/docs/api/lusid/schemas/InflationIndexConventions/) schema. Note in particular the following: - The `inflationIndexName` should be an intuitive string that enables LUSID to [look up fixings in the Quote Store](/v1/docs/how-do-i-upload-an-inflation-fixing-to-the-lusid-quote-store) each time an accrued interest calculation is required. - The `currency` should be the same as the `domCcy`. - The `observationLag` must be a [tenor](/v1/docs/specifying-tenors-in-lusid) with a unit of `M` for months, for example `3M`. - The `inflationFrequency` defaults to a tenor of `1M` but can be set to `3M` for Australian or NZ bonds, in which case the flow convention `paymentFrequency` must also be set to `3M`. ## Specifying convention objects inline While it is *possible* to specify convention objects once and load them from a library, the recommended approach is to specify each 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](https://www.lusid.com/docs/api#operation/UpsertInstruments) API to master a floating schedule complex bond: ```json curl -X POST "https://.lusid.com/api/api/instruments" -H "Authorization: Bearer " -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"                    }                }            ]        }    } }' ```