Scaling market prices

Prev Next

By default, no scaling is applied to a market price loaded into LUSID for a particular instrument on a particular date.

You can specify an explicit scaleFactor to scale a price down if you want, for example 100 for a bond price that is expressed as a percentage of par:

curl -X POST 'https://<your-domain>.lusid.com/api/api/quotes/MyBondPrices'
  -H 'Authorization: Bearer <your-API-access-token>'
  -H 'Content-Type: application/json-patch+json'
  -d '{
  "Quote-0001": {
    "quoteId": {
      "quoteSeriesId": {
        "provider": "Lusid",
        "instrumentIdType": "ClientInternal",
        "instrumentId": "MyFixedRate2YBond",
        "quoteType": "Price",
        "field": "mid"
      },
      "effectiveAt": "2025-09-07T00:00:00Z"
    },
    "metricValue": {"value": 103, "unit": "USD"},
    "scaleFactor": 100
  }
}'

Rather than scaling individual prices, however, it may be more efficient to automatically scale all the prices loaded for a particular instrument by configuring its definition. To do this:

  1. Specify the tradingConventions.priceScaleFactor field in the instrument definition. This is currently available for the following instrument types: Bond, ComplexBond, InflationLinkedBond, Equity, ExchangeTradedOption, FlexibleDeposit, FlexibleRepo, FundShareClass, Future, SimpleInstrument, TermDeposit. See an example for a fixed-rate bond.

  2. Do not specify the scaleFactor field when you upload prices for the instrument. Any value applied to this field for an individual price overrides the instrument definition.

  3. Set the useInstrumentScaleFactorAsDefault=True pricing model option in recipes you use to value portfolios with positions in the instrument.