Fin Maverick
Foundations VocabularyAccounting & ReportingEconomics & MacroQuant Methods & ProgrammingBusiness & Company AnalysisCorporate Finance & ValuationBehavioural Finance
Banking & Market InfrastructureFixed Income & RatesDerivatives & Structured ProductsPublic EquitiesTransactions & DealsPortfolio ConstructionFunds & AMCs
Private Markets & AlternativesRisk, Treasury & ControlAI & Digital FinanceStochastic Calculus & PricingWealth & Personal FinanceIndian Markets & RegulationProfessional Practice
CalculatorComparison
Frameworks
Explore Bootcamps
Equity ResearchPortfolio ManagementMutual Fund MasteryFinancial LiteracyInvestment Banking Analyst
Private Equity AnalystHedge Funds AnalystBreaking Into VCBreaking Into QuantsAI For Finance
Financial Analyst ProgramRisk Management ProgramPrivate Wealth ManagementDebt Capital MarketsDerivatives Foundation
Explore Internships
Equity Research InternMutual Fund Intern
Portfolio Management InternFinancial Literacy Intern
Explore Micro Courses

Equity Research6

Writing an Investment ThesisBuilding a Discounted Cash FlowReading an Annual Report FastReading a Sector Before a CompanySpotting Quality of Earnings Red FlagsBuilding a Revenue Forecast From Drivers

Portfolio Management3

Rebalancing: When, Why and What It CostsStrategic and Tactical Asset AllocationMeasuring Risk in a Portfolio

Mutual Fund Mastery3

Comparing Funds Without Being FooledHow a NAV Is Struck and Which Day You GetReading a Fund Factsheet Properly

Derivatives Unlocked4

Hedging a Real ExposureThe Greeks, PracticallyFutures, the Basis and What Moves ItReading an Option Payoff

AI For Finance2

Retrieval and Grounding for FinanceDocument Extraction in Finance

Breaking Into Quants4

Backtesting a StrategyHypothesis TestingCleaning Financial DataRegression for Finance

Breaking Into VC3

Sizing a MarketReading a Term Sheet as a FounderHow a Venture Round Actually Works

Financial Analyst Program4

Common Size and Trend AnalysisReading a Cash Flow StatementRatio Analysis That Says SomethingBuilding a Working Capital Schedule

Risk Management Program2

Credit Exposure and How It Is ReducedValue at Risk and What It Hides

Investment Banking Analyst3

Precedent Transactions and Why They DifferReading a Term Sheet StructurallyBuilding a Comparable Companies Table

Private Wealth Management3

Tax Aware Portfolio DecisionsBuilding a Client Risk ProfileGoal Based Planning Arithmetic

Debt Capital Markets3

Analysing an Issuer's CreditDuration and What It Does Not Tell YouBond Pricing and Yield Mechanics

Private Equity Analyst2

Fund Waterfalls and CarryThe LBO in Structure

Hedge Funds Analyst2

Short Selling MechanicsLong Short Mechanics
Courses
Explore Career Roadmaps
Investment Banking AnalystEquity Research AnalystVC AnalystPrivate Equity AnalystHedge Funds Analyst
Quant AnalystAI For FinanceFinancial Analyst ProgramPrivate Wealth ManagementDebt Capital Markets
Risk Management ProgramDerivatives FoundationPortfolio ManagementMutual Fund Mastery
PartnershipsShowdown
Log inSign up
Debt Capital Markets · CoreTrack
1Fixed Income, Credit & Rates
iBond Fundamentals
The BondBond Price and YieldPrincipalRedemptionFace Value, Par and PrincipalThe CouponThe IndentureThe IssuerMaturityFixed Income and Debt Securities
iiBond Pricing and Yield
What a Bond Yield…The Policy Rate and a Bond YieldCurrent Yield and Yield to MaturityYield to Maturity and Yield to CallThe Coupon and the YieldReinvestment RiskCarrySpread Return and Price Return
iiiInterest Rate Risk
Duration and ConvexityDuration and Convexity Calculator,…Key-Rate Duration vs Modified DurationThe Basis PointAccrued InterestRecovery RateSpot Rate and Forward RatePrepayment Risk and Extension RiskA Rate View and a Credit ViewInterest-Rate Risk and Reinvestment RiskHow to Analyse a…How to Review Prepayment…How to Analyse a…
ivRates Markets
The Term Structure of Interest RatesThe Yield CurveThe Forward RateThe Term PremiumParallel Shift vs Steepening…
vCurve and Carry Strategies
Curve StrategySteepener, Flattener and ButterflyHow to Read a…How to analyse a Yield-Curve ScenarioThe Butterfly TradeCarry and Roll-Down
viSovereign Bonds
Sovereign BondsPar Bond and Premium BondGovernment SecuritiesHow to Compare Government…Inflation-Linked BondsBond Total ReturnBond LadderHow to Read a Bond Term SheetHow to Map the…How to Analyse a…Treasury BillsTreasury Bill vs Sovereign BondThe Benchmark YieldThe Policy Rate and the Bond Market
viiCredit Risk
Credit RiskCredit Risk and Interest Rate RiskG-Spread, Z-Spread and Option-Adjusted…Credit SpreadTerm Premium and Credit SpreadHow to Build an…Rating ActionsDefault Rate, Loss Given…Expected Credit LossWhat a Credit Rating…A Rating Watchlist EntryThe Fallen AngelThe Credit CurveInvestment Grade and High YieldCollateral vs Guarantee
viiiCredit Analysis
Credit AnalysisCollateral, Guarantee and Credit…How to analyse a…Seniority and SubordinationCovenantsLeverage RatiosGross Leverage and Net Leverage
ixCredit Events and Recovery
Credit EventsCredit Event vs Liquidity EventHow to update Credit…The Distressed ExchangeThe Default NoticeCovenant Breach vs Restructuring EventHow to analyse Default…
xSecuritisation
SecuritisationOriginator, Servicer and Trustee…How to map a…Mortgage-Backed SecuritiesThe TrancheAsset-Backed SecuritiesAsset-Backed Security vs Mortgage-Backed SecurityCredit EnhancementPrepaymentThe Cash Flow WaterfallExtension RiskWeighted Average Life
xiFixed Income Portfolios
Ladder, Barbell and BulletFixed Income Portfolio MeasuresBarbell vs BulletHow to Map the…Tracking Error in Fixed Income
xiiFixed Income Research
Fixed Income ResearchFixed-Charge CoverageHow to assess Fixed-Income…How to Write a…The Four Assumptions That…A Liquidity Assumption and…The Spread ThesisStating Limitations in Fixed…

Duration and Convexity Calculator, With the Error Shown

The calculator builds a bond’s payment schedule from its terms and its yield, then returns Macaulay duration, modified duration and convexity. For a chosen yield move it prints the straight line estimate, the same estimate with curvature added, and the full repricing. On the ten year bullet bond a 200 basis point rise leaves the line out by Rs 10.9315/- and the corrected estimate by Rs 0.7625/-.

What does this tool return for a bond entered by hand?

Six fields, and every one of them is a figure read off the instrument or chosen by the person doing the sums. The defaults are the ten year bullet bond worked throughout this calculator, so the panel opens on the example and every figure below it can be checked against the tables further down.

Work it out

The cash flow table, the three measures, and the two estimates against the repricing

The instrument's own terms. The amount repaid at the end, on which the interest rate is worked.
The instrument's own terms. This is the rate on the paper, not the yield.
The instrument's own terms. Which convention attaches to a real instrument is set by the regulator, not by the person doing the sums.
The instrument's own terms, counted from today to the last dated amount. Fractions are accepted.
Backed out of the price. It is the one rate that makes the payments add to what the bond costs, so it comes from the price rather than from a table.
A chosen figure. It is not read off anything, and no likelihood attaches to it.
400 bp fall in the yielda rise of 200 basis points400 bp rise in the yield
Rung one

Every payment, discounted, and the two weight columns built from it

Years outPaymentPresent valueWeightWeight times yearsCurvature weight
Rung two

The three measures, each one a total from the table above

MACAULAY duration
7.1191
years, the weight times years column added
MODIFIED duration
6.5613
per cent of price per 100 basis points
Convexity
58.4702
no natural unit, the curvature column scaled
Rung three

Two estimates and one repricing, on the chosen move

Duration only estimate
Rs 868.7730/-
the straight line, and the one that leans
Convexity corrected estimate
Rs 880.4671/-
the line plus the curvature term
Exact repricing
Rs 879.7045/-
every payment discounted again at the new yield
The duration only line is out by
Rs 10.9315/-
the repricing lands above the straight line
The corrected estimate is still out by
Rs 0.7625/-
the repricing lands below the corrected estimate
Of the straight line error, convexity removes
93.0 per cent
what is left is the third order remainder
HOW FAR EACH ESTIMATE IS OUT, ACROSS EVERY MOVE THIS PANEL ALLOWS Both curves are drawn without regard to sign, so height is the size of the error and nothing else. a rise of 200 basis points size of the yield move, in basis points The steep curve is the duration only error. The flat one is what convexity leaves behind.

Educational illustration, not a valuation, not a quotation and not a price anyone can deal on. The bond is whatever was entered and has no issuer. One yield is applied to every payment. The payment schedule is assumed not to change when the yield changes. Both durations and the convexity are held at their starting values throughout, which is itself the approximation being measured. The price is struck on a payment date, so no accrued interest sits inside any figure. No credit element anywhere. Nothing is stored: the numbers go when the tab closes.

Everything here is arithmetic on one table. A Macaulay duration is not a figure anybody looks up: it is a weighted average of the years a bond's payments arrive in, where each weight is that payment's present valueWhat a future rupee is worth when pulled back to today at a stated rate. A rupee arriving in ten years is worth less than one arriving next year. divided by the total price. So every input this tool needs is an input the price already needed. Convexity reuses exactly the same present values with a different weight on each. Nothing in this tool is a second data source. The calculator holds the payment schedule, rearranged three ways, and one full repricing to check the rearrangement against.

The meaning of these measures, and the reason a straight line laid against a curved relationship is wrong in a known direction, are covered separately. The table, the division, the second weight and the gap appear in the order they are worked. Any answer given here can be reproduced on paper.

What does this tool take in, and what does it refuse to take in?

Six fields carrying four things, and no fifth thing. Four of the fields build the payment schedule, one is the yield, one is the move the estimate is wanted for, and the compounding convention rides on the field marked payments a year. Most calculators of this kind hide one of the four and quietly assume it.

The first of the four is the cash flow scheduleThe list of dated amounts an instrument promises: how much arrives, and how many years out each amount is.: every payment, with its amount and the number of years until it arrives. For the ten year bullet bond used throughout this calculator, that is ten dated amounts. Nine of them are Rs 85.00/- and the tenth is Rs 85.00/- plus the Rs 1,000.00/- face amountThe sum written on the instrument that is repaid at the end. Interest is worked as a rate on it., which is Rs 1,085.00/-. A schedule works the way a household works out a wedding paid for in instalments: what is needed on paper is not one lump and one date, it is every amount and the month it leaves.

The second is the yield, as a rate per year. Here it is 8.50 per cent a year. The third is the compounding convention. The field marked payments a year asks for it outright rather than assuming it. The fourth is the size of the yield move the estimate is wanted for, entered in basis pointsThe unit a rate move is quoted in. Twenty five of them make a quarter of a percentage point, and four hundred make four whole points. rather than in per cent. A rate move is quoted that way in the first place, and converting it in the head is exactly where the mistakes begin.

The convention line, stated wherever a price is computed

Every price, yield and rate in this calculator is on annual compoundingInterest reckoned once a year rather than more often. Reckon it twice a year on the same headline rate and the arithmetic gives different answers.. The same numbers on a semi annual convention produce a different price, a different Macaulay duration, a different modified duration and a different convexity, so it is written next to every price it affects instead of being tucked into a note at the bottom. Which convention attaches to a real instrument is set elsewhere: for government securities by the Reserve Bank of India at rbi.org.in, and for corporate debt by the Securities and Exchange Board of India (SEBI) at sebi.gov.in.

The refusals are as informative as the acceptances. No output depends on a rating, so there is no field for one. Likelihood is not an input to any of these four numbers, and no field asks for a view about where rates are going. A single modified duration is built on one yield applied to every payment, so a second yield for a different part of the schedule has nowhere to go. That last refusal is not a limitation to apologise for. It is the definition of the number that comes back.

Where does each input come from, and in what form?

Field notes, and nothing else: where each figure is found and what shape it has to be in. The panel above carries the same notes beside the fields themselves. The meaning of each figure is covered separately.

InputWhere it is foundThe form it must be in
The payment scheduleThe instrument's own terms: the interest rate applied to the face amount, on the stated frequency, with the face amount added to the final paymentAmount in rupees, and years from today as a number, one row per payment
The yieldBacked out of the price. It is the single rate that makes those payments add to what the bond costs, so it comes from the price rather than from any tableA rate per year, as a decimal or a percentage, stated per year
The compounding conventionThe instrument's terms. Which convention attaches to a real instrument is set by the Reserve Bank of India at rbi.org.in for government securities and by SEBI at sebi.gov.in for corporate debtA stated frequency. Every figure here is annual
The size of the moveA chosen figure. It is not read off anything and it forecasts nothingA whole number of basis points, signed for a rise or a fall in the yield

Only one of the four inputs comes from outside the instrument, and that one is the move chosen by the person doing the sums. The other three are all readable off the terms and the price. Anyone holding the same three facts can therefore audit a duration figure, and a duration figure that cannot be reproduced from them is a number somebody typed rather than a number somebody worked.

The yield to maturityThe one discount rate that makes a bond's dated payments add up to exactly the price paid for it. The rate is read off the price rather than looked up. deserves one line of its own here, because it is the input readers most often try to find in the wrong place. The yield is not published for an invented instrument, and not published for most real ones either. The yield is solved for. The schedule and the price are held fixed, and the search is for the one rate that reconciles them. On the ten year bullet bond that rate is 8.50 per cent a year, and the interest rate written on the bond is the same 8.50. A bond whose two rates match prices at parPriced at exactly the face amount. Par pricing happens when the interest rate written on the instrument and the yield are the same number. at Rs 1,000.00/-.

Try it out

The estimated price change for a 50 basis point move is wanted, and 0.50 is entered into the box marked basis points. What does the tool return?

How does a table of ten payments become one waiting time?

Four moves, in one order, on one table. A reader who can draw this table can audit any answer this calculator or any other returns. The arithmetic is therefore run in the open rather than left inside the machine.

One table, four moves, and they only work in this order 1 Discount every payment at the yield, on annual compounding Ten present values. They add to Rs 1,000.00/-, which is the price 2 Divide each present value by the price to get its weight The first weight is 0.078341 and the tenth is 0.479880 3 Check that the ten weights add to exactly one Any other total means an amount, a date or the rate was entered wrongly 4 Multiply each weight by the year it arrives in, and add The total is 7.1191, and it is a MACAULAY duration measured in years Step 3 is not a formality. It is the only place in the four where a wrong input announces itself. Steps 1, 2 and 4 will return a tidy looking answer from a schedule that is missing a payment.
A Macaulay duration is four ordered moves on one table, and the third move is the only one of the four that catches a wrong entry before it reaches the answer.

Here is that table, worked in full on the ten year bullet bond at a yield of 8.50 per cent a year, on annual compounding. Read it as three columns of arithmetic and one column of checking.

YearPaymentPresent value at 8.50 per centWeightWeight times year
1Rs 85.00/-Rs 78.3410/-0.0783410.078341
2Rs 85.00/-Rs 72.2037/-0.0722040.144407
3Rs 85.00/-Rs 66.5472/-0.0665470.199642
4Rs 85.00/-Rs 61.3338/-0.0613340.245335
5Rs 85.00/-Rs 56.5289/-0.0565290.282644
6Rs 85.00/-Rs 52.1003/-0.0521000.312602
7Rs 85.00/-Rs 48.0187/-0.0480190.336131
8Rs 85.00/-Rs 44.2569/-0.0442570.354055
9Rs 85.00/-Rs 40.7898/-0.0407900.367108
10Rs 1,085.00/-Rs 479.8797/-0.4798804.798797
TotalRs 1,850.00/-Rs 1,000.00/-1.0000007.119063

The tool is doing exactly this and nothing cleverer. The present values add to Rs 1,000.00/-, which is the price, which is what makes the weights add to one. The weighted years add to 7.119063, and rounded to four places that is the 7.1191 the tool prints. Look at the tenth row for a moment. It carries a weight of 0.479880, so a single payment accounts for a little under half the price and for 4.798797 of the 7.119063. One payment therefore covers 67.41 per cent of the waiting time. The nine interest payments together carry 0.520120 of the weight and only 2.320266 of the waiting time. The asymmetry between the last payment and the nine before it is the whole reason a bullet bond behaves the way it does.

Adding the printed weight column by hand gives 1.000001, and adding the printed year column gives 7.119062 rather than 7.119063. Both are six place rounding residuals, one unit in the last printed place, and neither is a mistake in the arithmetic. The unrounded columns add to exactly one and to 7.119063. Only those totals can be exactly one, so the check in step three is run on them. A column of rounded parts is not obliged to add to its own rounded total, and forcing it to would mean printing one of the parts wrongly.

The weight, and the Macaulay duration built from it
$$ w_t = \frac{CF_t\,/\,(1+y)^t}{P} \qquad\qquad D_{mac} = \sum_{t=1}^{n} t \cdot w_t $$
CFtthe payment arriving in year t, in rupees, read off the instrument's terms
ythe yield per year as a decimal, solved for from the price, 0.085 here
tthe number of years until that payment arrives, 1 through 10 here
Pthe price, which is the sum of all the present values, Rs 1,000.00/- here
wtthe weight on year t, a fraction of the price, and the ten of them add to one
nthe number of payments, 10 here
What it says in wordsEach payment's weight is its present value divided by the whole price, and the Macaulay duration is the average of the years, with each year counted according to how much of the price arrives in it.

The arithmetic is friendlier than it looks. An everyday version shows why. Suppose a household is saving for four things over the next five years, and Rs 90,000/- of the Rs 1,00,000/- total is needed in year five. If somebody asked when the money is really needed, nobody would answer year three just because that is the middle of the window. The answer would be close to year five. Nearly all the money sits there. A Macaulay duration is that answer, worked properly: the average date, weighted by how much arrives on each date.

Try it out

The weight column is built and it adds to 0.9971 rather than to one. What went wrong?

Risk Management Program Bootcamp — Fin Maverick

What actually changes on dividing by one plus the yield?

The units. The change of unit is the answer, and it is the thing most often missed.

Take the Macaulay duration and divide it by one plus the yield for a single period. The modified duration lands. On the ten year bullet bond the division is 7.119063 over 1.085, and the answer is 6.5613. The modified duration is not a shorter waiting time. The division produced a different kind of number altogether: years went in and a percentage price change per percentage point of yield came out. Both figures describe the identical bond, exactly 1.085 separates them, and swapping one for the other makes the answer wrong by 8.5 per cent of itself.

MACAULAY DURATION 7.1191 a waiting time, in years divide by 1.085 one plus the yield per period MODIFIED DURATION 6.5613 a sensitivity, not a length The unit changes too: years becomes per cent of price for each 100 basis points of yield.
Dividing the Macaulay duration of 7.1191 years by 1.085 gives a modified duration of 6.5613, and the result measures a price response for each percentage point of yield rather than any span of time.
From a waiting time to a sensitivity
$$ D_{mod} = \frac{D_{mac}}{1 + y/k} $$
Dmacthe Macaulay duration, in years, 7.119063 here
ythe yield per year as a decimal, 0.085 here
kpayments per year under the stated convention, 1 here because everything in this calculator is annual
Dmodthe modified duration, a percentage price change per percentage point of yield, 6.5613 here
What it says in wordsThe modified duration is the Macaulay duration divided by one plus the yield for one period, and that single division turns a measure of time into a measure of price sensitivity.

Why the display must carry both words

A calculator that prints a bare duration has built the confusion into its own interface. The two numbers look interchangeable and are different enough to wreck an estimate, so the panel above gives each its own labelled line and its own unit, and never prints the word duration on its own.

A display that invites the mistake Duration 6.5613 Which of the two numbers is this, and in what unit? The display will not say. A display that prevents it MACAULAY duration 7.1191 years MODIFIED duration 6.5613 per cent of price per 100 basis points The tool prints both figures on two separate labelled lines, each carrying its own unit. A bare duration is two different numbers wearing one word, and only one of them is in years.
The output panel names the Macaulay duration in years and the modified duration as a sensitivity on two separate labelled lines, so that neither figure can be read as the other.
Try it out

The tool returns 7.1191 and 6.5613 for the same bond. Which one is multiplied by a 100 basis point move to estimate a price change?

Duration and What It Does Not Tell You — free micro-course from Fin Maverick

Why does convexity weight the same present values differently?

Because it is measuring a different thing about them. The Macaulay duration asks how far away each payment is. Convexity asks how sharply each payment responds, and a payment that is twice as far away responds more than twice as much.

The same ten present values are used again, but each is multiplied by the year times the year plus one, and the total is divided by the price and by one plus the yield squared. On the ten year bullet bond that gives 58.4702. Look at what the two multipliers do across the ten years. The duration weight runs 1, 2, 3 and on to 10. The convexity weight runs 2, 6, 12 and on to 110. The near payments barely register in the second column, and the far payment dominates it far more heavily than it dominated the first.

The same ten present values, read twice with two different weights ten present values, one for each year they add to Rs 1,000.00/- multiply each by t, the year it arrives in, then add them 7.1191 MACAULAY duration, in years multiply each by t times t plus one, add them, then divide by price and 1.085 squared 58.4702 CONVEXITY, no natural unit Two totals, one table. Nothing new was fetched between the left branch and the right one.
Multiplying each present value by its year produces the Macaulay duration of 7.1191 years, while multiplying it by the year times the year plus one produces a convexity of 58.4702, so the two measures read one table with two weights.
Convexity, from the same present values
$$ C = \frac{1}{P\,(1+y)^{2}} \sum_{t=1}^{n} \frac{t\,(t+1)\,CF_t}{(1+y)^{t}} $$
CFtthe payment arriving in year t, unchanged from the duration table
tthe year the payment arrives in, so t times t plus one runs 2, 6, 12 and on to 110
ythe yield per year as a decimal, 0.085 here, on annual compounding
Pthe price, Rs 1,000.00/- here
Cthe convexity, 58.4702 here, a pure number with no natural unit
What it says in wordsConvexity takes the same present values, weights each one by its year multiplied by the year plus one, adds them, and scales the total by the price and by one plus the yield squared.

Convexity has no unit a reader can feel. The panel therefore never shows it on its own, and always shows what it is worth inside an estimate. Nobody has an instinct for 58.4702. People do have one for Rs 10.9315/- on Rs 1,000.00/- of face. A figure with no unit cannot be sanity checked, and the fix is to convert it into rupees rather than to explain the unit better.

Try it out

Two bonds are entered into this tool and both return a modified duration of 6.5613. One returns a convexity of 58.4702 and the other 49.0986. What has that established?

Try it out

The panel puts the estimate and the full repricing side by side for a 200 basis point rise in the yield. Which of the two shows the larger loss?

Bond Pricing and Yield Mechanics teaches you to price a bond, move the yield, and explain the direction out loud without guessing.

What does the tool print beside the estimate, and why is that the point?

Every calculator of this kind returns an estimate. The calculator here returns the estimate, then discounts all ten payments again at the new yield, and prints the difference between the two.

Work the default. The move is a 200 basis point rise in the yield, so the new yield is 10.50 per cent a year. The modified duration line multiplies 6.5613 by two percentage points, calls the price change minus 13.123 per cent, and puts the bond at Rs 868.7730/-. The full repricingDiscounting every one of the bond's payments again at the new yield and adding them, rather than estimating the change from a sensitivity figure. discounts Rs 85.00/- nine times and Rs 1,085.00/- once at 10.50 per cent a year and gets Rs 879.7045/-, which is minus 12.030 per cent. The printed gap is Rs 10.9315/-, or 1.093 percentage points, and the estimate is on the pessimistic side.

Now run the same default for a 200 basis point fall in the yield, so the new yield is 6.50 per cent a year. The modified duration line offers exactly the same 13.123 per cent, this time as a gain, and puts the bond at Rs 1,131.2270/-. The full repricing gets Rs 1,143.7766/-, a gain of 14.378 per cent. The gap is Rs 12.5496/-, or 1.255 percentage points, and now the estimate is on the low side.

The sign of that gap is the same on both sides, and that is the finding the second output exists to deliver. Wherever the yield ends up, the repriced bond lands above the line rather than on it, so a rise in the yield gives back a loss that is too large and a fall in the yield gives back a gain that is too small. The estimate is not merely imprecise. The estimate leans, and it leans the same way every time. A reader who has seen the lean once can correct for it in their head, and a reader who has not cannot.

The panel above prints a third price between those two. With the curvature term added to the straight line, the estimate moves from Rs 868.7730/- to Rs 880.4671/-, against a repricing of Rs 879.7045/-. The curvature term accounts for 93.0 per cent of the Rs 10.9315/- error and leaves Rs 0.7625/- behind, so convexity corrects the lean without closing it. What is left over is a remainder neither measure reaches, and unlike the duration error it does not lean one way: the repricing lands below the corrected estimate on a rise in the yield and above it on a fall.

Drive the move and watch the error rather than the price. Doubling the move from 25 to 50 basis points multiplies the straight line error by 3.9659, and doubling it from 200 to 400 multiplies it by 3.7503. The error grows close to four times for every doubling of the move, easing off as the move gets large. The size of the move rather than the bond decides whether the straight line is usable. Nothing in the modified duration on its own says where that crossover sits, which is why the panel prints the error in rupees rather than leaving anyone to judge it.

The estimate, the truth, and the gap between them
$$ \Delta P_{est} = -D_{mod}\,\Delta y\,P \qquad P_{new} = \sum_{t=1}^{n}\frac{CF_t}{(1+y+\Delta y)^{t}} \qquad G = P_{new} - (P + \Delta P_{est}) $$
Dmodthe modified duration, 6.5613 here, carried at full precision inside the tool
Δythe yield move as a decimal, so 200 basis points is 0.02
Pthe starting price, Rs 1,000.00/- here
Pnewthe price after discounting every payment again at the new yield, on annual compounding
Gthe gap, Rs 10.9315/- on a 200 basis point rise in the yield here
What it says in wordsThe estimate multiplies the starting price by the modified duration and the yield move, the truth discounts every payment again at the new yield, and the gap is the truth less the estimate, which is always positive on this shape of relationship.
Play with it

Move the yield. Watch a gap that is invisible at 25 basis points open up at 400.

One control, running from a 400 basis point fall to a 400 basis point rise. The top pair of bars prices the ten year bullet bond two ways. The bottom pair is the gap for each of the two bonds, on a magnifying scale that rescales itself so the small end of the range stays visible.

400 bp fall in the yielda rise of 200 basis points400 bp rise in the yield
THE TEN YEAR BULLET BOND, PRICED TWO WAYS Both bars start from a price of Rs 1,000.00/- at a yield of 8.50 per cent a year, on annual compounding. modified duration estimate Rs 868.7730/- full repricing Rs 879.7045/- 700 850 1,000 1,150 1,300 price in rupees, and this scale starts at Rs 700/- rather than at zero THE GAP, MAGNIFIED this scale runs from 0 to 1.10 percentage points ten year bullet bond 1.0932 points zero coupon bond 0.9294 points Both gap bars share one scale, and that scale rescales itself as the move changes.

For a rise of 200 basis points, the modified duration estimate puts the ten year bullet bond at Rs 868.7730/- and repricing puts it at Rs 879.7045/-, a difference of Rs 10.9315/-, and the estimate is on the pessimistic side.

Modified duration held at
6.5613
Estimated price
Rs 868.7730/-
Full repricing
Rs 879.7045/-
The gap in rupees
Rs 10.9315/-
Educational illustration. Not a pricing tool, not a valuation and not a quotation. The bond has no issuer. Annual compounding. One yield is applied to every payment. The payment schedule does not change when the yield changes. The modified duration is held at its starting 6.5613 throughout, which is itself an approximation. The price is struck on a payment date, so no accrued interest sits inside any figure. No credit element anywhere. Figures in rupees.
Try it out

With the move set to 25 basis points, is the magnified gap bar worth reading in rupees?

Try it out

The panel returns a duration only estimate of Rs 868.7730/-, a convexity corrected estimate of Rs 880.4671/- and an exact repricing of Rs 879.7045/-. What has the correction done to the error?

Debt Capital Markets Bootcamp — Fin Maverick

What does the same tool return on a different schedule?

The second worked set, and it is the reason this calculator carries two bonds rather than one. The zero coupon bond is a single payment of Rs 1,000.00/- arriving at the ten year bullet bond's Macaulay duration, discounted at the same 8.50 per cent a year on annual compounding.

The tool returns a price of Rs 559.47/-, a Macaulay duration equal to its own maturity, a modified duration of 6.5613 and a convexity of 49.0986. The modified duration is identical to the bullet's, and that is forced arithmetic rather than a coincidence: the zero's maturity was set equal to the bullet's Macaulay duration, a zero coupon bondOne that pays nothing at all until maturity, when the face amount arrives as the only payment. has a Macaulay duration equal to its maturity, and both are divided by the same 1.085. Two schedules with nothing in common are made to agree on one output by construction.

Then run the moves. On a 200 basis point rise the bullet bondOne that pays interest along the way and returns the whole face amount in a single lump at the end. falls 12.030 per cent and the zero 12.193; on a 200 basis point fall the bullet gains 14.378 per cent and the zero 14.162. Same modified duration in, different moves out in both directions, and nothing in the shared 6.5613 says which bond is which.

Three answers to one 200 basis point rise in the yield the straight line 13.123 per cent ten year bullet bond 12.030 per cent zero coupon bond 12.193 per cent 11.50 12.00 12.50 13.00 13.50 fall in price, in per cent This scale starts at 11.50 per cent rather than at zero, and it is drawn that way on purpose. That is what makes the 0.164 point difference between the two bonds visible at all.
Run on the ten year bullet bond and on the zero coupon bond, this tool returns a modified duration of 6.5613 for both and actual falls of 12.030 and 12.193 per cent, which is the 0.164 points convexity accounts for.

A precision note on the two printed prices

The zero coupon bond’s maturity is the bullet’s Macaulay duration. That maturity reads 7.1191 years to four places and 7.11906264 in full, and the two do not discount to the same price. In full the payment discounts to Rs 559.4657/-, printed above as Rs 559.47/-. From the four place version it is Rs 559.4640/-, rounding to Rs 559.46/-. About a sixth of a paisa separates them on Rs 1,000.00/- of face, and the same substitution shifts the curvature figure from 49.0986 to 49.0991. Neither is wrong, and a reader who lands one paisa away now knows why.

The caveat that rides with this pair, printed here rather than parked below

Notice that one yield of 8.50 per cent a year was fed to both instruments. The shared yield is an artefact of how the pair was built, and it makes the bullet bond’s extra curvature look as though it arrived for nothing. Outside an invented pair, curvature is wanted, and anything wanted has a cost attached to it. An instrument carrying more of it tends to change hands on a thinner yield, and no cost of that kind is available anywhere in the figures worked here. So the four repricings above describe how two invented schedules behave and carry no view on which of the two belongs in anybody's hands.

Try it out

The tool prints the zero coupon bond's price as Rs 559.46/- where Rs 559.47/- was expected. What happened?

What can this tool not compute, whatever is entered into it?

Five things, and naming them is not modesty. Each one is a boundary that can be walked into without complaint. A number comes back either way.

The calculator cannot handle a payment schedule that changes when the yield changes. The schedule goes in as given, and every output rests on it staying put. An instrument whose payments can be brought forward or pushed back when rates move breaks that assumption before the first present value is computed, and no amount of care with the four inputs repairs it.

The arithmetic cannot say whether the issuer pays. No field asks and no output depends on it, and both bonds here carry no credit element at all. Rate sensitivity is worked first where the only thing moving is the discount rate.

One yield is applied to every payment, and a single modified duration is defined on that assumption. The sensitivity cannot be split across separate points on a rate curve. Splitting it is covered separately.

Convexity can be measured here but not priced, and those are two different verbs. A more convex instrument is paid for, usually in a lower yield, and that cost sits in no figure worked here. Reading 58.4702 against 49.0986 as a reason to prefer one bond reads a measurement as a recommendation.

And it cannot say whether the move entered is likely. Likelihood is not an input and never becomes one, so a 25 basis point move and a 400 basis point move come back with the same arithmetic and no opinion attached to either.

The error that gets made, and what it actually costs

A reader runs the tool, reads the modified duration of 6.5613 and stops there. The reader now holds one number and treats it as the answer to how much the bond moves. It is not. The 6.5613 answers a different question: how much a straight line drawn at the current yield moves. The difference between the two answers is knowable.

On a 25 basis point move that difference is Rs 0.18/- on Rs 1,000.00/- of face and the habit forms harmlessly. On a 200 basis point move the line is out by Rs 10.9315/- on a rise in the yield and Rs 12.5496/- on a fall.

The cost is not the rupees. The damage is that the reader does not know the gap exists, so when a repriced figure disagrees with their estimate they go looking for a mistake in the repricing. That is exactly backwards, and it is the most expensive way to be wrong with a calculator: confidently, and in the direction of doubting the number that was right.

The fix is one line. Read the second output every time, and treat a gap of zero as a signal that the move was too small to be interesting rather than as proof that the estimate was exact.

TOOL OUTPUT, TEN YEAR BULLET BOND, 8.50 PER CENT, ANNUAL MACAULAY duration 7.1191 years MODIFIED duration 6.5613 estimated price after a 200 basis point rise Rs 868.7730/- full repricing at 10.50 per cent a year Rs 879.7045/- the gap between the two Rs 10.9315/- The reader stopped at the dashed line. Both greyed rows were computed and neither was read. Rs 10.9315/- on every Rs 1,000.00/- of face, in the direction that makes the loss look worse.
A reader who stops at the modified duration of 6.5613 never sees the Rs 10.9315/- gap, and will treat a correct full repricing as a mistake when it disagrees with the estimate.
Try it out

The gap comes out with the opposite sign to the one stated above. What is the first thing to check?

Who actually reaches for a tool like this, and for what

Three people, with three different questions, and only one of them wants the headline number.

The first is someone auditing a figure that arrived from somewhere else. A duration lands in a note or in a file and the only honest response is to reproduce it. An auditor holding the schedule, the price and the convention does not need the calculator at all: they build the four column table by hand, check that the weights add to one, and see whether they land on the same four decimal places. A duration figure that cannot be reproduced from the terms and the price is a number somebody typed, and this table is how an auditor finds out which of the two kinds is in hand.

The second is someone sizing a move rather than describing a bond. Somebody sizing a move accepts that the modified duration is a slope, and wants to know how far it can be leaned on before it misleads. For them the panel's last rung is the whole tool: at 25 basis points the line is worth Rs 0.18/- of error and at 400 basis points it is worth Rs 40.9967/-, so how big a move the line survives is a range rather than a rule.

The third is the person choosing the input in the first place, which is the least obvious use and the most valuable. Because the error grows faster than the move does, the move entered decides whether the estimate is usable at all, so the modelling choice is made before any output appears. A household estimating a taxi fare from the first kilometre's rate is in the same position: over two kilometres it is fine, over forty it is not, and nothing in the rate itself says where the crossover sits. The panel above says where the crossover sits, in rupees, for this bond.

None of the three is choosing a bond. One instrument beating another in both directions reads like a recommendation to a skimming reader, and it is not one. Every comparison here is between measurements of two invented instruments, not between holdings.

India

Where the rules on any of this actually live

Five rule set items are touched by the arithmetic above. Each is a row here naming the authority that sets it. Each of them moves, so the current text is held at the source named beside the row.

The itemWho sets itWritten out here
The valuation norms a regulated holder must value a bond againstReserve Bank of India, rbi.org.inNot filled in
Which curve that holder values against, and how the curve is put togetherReserve Bank of India, rbi.org.inNot filled in
The compounding and day count conventions that attach to a given instrumentReserve Bank of India, rbi.org.in, for government securities; SEBI, sebi.gov.in, for corporate debtNot filled in
What a regulated pooled vehicle must disclose about the duration it carriesSEBI, sebi.gov.inNot filled in
How a sensitivity figure must be computed for a regulatory returnReserve Bank of India, rbi.org.in, or SEBI, sebi.gov.in, depending on the holderNot filled in

The arithmetic above is written free of any jurisdiction, so a second market becomes an addition to this table.

This calculator computes. What a Macaulay duration means, why the price to yield relationship curves and what convexity is for are covered separately, and are used here rather than rebuilt. Splitting a single modified duration across separate points on a rate curve is covered separately. So is the accrued interest that sits between a quoted price and a settlement price, and this tool works on a price struck on a payment date, so no accrued interest sits inside any figure it returns. What a bond is and how a yield to maturity is found are covered separately. The valuation norms, the reference curve, the conventions, the disclosure duties and the computation method for a regulatory return belong to the Reserve Bank of India at rbi.org.in and to SEBI at sebi.gov.in, and the table above names all five. Where rates go next is nobody’s to state, and a measure of sensitivity is not a reason to hold one instrument rather than another.
Breaking Into Quants Bootcamp — Fin Maverick

References

SourceWhat it was named forSite
Reserve Bank of IndiaThe valuation norms a regulated holder values a bond against, the reference curve used for that, and the conventions attaching to a government securityrbi.org.in
SEBIWhat a regulated pooled vehicle discloses about the duration it carries, and how a sensitivity figure is computed for a regulatory returnsebi.gov.in
Repository of academic working papersThe route taken before any named academic result is written down. None is named above, because the arithmetic here needs noneideas.repec.org

The ten year bullet bond and the zero coupon bond are invented.
Educational material. Not advice on any investment, tax, budget or market position.

Covered in this topic

Subtopics

Active DurationSpread DurationConvexityDuration GapDuration MeasuresSpot RateInterest CoverageFixed-Charge CoverageKey-Rate DurationModified DurationRate ThesisDuration vs ConvexityHow to map Key-Rate Exposures
← PreviousNext →
Fin Maverick Micro CoursesExplore Micro Courses
Fin Maverick BootcampsExplore Bootcamps
Fin Maverick

Finance education that ends in a job, not a certificate that gathers dust. Built for young India.

LEARN
CalculatorsFrameworksComparisonsCareersShowdown
RESOURCES
All CoursesMicro CoursesBootcampsInternships
COMPANY
AboutJob openingPartnership
LEGAL
Privacy PolicyTerms & ConditionsContent LicenseReturn & Refund Policy
© 2026 FIN MAVERICK / BUILT FOR INDIA.DO FINANCE, DO NOT JUST READ ABOUT IT.