Bond Analytics: OFZ G-Curve, Z-Spread & Floater Predictor

Firewire Analytics leverages institutional bond valuation methods: comparing portfolio bonds against the OFZ zero-coupon yield curve (G-Curve), the spread over government debt (including the Z-spread), and floating-rate coupon scenario simulation.

Section: Methodology · Bonds · Updated October 11, 2026

1. Zero-Coupon Yield Curve (G-Curve)

The G-Curve reflects sovereign debt yield benchmarks for maturities from 0 to 15 years. As at the Moscow Exchange, it is described by the Nelson–Siegel–Svensson (NSS) model:

$$y(t) = \beta_0 + \beta_1 \left( \frac{1 - e^{-t/\tau_1}}{t/\tau_1} \right) + \beta_2 \left( \frac{1 - e^{-t/\tau_1}}{t/\tau_1} - e^{-t/\tau_1} \right) + \beta_3 \left( \frac{1 - e^{-t/\tau_2}}{t/\tau_2} - e^{-t/\tau_2} \right)$$

where $y(t)$ is the zero-coupon yield for term $t$ (in years) and $\beta_0, \beta_1, \beta_2, \beta_3, \tau_1, \tau_2$ are the NSS coefficients. To compare a bond with the curve, Firewire takes $y(t)$ at the bond's Macaulay duration. Firewire uses a fixed, approximate set of NSS coefficients close to the Moscow Exchange parameters; they are not loaded from the exchange daily, so the curve shows the OFZ rate level approximately.

What the chart shows. The “OFZ Zero-Coupon Yield Curve (G-Curve)” widget displays two things: the OFZ G-curve line for terms from 0 to 15 years and dots for the portfolio's bonds. Each bond is placed by its duration (X axis, years) and yield to maturity (Y axis, %); hovering shows the bond name, duration and yield. The higher a dot sits above the curve, the more the bond yields over an OFZ of the same term. Bonds without a computed duration or yield to maturity are not plotted. When there is no curve data, the widget says so instead of drawing a sample curve.

2. Z-Spread (Zero-Volatility Spread)

Z-spread represents the constant spread in basis points (bp) added to the G-Curve rate $G(t)$ at each cash-flow date so that discounted cash flows equal the bond's market price $P$ (dirty, including accrued interest):

$$P = \sum_{t} \frac{C_t}{(1 + G(t) + Z)^t}$$

Firewire does not currently display the Z-spread as a separate metric. The G-curve chart shows the distance between a bond's yield and the curve at its duration — a simplified estimate of the spread over OFZ, not the Z-spread, which accounts for the timing of every payment and usually differs from that gap.

3. Floater Coupon Predictor

Enables What-If scenario modeling for floating-rate bonds tied to the Bank of Russia key rate or RUONIA (e.g. $\text{KR} + 1.5\%$). Their future coupons are unknown in advance, so they have to be forecast.

In the Floater Coupon Predictor widget you set the expected key rate with a slider, and Firewire recalculates the coupon of each floater in the portfolio by its formula:

$$C_{\text{forecast}} = \text{KR}_{\text{forecast}} + s$$

where $s$ is the floater's spread over the key rate. This shows how coupon payments change if the rate goes down or up.

← Back to Methodology