Building a SOFR curve was easy!
I have been a financial engineer at FINCAD since 2013. But only recently have I begun hearing a lot of talk in the industry about the end of the Libor interest rate.
My fellow coworkers at FINCAD have been following this story for some time now and recently published a technical paper on the topic. Last month I got involved, working with some of my colleagues on building the new benchmark curves. Luckily SONIA was already done, but SOFR was still pretty new. We realized we needed to try to build the curve from scratch.
I wondered first if we could build the SOFR curve in the same manner the existing SONIA curve was built. So the first thing I did was look at the market data for SOFR. Initially, I thought the best approach would be to use SOFR futures and Fed Funds (FF) basis swaps to build the SOFR curve, because long-dated SOFR swaps are not around yet. But in reality, the Fed Funds is set in the long-end using Libor basis swaps since long-dated Libor swaps are more liquid.
The need for basis swaps between SOFR-FF and FF-Libor means you must build all three curves simultaneously. This is because the basis quotes connect the curves to each other, and we have to choose which of the two curves gets calibrated to each basis swap. This can alternate between the curves based on maturity, so based on FF-Libor and SOFR-FF basis swaps, we can build the long-end of the SOFR curve at the same time as the Fed Funds and Libor curve.
This may sound difficult to do, but curve-building in FINCAD F3 is very automatic, which makes it easy. Once you have identified the target curves (Libor, FF and SOFR) and interpolation methods, F3 just finds the curves that price all the market instruments you give it to par. If an instrument depends on two target curves (e.g., a Libor-FF basis swap), you can indicate which target curve should be used to build. It took me less than a day, start to finish, to build our first SOFR curve – including the research for the market data and also showing round-trips to all the market data across all the instruments when I was done. Plus, because F3 has Algorithmic Differentiation built-in, I also had a full set of risk ladders without doing any extra work. Some of the plots I made are included here to show the perfect round-trips of all the SOFR market data.
This is just a start, and more advanced calibration setups can be used together as F3 building blocks that can explore the many different types of SOFR curves that are possible. But in the end, the basic idea is the same as the first curve. However, before going down that road, it looks like there may be some more details to iron out with the market data itself. Do we really want to use Libor basis swaps when building the SOFR curve? If you go by where the current derivatives market liquidity is highest, then yes. But not if it is really the end of Libor, as this will impact the SOFR curve since we will lose these basis swaps to Libor. Right now, it seems like having the ability to react quickly to any upcoming changes in the SOFR derivatives market is very important.
After SOFR, I built curves for all the other alternative benchmark rates like SARON, TONA, and RBA cash just by changing the instruments and curves I chose in F3. I didn’t need to wait for our quantitative developers to make any code changes at all. Everything I did was just a matter of configuration. Even though I know our software very well, I was still surprised at how easy all this was. It is so valuable that users can quickly react to changes like this using the flexibility of F3.
If you would like to learn more about the potential impact of the Libor phase out, please see our research in FINCAD’s newest technical paper: How the End of Libor will Impact Delta-1 Rates