Lesson 04 · 6 min

Options: the Right, Not the Obligation

OptionPayout wraps a whole product as its underlier. Exercise styles, strikes, and the swaption recursion.

The deal on the desk

Pershing Square likes the fixed-float swap but does not want it yet. Rates might fall; why lock in 3.5% today? So Pershing Square buys the right to enter that swap a year from now: a swaption. The CDM models optionality with OptionPayout, whose underlier can hold an entire product: the fixed-float swap, legs and date machines and all, nested inside another payout.

OptionPayoutbuyerSeller: Pershing Square buysoptionType: PayerexerciseTerms: Europeanstrike: 3.0% fixedunderlierthe lesson-2 swapfixed leg + floating lega whole product, folded inside anotherexerciseTerms.styleEuropeanone exercise dateBermudaseveral listed datesAmericanany day in the window
Key ideas
  • Options bind two role pairs

    The base gives every leg payerReceiver; options add a required buyerSeller. The buyer holds the right, the seller is short it, and premium flows are pinned by the payer and receiver roles.

  • The underlier is a choice: observe or own

    Underlier forks between an Observable (a price you watch, like a share or an index) and a Product (a full economic structure you would enter). Swaptions take the product branch.

  • exerciseTerms is the only required specialty

    An option without exercise mechanics is not an option: exerciseTerms is 1..1. Its style picks European, Bermuda, or American, and the dates fields carve the window.

  • optionType speaks the dialect of the underlier

    For rates, OptionTypeEnum offers Payer, Receiver, and Straddle: the right to pay fixed, receive fixed, or both. Equity-style puts and calls live in a separate enum, used where the underlier is a price.

The swaption, on the wire

{} optionPayout, European payer swaption, trimmed
{  "payerReceiver": {    "payer": "Party1",    "receiver": "Party2"  },  "buyerSeller": {    "buyer": "Party1",    "seller": "Party2"  },  "optionType": "Payer",  "exerciseTerms": {    "style": "European",    "expirationDate": [      {        "adjustableDate": {          "unadjustedDate": "2027-04-17"        }      }    ],    "expirationTimeType": "Close"  },  "underlier": {    "underlyingProduct": {      "nonTransferableProduct": "… the entire fixed-float swap …"    }  }}
The strike of a swaption is the fixed rate of the swap you would enter, so it can simply live on the underlier's fixed leg. OptionStrike exists for when the strike needs its own slot, like an equity option struck at a price.

Exercise styles

The ExerciseTerms type carries all three styles through one shape: style names the variant, and the date fields define the window it opens.

  • European. One date. Exercise happens on the expirationDate or not at all.
  • American. A window. Exercise is allowed any day from commencementDate to expiration.
  • Bermuda. A list. exerciseDates enumerates exactly which days count, sitting between the other two styles in flexibility.

Times are contractual too. expirationTimeType (Close, Open, a specific time) is required on every option, because an option exercisable until the close and one that expires at noon are different exposures. The model refuses to leave that implicit.

Qualification, one level deep

Qualify_InterestRate_Option_Swaption runs the protocol one level deep: a lone option payout whose underlier is a product made of interest rate payouts. Swap the underlier for an equity observable and the equity option qualifiers take over instead. Recursion in, classification out.

Try itOpen OptionPayout in the explorer and click into underlier, then the product branch. You are walking the same recursion the swaption payload encodes: payouts can hold products that hold payouts.
◆ Checkpoint

01What makes a product a swaption rather than an equity option?

1 / 3