31 minutes on a Tuesday: anatomy of a rates affirmation break
Walk through what actually happens between 09:14 and 09:45 when an IRS doesn't affirm. The forensic part is finding the field that differs.
Tuesday, 09:14 BST. The break shows up on MarkitWire's dashboard as MISMATCH. UBS booked the trade against L&G's rates blotter at 16:42 the previous evening. $50m notional, 5-year, pay fixed 4.225% against USD-SOFR-Compound, quarterly float, semi-annual fixed, 30/360 against ACT/360, NY calendar, modified following, EOM. Standard line. Should affirm in two clicks.
Doesn't.
The ops analyst opens the dealer's view. She opens her own trader's blotter. The two confirmations look identical at the top: same UTI, same parties, same notional, same dates, same coupon, same indices.
She scrolls.
Page two of the dealer's confirmation has a line that reads Floating Rate Spread: -0.0050%. Her trader's view says Floating Rate Spread: 0.00%. Half a basis point. On $50m for five years, that's roughly $12,500 of PV difference. Not material in the grand scheme. But the trade can't affirm with both sides reading different terms, and EMIR Refit's reporting clock is running.
She picks up the phone.
What happens in those 31 minutes
09:15. She emails the UBS swaps desk and copies their rates ops team. Subject line: BREAK: UTI 213800MBNGSQE7CKSZ62-25841-AB / spread. The email goes through the buy-side firm's monitored email gateway, gets logged for the audit trail under MiFID II RTS 22 record-keeping rules, and lands in an inbox that has 400 unread items.
09:18. She pings their ops chat on Symphony. Symphony shows the dealer-side ops analyst as Active. He doesn't respond. He's on a call about a different break.
09:23. She opens Murex MX.3 in another tab. Well, she doesn't have access to MX.3, the dealer does, so she opens her own Aladdin and pulls the original RFQ. The trader's voice broker recap from the previous afternoon says "5 year flat against SOFR." Flat. Zero spread.
09:26. The dealer-side ops analyst replies on Symphony. "Looking."
09:31. He comes back. "Our STP wrote a -0.5bp credit. Looks like the dealer applied a relationship discount that wasn't in the voice broker confirm. I'll get the desk to repaper."
09:34. The trader (UBS-side) joins the chat. He says he intended flat. The credit was applied incorrectly by the booking system's relationship-pricing logic, which fires automatically for L&G on certain tenors.
09:39. UBS amends in their OMS. The amend pushes a new confirmation to MarkitWire. The buy-side ops analyst gets the platform notification.
09:44. She compares. The new confirmation reads Floating Rate Spread: 0.00%. She affirms. MarkitWire timestamps it. The trade is confirmed. The break clock stops.
09:45. She opens trade 74.
What just happened
Thirty-one minutes of three people's time on a half-basis-point spread mismatch. Two desk-to-ops handoffs. One Symphony chat. Two emails for the audit trail. One Aladdin lookup. One MX.3 amend. Total cost in a major buy-side ops team, fully loaded? Call it £150 in salary cost for that one break, plus the ten or fifteen other breaks queued behind it because she lost half an hour.
She had 73 trades that morning. Five broke. If each break runs 25–35 minutes, that's a third of her shift on five trades. Industry surveys put OTC rates break rates at somewhere between 4% and 8% of daily volume; on a buy-side desk doing 100 trades a day, that's four to eight breaks. Across the 200-or-so buy-side ops teams of meaningful size in Europe, you can do the arithmetic.
Now look at the work she did.
She opened two confirmations. She scrolled both to the leg-2 section. She read down the field list. She found that one field, of perhaps 90, was different. She read the difference: -0.0050% against 0.00%.
The sum total of the information she needed was: legs[1].spread: −0.0050 vs 0.0000.
Everything else she did, the email, the chat, the Aladdin lookup, the call to the desk, followed from that single fact. The forensic part of the work isn't agreeing with the dealer that the spread should be flat. The forensic part is finding the field that differs. Once the field is named, the resolution path is short.
A platform that gives ops the field difference up front compresses the forensic work to about thirty seconds. The remaining twenty minutes is human conversation: the part that should be human, the part that involves negotiating with another firm, getting a decision out of a desk, agreeing to amend. The forensic compression isn't the whole win. But it's most of it.
Why MarkitWire doesn't do this
Because MarkitWire compares confirmations, and a confirmation is a document, not a structured object. Two PDF-shaped documents that disagree about a deeply nested floating-rate-spread field look, at the document level, like two documents that disagree. The platform can tell you they don't match. It can't tell you which field, because at the document level there are no fields, only paragraphs.
The fix is structural. You don't compare confirmations. You reduce both confirmations to a canonical economic form, in which every field has a single representation (decimal precision pinned, day-count aliases collapsed, leg ordering deterministic), and you compare those. The set of paths in the canonical form that disagree is the diff.
This is roughly what ISDA's Common Domain Model has been working towards since its first public drop in 2018. The CDM defines the schema. It's the precondition for the field-level comparison. It's not, by itself, the comparison. There's a lot of plumbing between "we agree on the data shape" and "the ops analyst sees legs[1].spread: −0.0050 vs 0.0000 at 09:14 instead of after thirty minutes of scanning".
That plumbing is what's missing.
And the regulatory clock
EMIR Refit reduced the affirmation deadline. Trades booked T-1 must be confirmed by end of T+1 for in-scope counterparties. CFTC Part 45 has its own version. A break that runs 31 minutes is fine. A break that runs four hours starts to bleed into the affirmation window. A break that runs two days is a regulatory event.
The buy-side ops team isn't worried about the 31-minute break. They're worried about the 31-minute break being the first of seven in a row, the dealer being out of the office for compliance training, the affirmation clock ticking, and the operational risk capital line on the firm's regulatory return going up.
That's what makes recon ops a quietly stressful job. Not any one break. The aggregate of how many breaks can stack up before something blows.
Anyway
09:45. She opens trade 74. It's a 7-year EUR ESTR-vs-EURIBOR basis swap, BNPP on the other side. Booked at 17:11 the previous evening. The platform shows it as AFFIRMED. She moves on.
Get Sigrid notes in your inbox.
Short essays on bilateral matching, deterministic identity, and OTC post-trade. No more than one email a fortnight.
We never share your address. Unsubscribe anytime.