WorkflowsIndex-Based Pricing
Workflows

Workflow: Setting Up Index-Based Pricing

Step-by-step guide to configuring index-based pricing in Jules — from creating indices through building formulas, applying them to contracts and operations, and fixing final prices.

Workflow: Setting Up Index-Based Pricing

Step-by-step guide — How to configure market-index-linked pricing in Jules, from raw indices to price formulas on contracts and operations.


When to use this workflow

Use this workflow when you are setting up pricing that references a market index (such as TSI, LME, Platts, or RISI) rather than a fixed spot price. Index pricing is the standard for most international recyclable commodity trades.


How Index Pricing Works in Jules


Step-by-Step

Step 1 — Verify or Create the Price Index

A price index is the raw market reference value. Jules stores indices by name and period.

  1. Navigate to ConfigurationPrice Indices
  2. Check if the index you need already exists (e.g., "TSI HMS 1&2 CFR Turkey")
  3. If it does not exist, create it:
FieldDescriptionExample
Name (value)The index identifierTSI HMS 1&2 CFR Turkey
PeriodTime period for this value2026-01 (January 2026)
Index valueThe numeric value330.00

Important: Index values are unique per (name, period) pair. Jules will not create duplicates — if you enter the same index for the same period twice, the second entry is ignored.

Step 2 — Understand the Formula Types

Jules supports several formula patterns for combining indices with adjustments:

Formula codeLogicExample
INDEX_MINUS_DIFFERENTIALIndex − fixed discountTSI − USD 15/T
INDEX_PLUS_DIFFERENTIALIndex + fixed premiumTSI + USD 5/T
INDEX_TIMES_RECOVERYIndex × recovery percentageLME × 85%
INDEX_TIMES_RECOVERY_MINUS_DIFFERENTIAL(Index × recovery%) − fixed(LME × 85%) − USD 10
TWO_INDEX_BLENDWeighted average of two indices60% TSI + 40% LME
CUSTOMFree-form formulaComplex multi-variable formulas

Step 3 — Configure Index Pricing on a Contract Quality

When creating or editing a contract, configure the quality stream's pricing:

  1. Open the contract and navigate to a quality stream
  2. Set Price type to INDEX
  3. Configure the formula:
FieldDescriptionExample
IndexPrimary market referenceTSI HMS 1&2 CFR Turkey
FormulaHow to apply the indexINDEX_MINUS_DIFFERENTIAL
DifferentialPremium or discount−15 USD/T
Recovery ratePercentage of index applied100% (or 85% for LME-based)
Quotational Period (QP)When to measure the indexM-1 (average of previous month)
Price modeOFFICIAL, BID, ASK, etc.OFFICIAL

Step 4 — Configure Advanced Index Options (if needed)

For more complex pricing, Jules supports additional parameters:

Quotational Period Configuration

QP optionMeaning
M-1Average of the month before shipment
MAverage of the shipment month
M+1Average of the month after shipment
Custom rangeSpecific date range for averaging

Two-Index Pricing

Jules can combine two indices on a single quality line:

FieldIndex 1Index 2
IndexTSI HMS 1&2 CFR TurkeyLME Steel Scrap
Weight60%40%
Recovery rate100%85%
QPM-1M-1

Contango

For futures-based pricing, add a contango value — the forward premium for deferred delivery:

FieldDescription
Contango valuePremium per tonne for forward delivery
Contango periodHow many months forward

Step 5 — Apply to Operations

When an operation is created from the contract, the index pricing configuration is prefilled automatically. Verify:

  1. Operation quality shows priceType = INDEX
  2. The formula, differential, and QP are correctly transferred
  3. The price displays as temporary if the index for the QP hasn't been published yet

Step 6 — Understand Temporary vs Definitive Pricing

StateDescriptionMargin impact
TemporaryIndex value not yet published; price is an estimateMargin is estimated only
DefinitiveIndex published; price is calculated and finalMargin can be finalized

The isTemporaryPrice flag on the operation quality tracks this state.

Step 7 — Fix the Price at Month-End

When the quotational period ends and the index provider publishes the final value:

  1. Enter the final index value in Price Indices (if not already present)
  2. Navigate to operations with temporary prices for this QP
  3. Update the operation quality to use the definitive price
  4. Remove the isTemporaryPrice flag
  5. Regenerate invoices if needed with the final price

Example: Complete Index Pricing Setup

Deal: Buy 500 T HMS 1&2 from Garfield Metals at TSI HMS 1&2 CFR Turkey, average M-1, minus USD 15/T

StepActionResult
Index existsTSI HMS 1&2 CFR Turkey is already in the systemReady
Contract qualityHMS 1&2 @ INDEX, formula = INDEX_MINUS_DIFFERENTIAL, diff = −15, QP = M-1Terms configured
Operation created Jan 15Prefilled from contract, shipping planned for FebruaryPrice = temporary (Jan average not yet published)
Jan 31 — index publishedTSI Jan average = 330 USD/TEnter in Price Indices
Price fixed330 − 15 = 315 USD/TDefinitive price, margin recalculates

Common Mistakes

MistakeConsequenceFix
Index value not entered for the QPPrices remain temporary; margins are estimatesEnter the index value as soon as published
Wrong QP configured (M instead of M-1)Price fixed against wrong periodCorrect the QP on the contract/operation quality
Differential sign error (−15 instead of +15)Price is 30 USD/T offDouble-check formula direction
Missing recovery rate for LME-based pricingFull index value used instead of partialSet the recovery rate (e.g., 85% for steel scrap)