Bond Total Return: What a Year of Holding Actually Gives
Total return over a period is everything the holding paid out, plus the change in the price of what is still there, measured against what was paid at the start. There are two parts: an income part and a price part. On the three year government bond bought at par here, they come to 6.523518 per cent and 0.520006 per cent, so the year's total return is 7.043523 per cent.
Run any bond through the four steps
| Coupons falling due inside the period, 1 of Rs 65.2352/- | Rs 65.2352/- |
| Interest earned on coupons already in hand | Rs 0.0000/- |
| Change in the price of what is still held | Rs 5.2001/- |
| Everything the period produced | Rs 70.4353/- |
| Divided by what was paid at the start | Rs 1,000.0000/- |
| Total return for the period | 7.0435 per cent |
- With every field as it opens, the yield it was bought at reads 6.5235 per cent and the year's return reads 7.0435 per cent. Writing the first figure into the return row is the error, and the block below prints what it costs.
- Typing the yield it was bought at into the end yield box makes both read 6.523518. The gap closes to nothing. That single setting is the only one at which the naive answer is right, and it is a flat schedule rather than the one this guide records.
- Set the years to maturity to 10, leave the period at 1, and drag the end yield up to about 9 per cent. The price limb runs left of the zero line, swamps the coupon limb, and the year comes in well below nothing while the coupon carries on arriving exactly as promised.
- Hold that end yield and walk the period out year by year. Somewhere along the way the coupon limb catches the price limb and the total crosses back through zero, which is the same offsetting the whole subject turns on.
Every figure the instrument opens with also stands as ordinary text here, so a reader who never touches a box still has the whole worked case. A three year government bond of Rs 1,000.00/- face and 6.523518 per cent coupon, bought at par and held one year, pays a single coupon of Rs 65.235176/- and reinvests nothing. The remainder is a two year bond worth Rs 1,005.200058/-, so the price limb adds Rs 5.200058/-. On Rs 1,000.00/- paid, the year produced Rs 70.435234/-, or 7.043523 per cent: 6.523518 of coupon and 0.520006 of price. The two remaining years price at 6.238937 per cent a year, the figure the 5.90 and 6.25 per cent nodes come to between them.
One addition, one subtraction and one division make up the entire computation. If the arithmetic were the difficult part, the subject would be four lines long. The difficulty sits one step earlier, in the number fed to the division.
Here is the shape of the trouble. A reader buys the bond at par, holds it twelve months during which nothing happens to the schedule of rates, and writes the rate it was bought at into the return row. The answer is wrong by 52.0006 basis points on the invented schedule this guide uses, and it is wrong precisely because nothing moved. A bond held for a year is a shorter bond, and a shorter bond is priced against a different set of rates.
A government bond is bought at par, and the rate it was bought at is 6.523518 per cent a year. It is held for exactly one year, and over that year the schedule of rates does not move at all. What is the year's return?
What are the two parts, and why is neither the rate the bond was bought at?
Total returnEverything received during a period plus the change in price over that period, measured against what was paid at the start. over a period is what came out of the holding, plus what it is worth now, less what was paid, all divided by what was paid. The definition sounds like three ideas. There are two: the second and third terms are the change in price, and the first is the cash.
Give each one a name. The income partThe cash the holding actually paid out during the period, measured against what was paid at the start. is the cash the holding paid out while it was held; the price partThe change in the price of whatever is still held at the end of the period, measured against what was paid at the start. is the change in the price of what is still sitting there at the end. Neither part alone is the return, and quoting one of the two as though it were the whole is the commonest way a return gets misstated.
| R | the total return for the period, as a decimal, which is then written as a per cent a year when the period is a year |
| C | every rupee the holding paid out during the period, added up as it arrived and not reinvested |
| P0 | what was paid at the start of the period, taken from the contract note rather than from the face amount |
| P1 | the price at the end of the period of whatever is still held |
Split the same fraction into its two limbs and the structure becomes visible. The divisor is common to both.
| C / P0 | the income part, the cash collected measured against what was paid |
| (P1 - P0) / P0 | the price part, the movement in price measured against the same amount |
Now the sentence that catches almost everybody. The rate a bond was bought at describes the whole of its life, on two conditions: that it is held to the end, and that every payment received is put back to work at that same rate. A year is not the whole life, so a year's total return answers a different question.
The everyday version costs nothing to picture. A tailoring shop takes Rs 40,000/- across one month, and nobody would call that the shop's takings for the year. A rate quoted for the life of a bond and a return measured across one year of it are a whole and a slice in the same way, and readers merge them only because both arrive wearing a per cent sign.
There is a second reason the two drift apart, and it belongs to bonds rather than to shops. A bond's price is a fact about the bond and the schedule of rates it is valued against, not about the bond alone. A year of holding makes the bond shorter, so the stretch of schedule it is valued against changes even when the schedule has not moved.
A total return over a period splits into exactly two parts. Which two?
What has to be true before an end price can be computed at all?
Step three of the procedure below will ask for a price at the end of the year, and a price needs a rate. A guess would make the answer a report on the guess, so the rate cannot come from one.
The rate comes instead from a schedule invented for teaching, belonging to no market anywhere, on one condition stated in the open: the schedule has not moved between the start of the year and the end of it, and every figure below carries that condition rather than leaving it in a footnote. Schedules of rates do not in fact sit still. Holding this one still is the condition under which a stranger with a calculator can reproduce the arithmetic below.
The invented schedule records six horizons and six SPOT rateThe rate for money placed today and returned at one stated future date. readings against them. One year, 5.90 per cent a year. Two years, 6.25 per cent. Three years, 6.55 per cent. Five years, 6.90 per cent. Ten years, 7.35 per cent. Thirty years, 7.60 per cent. Six numbers, and nothing between them.
Now the convention, and it belongs inside the arithmetic rather than in a note beneath it. Every rate and price here is struck on annual compoundingOne discounting period a year, so an amount due in three years is divided by one plus the rate, three times over., so an amount due in three years is divided by 1.0655 three times over. The same six numbers on a semi-annual convention throw out different prices, and a reader not told which convention is running cannot reproduce one sum in this guide.
Which four steps produce the number, and which one goes wrong?
The procedure is four steps, always in this order. Nothing about it is specific to bonds: the same four steps compute a year's return on a shop, a flat or a deposit. Step three is what is specific to bonds: it has an exact answer rather than an opinion.
Step one, write down what was paid at the start. The number written down is the divisor for both limbs, and the arithmetic collapses if it is replaced by something that looks similar. Here it equals the face amount, Rs 1,000.00/-, because the bond was bought at parPriced at exactly the face amount, which on a newly issued bond makes the coupon rate and the yield the same number.. The match between what was paid and the face amount will not survive most bonds encountered in practice.
Step two, add up every payment received during the period, as it arrived. One coupon here, Rs 65.235176/-, sitting in cash. The coupon is not put back to work. Putting it back to work would be a different calculation with a different name.
Step three, price whatever is still held at the end on the rates for its remaining lifeWhat is left of a bond's term at the end of the holding period, which is the term its end price is struck on., not on the rates for the life it started with. Step three is the step that goes wrong, and it goes wrong quietly.
Step four, add the income to the price change and divide by what was paid. Then write the period, the condition and the base beside the answer.
| P1 | the price at the end of the holding period of whatever is still held |
| n | the original term in years, so that n minus 1 years remain after a year of holding |
| CFt | the payment falling due t years after the end of the holding period |
| st | the SPOT rate recorded at the t year horizon, on annual compounding, unchanged over the year |
Read the subscript on that sum and the rule falls out of it. Which rates apply at the end depends on one thing only: what is left of the holding. Not on what it was, not on what it was called, not on the rate it was bought against.
| What is still held after one year | Payments left | Which SPOT rates strike the end price |
|---|---|---|
| The three year government bond | 2 | The one year node at 5.90 per cent and the two year node at 6.25 per cent |
| The three year zero coupon claim | 1 | The two year node at 6.25 per cent, alone |
| The two year zero coupon claim | 1 | The one year node at 5.90 per cent, alone |
| The one year zero coupon claim | 0 | None. It has matured and pays Rs 1,000.00/- |
The everyday version, because the rule is more familiar than it looks. A household takes a five year loan and pays it for two years. When the manager reprices it, the schedule that matters is the three years still running, not the five that were signed for. Nobody finds that strange on a loan.
A three year government bond has been held for exactly one year on a schedule of rates that has not moved. Which SPOT rates is its end price struck on?
What does the three year bond actually hand over in a year?
Take the three year government bond issued at par on this invented schedule. Its coupon is 6.523518 per cent a year, or Rs 65.235176/- on Rs 1,000.00/- of face. The coupon is not a number anybody chose: it is the rate that discounts the three payments back to exactly the face amount at the recorded one, two and three year nodes.
Run the steps. Step one: Rs 1,000.00/- paid. Step two: one coupon of Rs 65.235176/- received and held as cash. Step three is where the work is. The holding that remains is a bond with two payments still to come: Rs 65.235176/- falling due in a year, and Rs 1,065.235176/- in two, the second being the last coupon together with the face amount. The table below discounts them at the one and two year nodes.
| What is still due after a year | Years away | Discounted at | Present value |
|---|---|---|---|
| Coupon | 1 | the one year node, 5.90 per cent | Rs 61.600733/- |
| Coupon plus the face amount | 2 | the two year node, 6.25 per cent | Rs 943.599325/- |
| The end price | Rs 1,005.200058/- |
Step four. Rs 65.235176/- of income and Rs 5.200058/- of price change make Rs 70.435234/-, and over Rs 1,000.00/- that is 7.043523 per cent for the year, 6.523518 per cent of it income and 0.520006 per cent price.
The bond was bought at a rate of 6.523518 per cent a year and it handed over 7.043523 per cent across the year, and the gap between those two figures is the entire reason this guide exists. Nothing happened. No payment was missed, no schedule moved, the holder did not so much as look at a screen. Payments once discounted against rates reaching to 6.55 per cent are now discounted against a set that stops at 6.25 per cent, so the price still walked to Rs 1,005.200058/-.
State the gap in both of its units and do not let either travel alone. The gap is 0.520006 percentage points, and in the smaller unit, where one basis pointOne hundredth of a percentage point, so 0.520006 percentage points is 52.0006 basis points. is a hundredth of a percentage point, 52.0006 basis points.
At the end of the year the holder has Rs 65.235176/- in cash and a bond worth Rs 1,005.200058/-, having paid Rs 1,000.00/- at the start. What is the year's total return?
Now look ahead. A zero coupon claim pays nothing at all during the year it is held. Does that make its total return for the year nil?
What does a claim that pays nothing during the year return?
The coupon bond is the comfortable case. Something is paid, and the something is visible. Take the income part away and the procedure has to stand on step three alone.
Buy the two year zero coupon claim on Rs 1,000.00/- of face. On this schedule it costs Rs 885.813149/-, or Rs 1,000.00/- divided by 1.0625 twice. A year later it is a one year claim, and a one year claim on the unchanged schedule costs Rs 944.287063/-. Received during the year: nothing. Price change: Rs 58.473914/-, and over the Rs 885.813149/- paid that is 6.601157 per cent.
Now the three year claim, the same steps with different inputs. The three year claim costs Rs 826.684201/-, or Rs 1,000.00/- divided by 1.0655 three times, and a year later it is a two year claim worth Rs 885.813149/-, the identical price the two year claim was bought at a moment ago. Received: nothing. Price change: Rs 59.128948/-, and over Rs 826.684201/- that is 7.152544 per cent.
Two claims on the same government, both held for exactly one year, both paying not a single rupee along the way, and they return 6.601157 per cent and 7.152544 per cent, a gap of 0.551387 percentage points, or 55.1387 basis points. Nothing about the borrower differs and nothing about the year differs. The difference is the stretch of schedule each one crossed.
Hold on to those two figures. Neither is a new number, and the next section finds both sitting inside the six recorded SPOT rates, where they had been all along.
Why are those two returns not new numbers at all?
Take the first of them, 6.601157 per cent, and ask something that has nothing to do with holding anything. What does this schedule charge for money placed at the end of year one and returned at the end of year two? The charge for that stretch is a FORWARD rateThe rate for money placed at one future date and returned at a later one, derived from two SPOT rates rather than observed on its own., derived from two SPOT rates rather than quoted.
| f1,1 | the one year one year FORWARD rate, covering the stretch from the end of year one to the end of year two |
| s1 | the SPOT rate recorded at the one year horizon, 5.90 per cent a year on annual compounding |
| s2 | the SPOT rate recorded at the two year horizon, 6.25 per cent a year on annual compounding |
Put the recorded figures in. 1.0625 squared is 1.12890625, and divided by 1.0590 that is 1.066011568, so the second year on its own is 6.601157 per cent a year. The third year comes the same way: 1.0655 cubed is 1.20965176, divided by 1.12890625 that is 1.071525436, so 7.152544 per cent. Both figures are the two claims' holding period returns, to the last decimal.
With the schedule unchanged, a one year holding period return is the FORWARD rate for that year, and it has to be. The FORWARD rate is by construction the price the schedule puts on that stretch of time. The tool has produced no new information. The four steps have re-derived the long way round something the six recorded SPOT rates were already carrying, and that is the check closing.
Which brings up the one thing this subject area insists on. Every rate carries the word SPOT or the word FORWARD, every time. A SPOT rate prices money placed today and returned at one stated future date; a FORWARD rate prices money placed at one future date and returned at a later one. Here they sit uncomfortably close: the one year one year FORWARD rate is 6.601157 per cent a year against a recorded three year SPOT rate of 6.55 per cent, leaving 0.051157 percentage points between them, or 5.1157 basis points.
Nothing has been moved to separate those two. On any smooth schedule the FORWARD readings land near the SPOT readings, so a reader who meets both without labels will merge them and never notice. A FORWARD rate is therefore never quoted bare: written as a quotient of two SPOT rates it is visibly arithmetic, and written alone it looks like a forecast.
The two year zero coupon claim returned 6.601157 per cent across the year, on a schedule whose one year node records 5.90 per cent and whose two year node records 6.25 per cent. Which rate does that figure equal?
Two zero coupon claims on the same government, both held for the same twelve months, returned 6.601157 per cent and 7.152544 per cent. What explains the difference between them?
What has to be printed beside every total return figure?
Three things, and a figure missing any one of them cannot be checked by anybody. A figure nobody can check cannot be argued with either.
First the holding periodThe stretch of time a return belongs to, without which a return figure has no meaning at all.. The figure 7.043523 per cent is a return for one year. Detached from the year it is not a small figure or a large one; it is not a figure at all.
Second the condition. Every number in this guide holds because the schedule of rates did not move across the year. The condition is load bearing rather than small print, and it is printed inside the drawings as well as beside the prose.
Third the base. The divisor is what was paid at the start: Rs 1,000.00/- on the coupon bond, equal to the face amount only because it was bought at par, and Rs 885.813149/- on the two year zero coupon claim, nowhere near it. The same rupees of gain against a different base give a different rate.
Every figure so far rests on a schedule that did not move, and a schedule that moves needs a scenario before any of it can be recomputed. A rise in the yield or a fall in the yield across the year shifts the end price and with it the price limb, and a scenario built for the occasion would report the invention rather than the bond. The calculator above runs on whatever end yield is supplied, and that figure is then the reader's own assumption.
The wording of a move matters as much as its size. A bond that has gone up has risen in price and fallen in yield, so the bare words mean the price in one sentence and the yield in the next. Every move is therefore a rise in the yield or a fall in the yield, spelled out in full.
A bond's total return is handed over as 7.043523 per cent and nothing else. Which three things have to be stated beside it before it can be checked?
Which claims in this record can this tool be run on?
Six horizons carry a recorded SPOT rate on this invented schedule and there is nothing between them. No four year node, no nine year node, no twenty nine year node.
The tempting move is to draw a line between the recorded points and read a value off it wherever one is wanted. The move is not available here, and the reason is not fussiness. A straight line between two nodes and a curved fit through all six disagree about what sits at four years, so a figure read off either reports the method rather than the schedule. Where a rate is not recorded, no rate is stated.
The refusal bites here. Step three needs a SPOT rate for the remaining life, and remaining life is what a year of holding changes. Three of the six recorded claims can be run through this tool and three cannot, and the three that cannot are drawn as empty cells with the missing SPOT rate named inside them rather than filled with something plausible.
Work through it. The one year claim has matured after a year, so no end price is needed: its return is Rs 55.712937/- over the Rs 944.287063/- paid, or 5.900000 per cent, the one year SPOT rate itself. The two year claim becomes a one year claim and the three year claim a two year claim, and both nodes are recorded. Then it stops. The five, ten and thirty year claims become four, nine and twenty nine year claims, and not one of those rates is recorded. Give the tool a four year node and it would run happily.
Can this tool compute a one year holding period return on the five year zero coupon claim?
How are the four steps run on any claim in this record?
The control below moves through every holding this record carries, and it does two jobs. The control shows how the split between the income part and the price part flips between a coupon bond and a claim that pays nothing, and it refuses out loud on the three horizons whose end price would need a rate that was never recorded.
The income limb carries the lesson here rather than the total. Moving from the coupon bond to any zero coupon claim makes the income limb vanish, and the total barely shifts. The whole claim sits in one movement of a slider. A reader who has seen only one worked example carries that split away as though it were the general shape of things.
The four steps, run on every holding in this record
One control, seven positions, four of which produce an answer and three of which refuse.
- Paid at the start: Rs 1,000.000000/-
- Received during the year: Rs 65.235176/-
- Priced at the end on the one year node at 5.90 per cent and the two year node at 6.25 per cent: Rs 1,005.200058/-
- Rs 65.235176/- plus Rs 5.200058/- over Rs 1,000.000000/- is 7.043523 per cent for the year
Every figure the control opens with also stands as plain text in this guide: the one year claim returns 5.900000 per cent, the two year claim 6.601157 per cent, the three year claim 7.152544 per cent, and the five, ten and thirty year positions produce nothing at all.
Who computes a year of total return, and what for?
The four steps are the arithmetic underneath several jobs that look unrelated from the outside.
A person who has bought a government bond and wants to know how the year went cannot read the answer off the coupon. The coupon says what arrived in cash; it cannot say what happened to the value of what is still held, and on this schedule that second part was worth 52.0006 basis points without anybody lifting a finger. Two households holding the identical bond, one to the end and one for a year, are answering different questions and will correctly get different numbers.
A lender holding government bonds against deposits it has to repay runs the same four steps for a different reason. The pairing is what matters there: a holding measured over a year sits beside a liability measured over the same year, and the comparison only works when both are measured across the same stretch of time on the same conditions. The price at which such a holding is carried in the books is settled by the Reserve Bank of India at rbi.org.in.
An analyst pulling apart somebody else's reported return uses the split rather than the total. One return has been received in cash and the other is still sitting inside a price, so a return that is nearly all income and one that is nearly all price are different animals even when they print the same number. The split carries more information than the total does.
And a person comparing a bond against a deposit for the coming year is comparing two total returns, whether or not they know it. Nothing in a deposit has a price that can move, so the deposit's answer is all income and no price. The bond's answer has both limbs. Setting the deposit's rate against the bond's coupon compares one whole thing with half of another.
What goes wrong when the coupon rate is written down as the year's return?
The error, its size, and where the missing amount went
A reader buys the three year government bond at par, notes that it was bought at a rate of 6.523518 per cent a year, holds it for twelve months during which the schedule of rates does not move by a single basis point, and writes 6.523518 per cent into the row marked return. It is wrong. The year's return was 7.043523 per cent, a full 0.520006 percentage points higher, or 52.0006 basis points.
The error is durable for one reason: it survives the reader's own sanity check. Nothing moved, so nothing should have changed, and the wrong answer feels more principled than the right one.
Here is where the missing amount came from. The bond was bought as a three year claim, priced against a set of nodes reaching up to 6.55 per cent at three years. A year later it is a two year claim, priced against the one year node at 5.90 per cent and the two year node at 6.25 per cent, and both of those sit below the node it lost. The same promised payments discounted at lower rates are worth more, so the price walked from Rs 1,000.00/- to Rs 1,005.200058/- while the holder did precisely nothing.
Who makes it: very nearly everybody who was taught that the yield to maturity is the return on a bond. The statement about yield to maturity is true for a holder who keeps the bond to the end and puts every payment received back to work at that same rate, and neither of those conditions holds across a single year of a three year bond. The teaching is not wrong; it has simply been carried into a question it was never answering.
The cost, beyond this one figure: a year's return understated here, an overstatement in the mirror case where the schedule slopes the other way, and worse than either, the habit of quoting a rate without saying what period it belongs to. The habit of quoting a bare rate outlives the arithmetic error and does more damage.
The fix is step three, and only step three. The bond that remains is priced on the rates for its remaining life, and the period, the condition and the base are stated beside the answer. The calculator above produces this error on demand: left as it opens, it prints the two figures side by side.
Where the rule set lives, and why not one row here is filled in
Every figure above is arithmetic on an invented schedule, and the only convention written into it is the compounding basis. The sums cannot be reproduced without that basis, so it sits inside them rather than under them. Everything else a real holding would meet is named below and left blank. Confirm each row at its source before relying on it.
| The item | Where it is settled |
|---|---|
| The compounding convention a published yield is stated on | The Reserve Bank of India, rbi.org.in |
| The day count convention a yield calculation must use | The Reserve Bank of India, rbi.org.in |
| How a government security's price is quoted, and on what basis | The Reserve Bank of India, rbi.org.in |
| The valuation norm that decides the price at which a holding is carried | The Reserve Bank of India, rbi.org.in |
| The treatment of a coupon received and of a gain on sale | The Reserve Bank of India, rbi.org.in |
| The convention that decides when a purchase is paid for and delivered | The Reserve Bank of India, rbi.org.in |
| How a benchmark government yield curve is constructed and published | The Clearing Corporation of India Limited, ccilindia.com, and the Reserve Bank of India, rbi.org.in |
| Corporate debt and an issuer's disclosure, which this arithmetic never touches; where such a row would go | The Securities and Exchange Board of India (SEBI), sebi.gov.in |
Not one of these rows is filled in, and none of the arithmetic above depends on any of them except the compounding basis, stated as annual throughout.
References
| Source | Named for | Where |
|---|---|---|
| The Reserve Bank of India | The compounding convention a published yield is stated on, the day count convention, the quotation basis for a government security, the valuation norm that decides the carrying price, the settlement convention, and the treatment of a coupon received and of a gain on sale. Named, none stated. | rbi.org.in |
| The Reserve Bank of India, data site | The route to any measured series. | dbie.rbi.org.in |
| The Clearing Corporation of India Limited | How a benchmark government yield curve is constructed and published. Named only, with no curve taken from it. | ccilindia.com |
| SEBI | Corporate debt, issuer disclosure and credit assessment, covered separately. Named as the route should such a row ever be needed. | sebi.gov.in |
The schedule of rates, the government bond and the zero coupon claims used throughout are invented.
Educational material. Not advice on any investment, tax, budget or market position.
