Lesson 07 · 6 min

Commodities, and the Full Picture

Fixed price meets averaged price, then all six products in six formulas.

The deal on the desk

Goldman Sachs has shipping clients who burn fuel all year and want predictable costs. One of them locks in with a commodity swap: the client pays a fixed 72.50 dollars per barrel on WTI crude, and Goldman pays whatever the oil price actually does, settled in cash, month by month. Two legs again, but this pair introduces the last new idea in the module: averaging.

Key ideas
  • The fixed side is the simplest payout there is

    FixedPricePayout requires exactly two things: a fixedPrice and paymentDates. By design it has no underlier; 72.50 a barrel needs nothing to observe.

  • The floating side averages instead of fixing

    Rates reset once per period; commodities average. CommodityPayout requires pricingDates, the days whose prices get averaged into each period's settlement, with an averagingFeature saying how.

  • Bullet pricing is averaging with one date

    The model's documentation makes the elegant point itself: a single observation is just an average of one. One shape covers both, so there is no special case to learn.

  • Cash settlement closes the loop

    Nobody delivers barrels here: both legs carry settlementType: Cash in USD, the same settlement vocabulary as the cash-settled NDF.

The pair, on the wire

{} payout, commodity fixed-float swap, trimmed
{  "payout": [    {      "commodityPayout": {        "payerReceiver": {          "payer": "Party1",          "receiver": "Party2"        },        "pricingDates": {          "parametricDates": "… each business day of the month …"        },        "underlier": {          "observable": {            "asset": {              "commodity": {                "commodityProductDefinition": {                  "commodityBase": "OIL_WTI"                }              }            }          }        },        "settlementTerms": {          "settlementType": "Cash",          "settlementCurrency": "USD"        }      }    },    {      "fixedPricePayout": {        "payerReceiver": {          "payer": "Party2",          "receiver": "Party1"        },        "fixedPrice": {          "price": {            "value": 72.5,            "unit": {              "currency": "USD"            }          }        },        "paymentDates": {          "paymentFrequency": {            "periodMultiplier": 1,            "period": "M"          }        },        "settlementTerms": {          "settlementType": "Cash"        }      }    }  ]}
Step one of the protocol: two wrapper keys, floating commodity versus fixed price. You knew it was a commodity swap before reading a single field. That is what the reading protocol buys.

The qualifier for the pair is Qualify_Commodity_Swap_FixedFloat, and the family resemblance to the rates swap is the point: fixed leg, floating leg, derived name.

Six products, side by side

Six asset classes covered. Lay the formulas side by side and one pattern is hard to miss:

Interest rate swapIRP · fixed+IRP · floatingFX forwardSettlementPayoutalone, by designCredit default swapCreditDefaultPayout+IRP · feeEquity total return swapPerformancePayout+IRP · fundingSwaptionOptionPayoutthe swapunderlierCommodity swapCommodityPayout+FixedPricePayoutone shared base, six marketsIRP = InterestRatePayout: swap legs, CDS fees, equity funding

Every product you met is a short formula over eight leg types, and one of them, InterestRatePayout, appears in four of the six: both swap legs, the CDS premium, the equity funding leg. The shared-base promise from Foundations held across every market. And the reading protocol never changed: wrapper keys, then the base fields, then specialty fields, then let qualification name the thing.

Try itProve your fluency: open Payout in the explorer, pick any branch this module did not dissect line by line, and run the protocol on its fields. If you can predict what qualification would check, the module did its job.
◆ Checkpoint

01How does a commodity floating leg differ from a rates floating leg?

1 / 3

◆ Keep learning

More modules are coming

Drop your email and be the first to know when a new module ships.

◆ Feedback

How was the content?