Lesson 03 · 5 min
FX: Delivering Currency
One SettlementPayout covers spot, forward, and NDF. The difference is a settlement field, not a new type.
The deal on the desk
Pershing Square needs EUR 10,000,000 next June to settle a European purchase. Goldman Sachs sells it forward today at 1.15 dollars per euro. No rates engine, no periods, no resets: one delivery, one date. The CDM models this with the simplest leg in the module, SettlementPayout, and its own documentation is explicit: both FX spot and FX forward use this component. Spot versus forward is a question of when, not a different type.
The underlier is the thing delivered
underlieris required and here it is simply cash: EUR as an asset. An FX forward is the forward delivery of one currency, priced in another.The price is an exchange rate
The shared
priceQuantityslot carries the quantity (EUR 10,000,000) and a price withpriceType: ExchangeRate, 1.15 USD per 1 EUR. Quantity and rate pin down both sides of the exchange.Settlement is where FX products fork
settlementTermslives on the base type, and itssettlementTypedecides everything: Physical delivers both currencies, Cash pays a difference. Same payout, one field flipped.
The forward, on the wire
{ "payerReceiver": { "payer": "Party1", "receiver": "Party2" }, "underlier": { "observable": { "asset": { "cash": { "identifier": [ { "identifier": "EUR", "identifierType": "CurrencyCode" } ] } } } }, "settlementTerms": { "settlementType": "Physical" }, "priceQuantity": { "quantitySchedule": { "value": 10000000, "unit": { "currency": "EUR" } }, "priceSchedule": { "value": 1.15, "priceType": "ExchangeRate", "unit": { "currency": "USD" }, "perUnitOf": { "currency": "EUR" } } }}
unit over perUnitOf, dollars per euro. The same pattern priced the swap's fixed rate and will price every strike and spread in this module.The NDF twist
Now suppose the currency cannot be freely delivered, or the parties simply prefer not to move it. A non-deliverable forward keeps the exact same payout shape and flips the settlement: settlementType: Cash plus a settlementCurrency of USD. The EUR amount becomes a reference for computing the difference; only dollars move. One field is the entire distance between two products with different names, different regulatory treatments, and the same schema.
One qualifier per settlement style
Qualify_ForeignExchange_Spot_Forward matches a lone settlement payout delivering currency. Qualify_ForeignExchange_NDF looks for the cash settlement variant. And an FX swap, the near-and-far-date package, is two settlement payouts in one product: composition again, no new types needed.
settlementType to Cash and add a settlement currency. Watch which qualifier claims the product now.01In the CDM, what distinguishes an FX forward from an NDF?