After Vouch crashed and burned, I jumped into a new world of municipal bonds - joining some veterans to build a new platform.
I've been fairly heads down wearing dozens of hats: building a team, figuring out the product, figuring out architecture, integrating with partners...
One of those partners is the Municipal Securities Rulemaking Board (MSRB). Any time a municipal bond trades, it must be reported to the MSRB's Electronic Municipal Market Access (EMMA) system, and in turn they provide a Real Time Trade data feed (RTTS) to those who subscribe (this guy double thumbs pointing towards me).
The signup for their subscription services is still pretty backwards. I had to mail TWO copies of about 40 pages of paperwork, so that they could sign the second copy and send it back to me. The MSRB needs to get onto the internet..
Their documentation is actually relatively solid (and straight forward). It explains the message formats, gives some helpful examples, provides their hours of operation.
At the end of the day, the last message before they close the connection is a "close" message that passes two variables along:
Total Days Trades Sent, a count of all of the trades with a trade date of that day (as opposed to trades that happened in prior days, but we reported late), this is supposed to exclude trades that are reported, but then later cancelled.
And, Total Day's Par Amount, which is the sum of all of those trades.
First caveat, any trades over 5 million are hidden for 5 days, instead of the amount of the trade, the value is "MM+". Alright, no big deal, except that Total Day's Par Amount includes those hidden values. So there is no way to audit your data (that day). However, 5 days later, after you have received those messages unmasking the value, you could use it.
Second caveat, nobody apparently knows how to count number of trades for the day. I excluded trades not on that day, I tried first remove trades that were later cancelled - wrong number, I tried just count the trade messages ignoring if they were cancelled, still wrong number. I talked to MSRB Support, they didn't know how to make the numbers add up.
Other than that, integrating with MSRB has been pretty decent.