Lesson 06 · 5 min

How Trades End

Terminated, novated, matured, or triggered: every exit is a ClosedState written by one last event.

Stepping out

February 2028. Pershing Square restructures its book and wants out of the swap, now USD 6,000,000 after the October unwind. Bank of America agrees to step in. Legally that is a novation: the old contract dies and a new one binds Bank of America to Goldman on the same terms. The CDM models the legal truth exactly: one event closes the old lifeline with closedState: Novated and opens a new one with a new party and a new identifier. This lesson walks that event, then tours the other ways off the line.

ClosedStateEnum: Allocated · Cancelled · Exercised · Expired · Matured · Novated · TerminatedNovationpartyChange, via splitclosed · Novatedopen · Bank of America steps inTerminationquantityChange to zeroclosedState: Terminatedfinal settlementMaturityterminationDateclosedState: Matured
Key ideas
  • Novation is a split with one closed branch

    The event uses the split verb: SplitInstruction holds a breakdown of primitive instructions, one per resulting trade. For a novation: one branch closes the original, the other rebinds the role.

  • PartyChange rebinds a role

    PartyChangeInstruction names the new counterparty for an existing role and requires a fresh tradeId: the stepped-in contract is a different contract, so it cannot reuse the old name.

  • Every exit writes a ClosedState

    ClosedState requires the state (one of seven enum values) and the activityDate it happened. A closed line stays on the books as history; it just stops moving.

  • Defaults arrive as observations

    A credit event is something the world does, not something the parties book. It enters as an observation carrying a CreditEvent, and settlement follows as its own events.

The novation, on the wire

{} businessEvent, novation to Bank of America, trimmed
{  "intent": "Novation",  "eventDate": "2028-02-15",  "instruction": [    {      "before": "… the swap, USD 6,000,000, Pershing Square facing Goldman …",      "primitiveInstruction": {        "split": {          "breakdown": [            {              "partyChange": {                "counterparty": {                  "role": "Party1",                  "partyReference": "… Bank of America, N.A. …"                },                "tradeId": [                  {                    "assignedIdentifier": [                      {                        "identifier": "W22LROWP2IHZNBB6K528WD59ZK31RTQ8",                        "version": 1                      }                    ],                    "identifierType": "UniqueTransactionIdentifier"                  }                ]              }            },            "… and a closing branch for the original …"          ]        }      }    }  ],  "after": [    {      "trade": "… the original, Pershing Square still named on it …",      "state": {        "closedState": {          "state": "Novated",          "activityDate": "2028-02-15"        }      }    },    {      "trade": "… same economics, Bank of America now Party1 …",      "state": {        "positionState": "Formed"      }    }  ],  "eventQualifier": "Novation"}
Qualify_Novation checks the whole pattern: intent Novation, a split, exactly one closed and one open after state, the closed one keeping the old counterparty, the open one carrying a different counterparty and a different identifier.

Every exit has a name

ClosedStateEnum is the complete list of ways off the line, and you have already met most of them:

  • Terminated. The unwind machinery run to the end: a quantity change to zero, a final settlement, and Qualify_Termination derives the name.
  • Novated. This lesson's exit. The position lives on, just not with you.
  • Exercised and Expired. The swaption's two endings: the fork that spawns a swap, or the quiet close when the right dies worthless.
  • Matured. The calendar runs out on the terminationDate the trade carried from birth. The FX forward ended this way on its value date.
  • Cancelled and Allocated. The back-office exits: a booking undone, or a block trade carved up among funds, each slice a new lifeline.

A credit event arrives

The credit swap left a question hanging: the CDS pays if a credit event hits ABC Industrial Corp. Suppose one does: a restructuring is determined in September 2027. The fact enters the model as an observation:

{} primitiveInstruction, credit event observed, trimmed
{  "observation": {    "observationEvent": {      "creditEvent": {        "creditEventType": "Restructuring",        "eventDeterminationDate": "2027-09-22",        "referenceInformation": {          "referenceEntity": {            "name": "ABC Industrial Corp",            "entityIdentifier": [              {                "identifier": "549300Q7GH25ZTM4B803"              }            ]          }        }      }    }  }}
The record lands in observationHistory, and Qualify_CreditEventDetermined names the event. CreditEvent's other fields, auctionDate, finalPrice, recoveryPercent, carry the auction that prices the protection payment; the payment itself and the CDS's termination then follow as their own events on the line.
Try itOpen ClosedStateEnum in the explorer, then go back to the five deals and predict the exit each one is most likely to take. Five trades, seven doors.
◆ Checkpoint

01What does a novation leave behind?

1 / 3