The Hidden Foundation of Pricing and Risk: How FICC Curves and Surfaces Are Really Built | by DolphinDB | MediumSitemapOpen in appSign up<br>Sign in
Medium Logo
Get app<br>Write
Search
Sign up<br>Sign in
The Hidden Foundation of Pricing and Risk: How FICC Curves and Surfaces Are Really Built
DolphinDB
15 min read·<br>Jan 19, 2026
Listen
Share
Press enter or click to view image in full size
1. Introduction<br>Constructing yield curves and option volatility surfaces is a critical component of financial engineering and quantitative analysis. It ensures pricing accuracy and consistency, and provides a solid foundation for subsequent risk management and trading decisions. Even a minor error in curve construction can lead to pricing deviations or risk misjudgments amounting to millions or even billions.<br>As markets evolve (e.g., the transition from LIBOR to SOFR) and products become more complex (e.g., structured products like Snowball), the models and techniques for building curves and surfaces have become increasingly complex and important.<br>DolphinDB V3.00.4 introduces four construction functions for market data curves and surfaces:<br>Press enter or click to view image in full size
The following sections provide detailed descriptions of these four functions.<br>2. bondYieldCurveBuilder<br>The spot curve (zero-coupon yield curve) is crucial for bond pricing and risk management. Its shape (steep, flat, or inverted) and expected changes form the foundation for various trading strategies. This section introduces the method for building a bond yield curve (deriving spot rates from yield to maturity).<br>2.1 Bootstrap<br>Bootstrapping is a core and classic financial engineering method used to derive the spot rate curve from a series of market-traded, arbitrage-free bond prices. The method starts with the bond having the shortest residual maturity. Using its yield to maturity (YTM), the bond’s dirty price is calculated via bondCalculator. Next, we use an assumed spot curve to price the bond and obtain the bond’s net present value (NPV). The spot rate is then adjusted iteratively until the NPV matches the dirty price (with a small error margin). This process determines the spot rate corresponding to the bond’s maturity, and by repeating this for all bonds, the entire spot rate curve is derived.<br>For this example, we refer to the benchmark bond list for the August 2025 national bond yield curve, provided by China Foreign Exchange Trade System (CFETS). Using the closing data from August 18, 2025, we applied bootstrapping to obtain the spot curve (“Zero Rate” column). By comparing this with the CFETS spot curve (“CFETS Zero Rate” column), the maximum error was found at the Term of 20Y, with an error of 0.4964 basis points. Errors for all other maturities were less than 0.5 bp.
2.2 Nelson-Siegel (NS)<br>Introduced by Nelson and Siegel (1987), the Nelson-Siegel (NS) model is widely used to analyze the bond yield curve. It uses four parameters with distinct economic significance to describe the variations of the yield curve under varying market conditions.<br>The NS model defines the instantaneous forward rate as:<br>Press enter or click to view image in full size
The model has four parameters: β0 , β1 , β2 , and λ, where τ=T-t represents the time to maturity, and λ>0.<br>The instantaneous forward rate f(t, T) consists of three terms:<br>The first term, β0, is the forward rate as τ→∞, so β0= f(∞).<br>The second term is a monotonic function that decreases when β1> 0 and increases when β1 The third term is a non-monotonic function that generates a hump in the curve.<br>When τ→0, the second term approaches β1, and the third term approaches zero. Therefore f(0) = β0 + β1.<br>Integrating the instantaneous forward rate derives the formula for the spot rate: (Formula 1)<br>Press enter or click to view image in full size
Parameter interpretations:<br>β0 (Level) : Its loading is constant , affecting all terms equally. Therefore, β0 controls the overall rate level; changes in β0 cause the entire curve to shift up or down.<br>β1 (Slope) : Its loading decreases monotonically from 1 to 0, primarily impacting short-term rates. Thus, β1 controls the slope and steepness of the curve.<br>β2 (Curvature) : Its loading is hump-shaped , rising from 0 to 1 and then falling back to 0. β2 mainly affects mid-term rates and thus controls the curvature of the curve.<br>λ (Decay) : It represents the decay speed of the factor loadings for β1 and β2, with larger values indicating faster decay.<br>To build spot curve using the NS model, we first calculate the dirty price of each sample bond based on its YTM via bondCalculator. Then, the assumed spot rate (Formula 1) is used as the discount curve to price the bond and calculate its NPV. For n sample bonds, we can obtain n pairs of (dirty, NPV).<br>The four parameters are obtained by minimizing the following objective function:<br>Press enter or click to view image in full size
2.3 Nelson-Siegel-Svensson (NSS)<br>The NSS model (Svensson, 1994) extends the NS model by...