Scaling market prices

Prev Next

By default, no scaling is applied to a market price loaded into LUSID for a particular instrument on an effective 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, it may be more efficient to apply a scale factor to an instrument as a whole, in which case it applies to every price for that instrument. 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 of a fixed-rate bond.

  2. Set the useInstrumentScaleFactorAsDefault=True pricing model option in the recipe you intend to use to value portfolios with positions in the instrument.

  3. Do not specify the scaleFactor field when you upload prices for the instrument. If you do, the factor in the instrument definition is overridden.