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.

businessEventthe October cutreportable?the reportone field per ruleISO 20022XMLrepositoryvalidatesACK, or a same-day rejectevery field on it traceable to a ruleaction New · Modify · Correct · Terminate: module 3's verbs, renamed

The report, recognizably

{} the EMIR-style report, a recognizable excerpt
{  "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"}
Field names spelled out for reading; the wire compresses them. A full Refit report runs 203 fields, and the rest are more of the same: paths, labels, citations. Notice there is nothing here you cannot already locate in the model.
Key ideas
  • 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:

</> ISO 20022, the envelope (heavily trimmed)
<Document>  <FinInstrmRptgTxRpt>    <Tx>      <New>        <TxId>W22LROWP2IHZNBB6K528RT4K7Q20PXM3</TxId>        <ExctgPty>W22LROWP2IHZNBB6K528</ExctgPty>        ...      </New>    </Tx>  </FinInstrmRptgTxRpt></Document>
This particular envelope is an EU transaction report message, and here is the part worth a double take: the CDM models this very shape. Open Document in the explorer and walk to New: there are txId, exctgPty, buyr, and sellr, dictionary abbreviations and all, living in cdm.regulation as ordinary types.
Try itOpen FinInstrmRptgTxRpt in the explorer and read New's fields, then Pric. The compressed names stop being intimidating the moment you can walk them like any other type.
◆ Checkpoint

01How does the October partial termination report, in action terms?

1 / 3