Lesson 04 · 6 min
Changing the Deal
A partial unwind is a quantity decrease by event, and the qualifier derives PartialTermination from the diff.
The unwind order
October 2026. Pershing Square wants less rate risk and asks Goldman to unwind USD 4,000,000 of the 10,000,000 swap. In most systems someone edits a notional field and a comment explains why. In the CDM nobody edits anything: a QuantityChangeInstruction states the delta and the direction, the loop produces a new state at 6,000,000, and the old state at 10,000,000 stays on the line as history. Then the qualifier looks at the diff and names what happened.
Direction, not arithmetic
changeis always a positive number; QuantityChangeDirectionEnum says what to do with it:Increase,Decrease, orReplace. The model separates the amount from the operation so neither is ever implied.The delta can carry its fee
changeis aPriceQuantity, so the unwind fee Goldman quotes can ride along as a cash price with its own settlement date. One instruction, the full commercial story.The same diff can mean three things
A decrease with something left is a partial termination. A decrease to zero with the state closed is a termination. And a decrease that merely corrects a booking error is neither, which is where
intentfinally earns its place.Increases add lots
Trade lots planted this: an
Increaseadds aTradeLotat its own price while the original lot stays put. Same verb, opposite direction, same refusal to overwrite.
The unwind, on the wire
{ "eventDate": "2026-10-15", "effectiveDate": "2026-10-17", "instruction": [ { "before": "… the swap at USD 10,000,000 …", "primitiveInstruction": { "quantityChange": { "direction": "Decrease", "change": [ { "quantity": [ { "value": 4000000, "unit": { "currency": "USD" } } ] } ] } } } ], "after": [ { "trade": "… same swap, quantity now USD 6,000,000 …", "state": { "positionState": "Formed" } } ], "eventQualifier": "PartialTermination"}
intent. No one declared anything, and the event still has a precise name, because the data is unambiguous on its own.The qualifier reads the diff
Qualify_PartialTermination checks four things: no declared intent, the only verb is quantityChange (a cash transfer may ride along for the fee), the quantity strictly decreased between before and after, and no after state is closed. Change any one and the name changes with it. Run the same decrease all the way to zero and close the state, and Qualify_Termination claims the event instead, an exit the endings lesson walks.
01How is a 4 million unwind on a 10 million swap expressed?