<< Back to articles list

Bonds are live on OTCStreaming

Cash bonds are now in production, running on a client instance alongside that client's credit derivatives. The first coverage is the bond universe of three index families — CDX IG, iTraxx Europe and CDX EM.

stats

First production volumes, on a perimeter we chose rather than one we reached.

Those numbers are worth reporting because the system is running on real dealer flow every day, not because they are large. They are the volumes of a first use case on a deliberately bounded perimeter, and the pipeline carrying them is the one already carrying the credit derivatives — sized for an order of magnitude more than this. What matters is not the six thousand; it is that the next sixty thousand ask nothing new of the system.

The same philosophy, one asset class further

We did not build a bond system. We put bonds into the one our clients already run.

That is the whole point, and it is worth being explicit about what carries over unchanged:

And the same four abstractions carry them. A bond quote is resolved by Query, priced off securities and derivations held in Reference, synchronised into a Correlation, and whatever it is missing is filled in by Completion — with the enrichment visible rather than assumed.

pipeline

Figure 1 — Bonds are a new lane in an existing pipeline, one more latent model, and exactly one new step.

What bonds add: the terms are not in the quote

There is one genuine difference, and it is where the work went.

A CDS quote names a contract whose terms are standard. A bond quote does not. A dealer's run names an instrument in the dealer's own shorthand — sometimes an ISIN, often a ticker, a coupon and a year — and states nothing about the day count, the redemption price, the dated date or the call schedule. Those are what a price means.

A bond is not created because a source described it. It is created because the market reproduces the terms proposed for it.

The test is mechanical. A dealer quoting a bond states a price and, usually, a second number computed from it — a yield, a yield to call, a spread. That second number is the dealer's own arithmetic on the dealer's own understanding of the terms. Hand the model the proposed terms and the dealer's price, ask for the second number, and compare.

dealer-test

Figure 2 — The test is whether our schedule reproduces the number the dealer computed.

What this leaves a client with is not a process but a record. Every bond on the platform carries the quotations its terms were tested against — the dealer, the side, the price, the number expected and the number produced — so a term that matters to a trade can be traced back to the market that confirmed it rather than to the source that asserted it.

As with an off-the-run CDS, we would rather publish nothing than publish a number nothing checked.

What is modelled

Once created, a bond is an ordinary citizen of the pricing library.

That last point is worth writing down, because it is the whole difference between a modelled basis and a subtracted one. A bond's value is its cash flows under two functions — a discount curve \(Z\) and a survival probability \(Q_b\):

\[ \mathrm{NPV} \;=\; \underbrace{\sum_i c_i \, Q_b(t_i) \, Z(t_i)}_{\text{coupons}} \;+\; \underbrace{\sum_j a_j \, Q_b(t_j) \, Z(t_j)}_{\text{principal}} \;+\; \underbrace{R \int_0^T N(s) \, Z(s) \, \bigl(-\mathrm{d}Q_b(s)\bigr)}_{\text{recovery}} \]

where \(N(s) = \sum_{t_j > s} a_j\) is the principal still outstanding at \(s\).

The second sum carries one term per repayment date, not one term at maturity. A bullet has a single \(a_j\); an amortiser or a sinking fund has one per instalment; a bond priced to a call repays at the call date, and only the coupons dated before it enter the first sum. That is why each workout is stored as a complete schedule rather than as an adjustment to the maturity one: changing the redemption assumption does not move one term, it moves all three at once — which coupons are in the first sum, the amounts and dates in the second, and the outstanding balance in the third. A call schedule is a different set of cash flows, not a perturbation of the bullet.

The recovery term is where that schedule bites a second time. A holder recovers \(R\) on the principal still outstanding at the moment of default, so an amortiser's default leg declines as its balance does, and a bond called early has no default leg beyond the call. Both fall out of the same \((a_j, t_j)\). A basis computed as one spread minus another has nowhere to put any of this.

\(Q_b\) is where the basis lives. It is not the issuer's CDS curve \(Q\), and it is not \(Q\) with a number subtracted from a spread. It is \(Q\) deformed:

\[ Q_b(t) \;=\; Q(t) \, \exp\!\left(-\int_0^t b(u) \, \mathrm{d}u\right) \]

— the same transformation the credit scenarios apply, drawn from the same family: spread, proportional, shifted, conditional. Which is in turn why the basis scenarios are not a separate mechanism bolted on for bonds: B000 sets \(b \equiv 0\), BCS01 adds a basis point to it, BRD1Y ages it by a year.

The analytics come with it

Bonds arrive with a full analytics set on day one, and that is not because we wrote one for them. It follows from a decision made years ago for the credit derivatives: an OTCStreaming scenario is a transformation of the survival probability function Q(t), not a deformation of observable quotes. It acts on the latent model. Anything that prices off that model therefore reprices under it — with no recalibration, and with no scenario definition written for bonds.

scenario

Figure 3 — A scenario acts on the curve, not on the instrument. That is why a bond inherits the library.

What that gives a bond holder:

None of that is bond code. It is the same scenario engine, pointed at one more latent model.

A perimeter, not a limit

The three index families are a starting perimeter. None of the machinery above is specific to them: it is written against the shape of OTC bond data, which is the same everywhere. Extending coverage is a question of which mail arrives, not of new machinery.

And that is the argument for doing it this way. A bond universe assembled from a vendor file is only as good as the file. A bond universe assembled from the prices your dealers actually sent you is, by construction, the universe you trade — and every instrument in it has already been checked against the number the dealer computed themselves.

Bonds are available on private instances as an additional subscription. Contact contact@otcstreaming.com.

<< Back to articles list