Lesson 07 · 5 min
From Event to Report
One lifecycle event becomes a validated ISO 20022 report, end to end.
Run the machine
Time to run the whole thing once, end to end, on the October cut. The input is the same WorkflowStep, the audit envelope around each event, wrapped as a ReportableEvent with its reporting context: which side reports, into which regime. Eligibility passes (an OTC interest rate derivative, squarely in scope), every field rule runs its path, and out the other end comes a report.
The report, recognizably
{ "actionType": "Modify", "eventType": "EarlyTermination", "eventDate": "2026-10-15", "uniqueTransactionIdentifier": "W22LROWP2IHZNBB6K528RT4K7Q20PXM3", "counterparty1": "W22LROWP2IHZNBB6K528", "counterparty2": "QW46WU5Y2RDY41BTIO66", "notionalAmount": 6000000, "notionalCurrency": "USD", "fixedRateLeg1": 0.035, "floatingRateIndexLeg2": "USD-SOFR", "spreadLeg2": 0.005, "effectiveDate": "2026-04-17", "expirationDate": "2031-04-17"}
Action types mirror the event loop
New, Modify, Correct, Terminate: the regulator's action vocabulary maps almost one-to-one onto module 3's lifecycle verbs. The lifeline you drew is the reporting obligation, event by event.
One event, several reports
The CFTC version of this report differs in fields, format, and deadline, but derives from the same BusinessEvent. One input, per-regime rule sets, per-regime outputs.
The wire format is a projection
The report object is the meaning; the ISO 20022 XML the repository wants is a mechanical rendering of it, produced last. Format stops being something firms argue about.
Validation moves left
Repositories validate on arrival and bounce failures back same-day. With the rules and the regime's validations as code, you run the same checks before submitting: rejects become build failures instead of morning emails.
The wire, and a familiar shape
What actually travels is ISO 20022 XML, the EU's mandated format since the Refit, with tag names compressed by the ISO dictionary's abbreviation rules:
<Document> <FinInstrmRptgTxRpt> <Tx> <New> <TxId>W22LROWP2IHZNBB6K528RT4K7Q20PXM3</TxId> <ExctgPty>W22LROWP2IHZNBB6K528</ExctgPty> ... </New> </Tx> </FinInstrmRptgTxRpt></Document>
txId, exctgPty, buyr, and sellr, dictionary abbreviations and all, living in cdm.regulation as ordinary types.New's fields, then Pric. The compressed names stop being intimidating the moment you can walk them like any other type.01How does the October partial termination report, in action terms?