---
title: "Recipes: Changing the default pricing models for instrument types"
slug: "recipes-changing-the-default-pricing-models-for-instrument-types"
updated: 2026-06-01T14:01:17Z
published: 2026-06-01T14:01:17Z
canonical: "support.lusid.com/recipes-changing-the-default-pricing-models-for-instrument-types"
stale: true
---

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

# Recipes: Changing the default pricing models for instrument types

A [recipe](/v1/docs/what-is-a-recipe) has a `pricing` section that you must populate if you wish to change the default [pricing model](/v1/docs/what-pricing-models-can-i-use-in-my-valuation) LUSID provides for each instrument type:

| **Instrument type** | **Default pricing model** | Recommended pricing model |
| --- | --- | --- |
| `Bond`, `ComplexBond`, `InflationLinkedBond` | `ConstantTimeValueOfMoney` | `BondLookupPricer` |
| `FxForward` | `ConstantTimeValueOfMoney` | [Depends on market data availability](https://support.lusid.com/docs/modelling-fxforwards-in-lusid#valuing-your-position). |
| `Future` | `SimpleStatic` | `ConstantTimeValueOfMoney` |
| `CreditDefaultSwap`, `CdsIndex` | `SimpleStatic` | `CdsLookupPricer` |
| `EquityOption`, `FxOption` | `SimpleStatic` | - `ConstantTimeValueOfMoney` for a simple PV calculation. - Either `BlackScholes`, `Bachelier` or `BjerksundStensland1993` for a time-weighted calculation, depending on kind of option. |
| `FlexibleRepo` | `SimpleStatic` | `FlexibleRepoSimplePricer` |
| `InterestRateSwap` | `SimpleStatic` | `Discounting` |
| All other types | `SimpleStatic` | `SimpleStatic` |

You can change the default for any instrument type except `Equity` to provide a more suitable or sophisticated result. You can even [conditionally select different pricing models](/v1/docs/recipes-changing-the-default-pricing-models-for-instrument-types#selecting-different-pricing-models-for-the-same-instrument-type) for the same instrument type.

> **Note**: The combination of instrument type and pricing model impacts the quantity and quality of market data required. [Find out more about this](/v1/docs/what-market-data-does-my-valuation-require).

For each instrument type whose pricing model you wish to change, specify a *vendor model rule* in the `modelRules` array of the `pricing` section of your recipe. Consider the following example, of three vendor model rules to change the default models for bonds, FxForwards and equity options (all others are left unchanged):

![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/e7f17748-281d-473b-a87c-a8d1c2970613.png)

For information on all the fields and allowed values in a vendor model rule, examine the [API reference](https://www.lusid.com/docs/api/lusid/endpoints/configuration-recipe/UpsertConfigurationRecipe) (expand the `configurationRecipe/pricing/modelRules` section). The following table summarises core fields:

| **Vendor model rule field** | **Status** | **Explanation** |
| --- | --- | --- |
| `supplier` | Mandatory | Defaults to `Lusid` to use built-in pricing models. Do not change this value unless you want to use a pricing model from a 3rd party vendor. |
| `modelName` | Mandatory | If `supplier` is `Lusid`, must be one of the models listed [here](https://www.lusid.com/docs/api/lusid/schemas/ModelSelection/). |
| `instrumentType` | Mandatory | If `supplier` is `Lusid`, must be one of the instrument types listed in the dropdown [here](https://www.lusid.com/docs/api/lusid/schemas/LusidInstrument/). |
| `addressKeyFilters` | Optional | Specify if you want to [conditionally selects different pricing models](/v1/docs/recipes-changing-the-default-pricing-models-for-instrument-types#selecting-different-pricing-models-for-the-same-instrument-type) for the same instrument type. |
| `modelOptions` | Optional | Configure pricing models for certain instrument types. If `instrumentType` is: - `FxForward`, choose `FxForwardModelOptions`. - `FundingLeg`, choose `FundingLegOptions`. - `EquityOption` or `EquitySwap`, choose `EquityModelOptions`. For all other instrument types, omit this field to use the default value of `EmptyModelOptions`. > **Note**: If you are [valuing a fund of funds portfolio](/v1/docs/setting-up-and-valuing-a-fund-of-funds-portfolio) and want to ‘look through’ to value holdings in child portfolios, choose `IndexModelOptions`. For more information on the option fields available, examine the [API reference](https://www.lusid.com/docs/api/lusid/endpoints/configuration-recipe/UpsertConfigurationRecipe/) (expand the `modelOptions` section) and select the type from the dropdown: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/image(117).png) |

## Selecting different pricing models for the same instrument type

You can conditionally select pricing models based on:

- [Properties](/v1/docs/properties) (custom, system or derived) in the `Portfolio` domain, for example `Portfolio/People/Manager`.
- Properties (custom, system or derived) in the `Instrument` domain, for example `Instrument/FX/DataProvider`.
- [Features for OTC instruments](/v1/docs/what-are-instrument-features), for example `Instrument/Features/ExerciseType`.

For example, you might want to specify that:

- American FX option contracts are valued using the `BjerksundStensland1993` pricing model.
- European FX option contracts sourced from Bloomberg are valued using the `BlackScholes` pricing model.
- European FX option contracts sourced from UBS are valued using the `Discounting` pricing model.

To do this, specify multiple vendor model rules for the same instrument type and distinguish them using the `addressKeyFilters` field:

- The `left` field must reference the 3 stage key of either a property or a feature. In the example below, `Instrument/FX/DataProvider` is a property added to instruments of type `FxOption` to record the original data provider, while `Instrument/Features/ExerciseType` is a feature key referencing one of the available exercise types for FX option contracts in LUSID.
- The `operator` field must either be `eq` or `neq`.
- The `right` field must be a string `value` on which to match, with a `resultValueType` of `ResultValueString`. Note this means only properties with an underlying [data type](/v1/docs/what-is-a-data-type) of `String` are currently supported.

> **Note**: Vendor model rules are processed in the order they are specified in a recipe. The first matching rule found is used. Instruments that do not match any rules fall back to using the default pricing model for the instrument type, which is `SimpleStatic` for FX option contracts.

```json
"pricing": {
"modelRules": [{
  "supplier": "Lusid",
  "instrumentType": "FxOption",
  "addressKeyFilters": [{
    "left": "Instrument/Features/ExerciseType",
    "operator": "eq",
    "right": {
      "value": "American",
      "resultValueType": "ResultValueString"
    }
  }],
  "modelName": "BjerksundStensland1993"
},
{
  "supplier": "Lusid",
  "instrumentType": "FxOption",
  "addressKeyFilters": [{
    "left": "Instrument/Features/ExerciseType",
    "operator": "eq",
    "right": {
      "value": "European",
      "resultValueType": "ResultValueString"
    }
  },
  {
    "left": "Instrument/FX/DataProvider",
    "operator": "eq",
    "right": {
      "value": "Bloomberg",
      "resultValueType": "ResultValueString"
    }
  }],
  "modelName": "BlackScholes"
},
{
  "supplier": "Lusid",
  "instrumentType": "FxOption",
  "addressKeyFilters": [{
    "left": "Instrument/Features/ExerciseType",
    "operator": "eq",
    "right": {
      "value": "European",
      "resultValueType": "ResultValueString"
    }
  },
  {
    "left": "Instrument/FX/DataProvider",
    "operator": "eq",
    "right": {
      "value": "UBS",
     "resultValueType": "ResultValueString"
    }
  }],
  "modelName": "Discounting"
}],
...
```

For a more detailed demonstration of conditional pricing model selection, examine [this Jupyter Notebook](https://github.com/finbourne/finbourne-notebooks/blob/main/V1/product/ibor/Model%20selection%20using%20instrument%20features%20and%20properties.ipynb).
