Markets: A Rigorous Course

11.1 Time value of money, bond pricing and yield to maturity

Core about 15 min

Motivation

Every asset is a claim on future cash. The rate used to discount that cash is set in the bond market, and the bond market takes its cue from central banks. A trader who cannot price a bond cannot reason about why the Nifty, gold or the rupee moved on a Fed day.

Setup

A bond is a loan sold as a security. The issuer pays a fixed coupon (interest) on a face value (principal) and repays the face value at maturity. Indian government securities (G-secs) have a face value of ₹100 and pay coupons semi-annually. They are issued by the RBI on behalf of the Government of India and trade on NDS-OM, the RBI's electronic order-matching platform for government bonds. Treasury bills (T-bills) are zero-coupon government paper with maturities up to a year.

11.1.1Pricing a coupon bond#

Notation:

  • face FF; annual coupon rate cc; mm coupons a year; N=mTN=mT remaining coupon dates;
  • valuation on a coupon date, so cash flows fall at tk=k/mt_k=k/m, with CFk=Fc/mCF_k = Fc/m for k<Nk<N and CFN=Fc/m+FCF_N = Fc/m + F;
  • yield to maturity (YTM) yy: the single annual rate, compounded mm times a year, that discounts the cash flows to the market price.

Between coupon dates the quoted clean price excludes accrued interest (the coupon earned since the last payment), and the buyer pays the dirty price = clean + accrued. The algebra below is on coupon dates. Off coupon dates it is the same, with fractional exponents.

A single cash flow XX at time tt has present value

PV=X(1+y/m)−mt.(11.1)PV = X(1+y/m)^{-mt}. \tag{11.1}

Summing over cash flows gives the bond price

P(y)=∑k=1NCFk (1+y/m)−mtk.(11.2)P(y)=\sum_{k=1}^{N} CF_k\,(1+y/m)^{-m t_k}. \tag{11.2}

For a coupon cc and per-period yield j=y/mj=y/m, the geometric sum gives the closed form

P=F[c/mj(1−(1+j)−N)+(1+j)−N].(11.3)P = F\left[\frac{c/m}{j}\left(1-(1+j)^{-N}\right) + (1+j)^{-N}\right]. \tag{11.3}

If c/m=jc/m = j the bracket is 1 and the bond prices at par. If the coupon is above the yield, the bond trades above par (a premium), and if below, under par (a discount).

11.1.2Solving for the yield#

Proposition 11.1existence and uniqueness of YTM

If all CFk>0CF_k>0, then P(y)P(y) is continuous, strictly decreasing and strictly convex on (−m,∞)(-m,\infty). Also P→∞P\to\infty as y↓−my\downarrow -m and P→0P\to 0 as y→∞y\to\infty. So for any market price P0>0P_0>0 there is exactly one yy with P(y)=P0P(y)=P_0.

Proof

Write v=(1+y/m)−1v=(1+y/m)^{-1}, which is a decreasing bijection from (−m,∞)(-m,\infty) onto (0,∞)(0,\infty). Then P=∑CFkvkP=\sum CF_k v^{k} is a polynomial in vv with positive coefficients. It is strictly increasing in v>0v>0, tends to 0 as v→0v\to0 and to ∞\infty as v→∞v\to\infty. Composing with the decreasing map y↦vy\mapsto v gives a continuous, strictly decreasing P(y)P(y) with the stated limits. The intermediate value theorem gives existence and strict monotonicity gives uniqueness. For convexity, differentiate (11.2) twice. Each term CFk(1+y/m)−mtkCF_k(1+y/m)^{-mt_k} has second derivative CFk tk(tk+1/m)(1+y/m)−mtk−2>0CF_k\,t_k(t_k+1/m)(1+y/m)^{-mt_k-2}>0.∎

The proof also tells you how to compute the YTM. Bracket the root, then use Newton's method with a bisection safeguard. Newton converges from any starting point on the left of the root, because PP is convex and decreasing. m11_bonds.yield_to_maturity does this.

Worked example 11.1

Take a hypothetical 10-year G-sec with a 6.50% coupon paid semi-annually, quoted at ₹98.50. Solving (11.2) gives y=6.708%y = 6.708\%. At ₹102.00 the yield is 6.228%. The price is ₹1.50 below par, and the yield is about 21 bp above the coupon. Section 11.2 shows why the size of that gap is about 1.5/(P⋅Dmod)1.5/(P\cdot D_{\text{mod}}).

Practitioner notes

  • The YTM is an internal rate of return. It assumes every coupon is reinvested at yy, and it collapses a whole term structure into one number. Two bonds of the same maturity but different coupons have different YTMs even on the same zero curve. This is the coupon effect.
  • Indian desks quote G-secs by yield, not price. The benchmark 10-year bond changes when a new 10-year is issued. On 4 Nov 2026 the 6.94% GS 2036 traded at about 7.19%, and ICRA's generic 10-year series read 7.32%1. The two numbers differ because they describe different bonds.
  • A yield change of 1 basis point (bp) is 0.01 percentage points.

Create a free account

Reading is open to everyone. An account keeps your progress, answers, notes and code drafts, and gives you the study plan, the journals and the simulator. Running code needs an account approved for it.