A Smoother Path to SOFR Curve Construction

by Lucido Group

We are getting a lot of questions about SOFR curve modelling, and there are plenty of reasons why. Liquidity in SOFR, particularly since CME and LCH this month moved to SOFR discounting, continues to rise. The same is true for the other alternative reference rates such as SONIA, €STR, CORRA, TONA, SARON, and AONIA.

In this release, we look at two ways to think about modelling the SOFR forward and discounting curves in Findur.


The most common method Openlink’s clients use to model interest rate curves like SOFR, and before it, OIS and LIBOR, is to bootstrap the curve.

The curve is constructed from a collection of cash rates, futures prices and swap rates. It is a perfectly acceptable approach that is suitable for many clients. The input data that is required is easily obtained from data vendors such as Bloomberg.

For SOFR, the relevant Bloomberg tickers are SOFRRATE for the overnight rate, SFR1… SFR8 for the futures prices, and, … then there are some questions about the swap rates. Let’s get back to that in a moment.

Data Vendor Expertise

Bloomberg is the most actively sourced data vendor. CME, LCH, Refinitiv, Markit, and others, also provide market data. While Openlink’s users will sometimes have strong opinions about how to construct a curve, the data vendors employ specialists with close access to the market participants, and carefully monitor market liquidity. The market for SOFR is still developing, liquidity is growing and the instruments used to construct a SOFR curve continue to evolve.

Now it looks like Bloomberg has already changed the methodology they use to construct a SOFR curve. And why not? As the market evolves, that methodology should evolve. Thing is, in Findur, changes to the curve definition, and particularly the grid point definition, can be a headache for the middle office.

Most Findur users care about VaR, which requires time series analysis to calculate risk factor volatilities and correlations. Those risk factors are grid points on the SOFR curve so when the grid point definition changes, the time series analysis must change.

Vendor Zero Rates

There is a smoother path available. The vendors publish continuously compounded zero rates. The zero rates are available for SOFR for a range of terms. Findur supports curve construction using grid points that accept zero rates as the input. The grid point definition is simple: know the start date, the end date and yield basis and you are done.

Compare the definition of a zero rate grid point to the requirements to define a SOFR swap grid point, particularly one that is defined as a spread over a basis swap. A swap point must have its terms defined correctly. There are quite a lot of terms to a swap, and when the curve was defined using basis spreads, the definition of the fixed-float swap and the basis swap must be correct.

It is important to ensure that the swap terms on the grid point definitions match the terms of the corresponding ticker coming from the data vendor. For example, should that grid point in Findur be mapped to USSO2 Curncy, USOSFR2 Curncy or something else?

What about his time next year as all of those LIBOR derivatives fallback? As the market evolves, and liquidity develops in the SOFR derivatives markets, the best-practice method to construct the SOFR curve will evolve, and the debate among the specialists will rage.

Modelling the SOFR curve in Findur using zero rates is a way to simplify the implementation today, and minimize the impact of changes to best practice curve construction methodology in the coming years.

Take it for Road Test

Don’t take our word for it, try it! Findur makes it easy to construct a few curves and to compare the results side-by-side. Bootstrap the curve, in the manner that legacy clients favored. Also try using the zero rates, and see how the results compare.

We could have spoken here also about complexities of convexity adjustments, futures contract roll dates and the somewhat limited interpolation methodologies available out of the box in Findur. Using a data vendor’s zero rates delegates these decisions to the vendor. If you trust your vendor’s expertise, that could be a good decision.

The Bloomberg tickers to evaluate for SOFR include this series: S0490Z 1W BLC2 Curncy, S0490Z 1M BLC2 Curncy, S0490Z 1Y BLC2 Curncy, S0490Z 10Y BLC2 Curncy. Obviously there are many tenors in between these. Selecting more tenors will minimize the ‘steps’ that appear in the forward rates. More points will more tightly fit the curve in Findur to Bloomberg’s curve, regardless of the rudimentary interpolation method available.

This should be a quick exercise for a seasoned Openlink user. If it proves to be more than a quick point-and-click operation, or there is a sales/relationship manager proposing a lengthy analysis prior to the curve’s implementation, reach out. We won’t set out on a fishing expedition.