2ND · BOND
Bond Calculator
Price a bond from a yield, or back out the yield from a price, on any settlement date. Accrued interest, the invoice price that actually settles, duration, and the coupon-by-coupon discounting that produced the number.
- Clean price ↔ yield to maturity
- Accrued interest and invoice price
- ACT and 30/360 day count
- Duration and the price-yield curve
Background
What a bond price actually is
A bond is a fixed list of dated payments: a coupon every six months, and the principal back at the end. None of that changes once the bond is issued. What changes is the price the market is willing to pay for the list — and price and yield are two ways of saying the same thing, so quoting one fixes the other.
The price is the present value of the list at the buyer’s required return. A bond with a 5.25% coupon promises 2.625 twice a year per 100 of par. If the market wants 6%, those payments are worth less than 100 today and the bond trades at a discount. If the market wants 4%, the coupon is generous and the bond trades at a premium. Nothing about the bond has moved; only the rate at which its payments are discounted.
The complication is that bonds are bought on days that are not coupon dates. The seller has held the bond for part of the current period and has earned part of the coupon, even though the buyer will be the one to collect all of it. So the buyer reimburses that portion — accrued interest — on top of the quoted price. On the bond loaded above, 92 of the 183 days in the period have run, so 1.3197 of the 2.625 coupon belongs to the seller and the 94.5149 quote settles at 95.8345.
The formulas
How a bond price is calculated
Four quantities do all the work, and every one of them is a count of days or a discount factor. Write A for the days from the last coupon to settlement, E for the days in the whole coupon period, DSC for the days from settlement to the next coupon, and v for the fraction DSC ÷ E of a period still to run before the first coupon lands.
i = YLD ÷ frequency ÷ 100
AI = (CPN ÷ frequency) × A ÷ E
Invoice = Σ (CPN ÷ frequency) ÷ (1 + i) ^ (k − 1 + v) + RV ÷ (1 + i) ^ (N − 1 + v)
PRI = Invoice − AI
The k − 1 + v exponent is the only part that catches people. A coupon paid on the next coupon date is not a whole period away; it is v of a period away. The one after that is 1 + v, and so on. That single shift is what makes a mid-period price different from a coupon-date price, and it is why the answer moves every day even when the yield does not.
-
Locate the coupon period
Coupon dates are stepped back from redemption, not forward from issue, so a bond redeeming 15 June pays every 15 June and 15 December. Settlement on 15 September 2026 falls between the 15 June 2026 and 15 December 2026 coupons, leaving 20 payments to come.
-
Count the days under the chosen convention
On ACT the counts are actual: A = 92, E = 183, DSC = 91. On 30/360 every month is 30 days and every year 360, so A = 90, E = 180, DSC = 90 — a different fraction of the same period.
-
Discount every remaining flow and add them up
At a 6% yield the rate per period is 3%, v is 0.497268, and the 20 coupons are worth 39.6380 while the 100 of principal 9.749 years out is worth 56.1965. Those add to the 95.8345 invoice price.
-
Strip the accrued interest back out
95.8345 − 1.3197 = 94.5149, the clean price. This is the number that gets quoted, and the number the PRI register holds.
On the hardware
The BOND worksheet, field by field
Press 2ND BOND and the worksheet opens on SDT. Nine fields follow, reached with ↓. Two of them are settings toggled with 2ND SET rather than typed, and two are computed rather than entered.
| Field | Holds | This bond |
|---|---|---|
| SDT | Settlement date, entered MM.DDYY | 9.1526 |
| CPN | Annual coupon rate as a percentage of par | 5.25 |
| RDT | Redemption or call date, entered MM.DDYY | 6.1536 |
| RV | Redemption value per 100 of par | 100 |
| ACT / 360 | Day-count setting — 2ND SET toggles it | ACT |
| 2/Y · 1/Y | Coupon frequency — 2ND SET toggles it | 2/Y |
| YLD | Yield to redemption, entered or computed | 6 |
| PRI | Clean price, computed here | 94.5149 |
| AI | Accrued interest, always computed | 1.3197 |
The full sequence for the bond above is 2ND BOND · 9.1526 SDT ↓ · 5.25 CPN ↓ · 6.1536 RDT ↓ · 100 RV ↓ · ACT ↓ · 2/Y ↓ · 6 YLD ↓ · CPT PRI ↓ · AI. Three details cause most of the trouble with it.
Dates are MM.DDYY, not DD.MMYY. The date format follows the 2ND FORMAT setting, and 15 September 2026 is 9.1526 in the default US layout. A date entered the other way round is usually accepted without complaint and silently prices a different bond.
The worksheet does not clear itself. 2ND CLR WORK resets SDT and RDT to 12-31-1990, CPN and YLD to zero and RV to 100 — but only if you press it. Move straight from one bond to the next and the day-count setting, the frequency and any field you did not retype are still those of the previous problem.
AI is computed, never entered. If you type over it the worksheet ignores you. It is derived from SDT, CPN and RDT alone, which also means it does not change when you change the yield — a useful check that you have the dates right before worrying about the price.
Worked example
One bond, and what moves its price
Take the bond in the calculator: a 5.25% semiannual coupon redeeming at par on 15 June 2036, bought on 15 September 2026 at a 6% yield. The quote is 94.5149 and the invoice is 95.8345. On £100,000 of face value that is £94,514.86 for the bonds plus £1,319.67 of accrued interest — £95,834.53 out of the account on settlement day.
Held to redemption it pays 20 more coupons of 2.625 and then 100 back: £52,500 of coupons and £100,000 of principal, £152,500 in all against £95,834.53 paid. The £56,665 difference is not a return figure — it ignores when each pound arrives, which is precisely what the 6% yield does account for. Of the price itself, 58.6% is the discounted principal and 41.4% is the discounted coupon stream, which is why a long bond behaves so much more like a zero than a short one does.
| Change one thing | Clean | Invoice | Mod. duration |
|---|---|---|---|
| As loaded — 6% yield | 94.5149 | 95.8345 | 7.3611 |
| Yield falls to 5% | 101.9024 | 103.2221 | 7.4906 |
| Yield rises to 7% | 87.7720 | 89.0917 | 7.2300 |
| 30/360 day count | 94.5143 | 95.8268 | 7.3624 |
| Annual coupons instead of two | 94.5545 | 95.8778 | 7.2755 |
| 7% coupon instead of 5.25% | 107.2877 | 109.0472 | 6.9997 |
| Priced to a 2031 call at 102 | 98.4412 | 99.7609 | 4.0857 |
| No coupon at all | 56.1965 | 56.1965 | 9.4647 |
The day-count row is the smallest mover and the coupon row the largest, which is the opposite of what most people expect from a convention argument. Switching to 30/360 changes the clean price by six hundredths of a penny per 100 but changes accrued interest from 1.3197 to 1.3125 — the convention matters far more to what settles than to what is quoted.
The two yield rows show the asymmetry duration cannot capture. Modified duration of 7.3611 predicts an invoice price of 88.7801 if the yield rises a full point; the actual answer is 89.0917. It predicts 102.8890 if the yield falls a point; the actual answer is 103.2221. Both errors run the holder’s way, and on £100,000 of face value the difference is real money: a point of yield costs £6,742.82 but a point saves £7,387.57. Duration alone says both should be £7,054.46.
For small moves that asymmetry disappears and duration is exact enough. One basis point on this bond is £70.54 on £100,000 of face value, and that figure is stable over the few basis points a normal day produces — which is why a trading desk hedges on the value of a basis point and rechecks its duration only when the market has moved properly.
Troubleshooting
Five mistakes that account for most wrong prices
-
Entering the dates the wrong way round
SDT and RDT follow the 2ND FORMAT setting, which is MM.DDYY out of the box. Typing 15 September as 15.0926 is rejected, but typing 6 December as 12.0626 when you meant 12 June is accepted and prices a different bond. Check the accrued interest first: if the dates are wrong, AI is wrong before the yield gets a chance to be.
-
Comparing a clean price against an invoice price
A quote sheet gives clean prices; a settlement statement gives the invoice. If your answer is out by roughly a fraction of one coupon, you are almost certainly comparing the two. Both are on the results card above so the comparison can be made deliberately.
-
Leaving the day count or the frequency on the last bond’s setting
The ACT/360 and 2/Y/1/Y fields are toggled with 2ND SET and survive everything short of 2ND CLR WORK. Pricing a US corporate straight after a Treasury is the usual way this bites.
-
Reading a semiannual yield as an annual one
YLD is a nominal annual rate compounded at the coupon frequency — a bond-equivalent yield, not an effective one. A 6% YLD on a semiannual bond compounds to an effective 6.09% a year. Convert it in the interest conversion calculator before comparing it with anything quoted annually.
-
Pricing a callable bond to maturity
A bond trading above its call price will usually be called, so the yield to maturity is a number nobody will ever receive. Reprice with each call date in RDT and each call price in RV, and quote the lowest yield you get — the yield to worst. Give the bond above a 7% coupon and it trades at 107.2877 for 6.0000% to maturity, but only 5.6014% if it is called in 2031 at 102. Four tenths of a point of yield hides in a field nobody thought to change.
Where to go next
Once the price is settled
A bond price is a discounted cash-flow problem with a calendar bolted on. Take the calendar away and the other worksheets handle the rest.
- To turn a 6% bond-equivalent yield into the effective annual rate that compares with a savings product, use the interest conversion calculator.
- For a bond with a sinking fund, an amortising note, or any schedule of uneven payments, the NPV calculator and the IRR calculator price arbitrary cash flows — IRR is the same root-finding this page does for YLD.
- For the number of days between settlement dates under either convention, use the date calculator.
- For a level-payment loan rather than a coupon bond, use the TVM calculator or the amortization calculator.
- To practise the 2ND BOND keystrokes exactly as they appear in the exam room, run the full BA II Plus emulator, or read the study guides.
FAQ
Bond questions, answered
The eight things people ask most about bond pricing and the BOND worksheet.
What is the difference between the clean price and the dirty price?
The clean price is the quoted price — the one on the screen, in the newspaper and in the PRI register. The dirty price, also called the invoice or settlement price, is the clean price plus accrued interest, and it is what actually leaves the buyer’s account. On the bond loaded above the clean price is 94.51 but 95.83 settles, because 1.32 of the next coupon has already been earned by the seller. Quoting clean is a convention that stops the headline price sawtoothing up through each coupon period and dropping on every payment date.
How is accrued interest calculated?
It is the coupon for the current period multiplied by the fraction of that period already elapsed: AI = (CPN ÷ frequency) × A ÷ E, where A is days from the last coupon to settlement and E is days in the whole coupon period. On the default bond that is 2.625 × 92 ÷ 183 = 1.3197 per 100 of par. Accrued interest accrues in a straight line, which is why a bond priced exactly at its coupon rate comes out a shade under par between coupon dates rather than exactly at it.
Why does my bond priced at its coupon rate not come out at exactly 100?
Because the two halves of the calculation use different mathematics. The price discounts compound, but accrued interest accrues in a straight line. Set the yield equal to the 5.25% coupon on the bond above and the invoice price is 101.3112, while straight-line accrued interest is only 1.3197 — leaving a clean price of 99.9915, not 100.0000. On a coupon date, where nothing has accrued, the price is exactly par. Between coupon dates the small gap is the convention, not an error.
What does the BA II Plus BOND worksheet actually compute?
Open it with 2ND BOND and it holds nine fields: SDT settlement date, CPN annual coupon rate, RDT redemption date, RV redemption value per 100, the day-count setting (ACT or 360), the coupon frequency (2/Y or 1/Y), YLD, PRI and AI. Enter one of YLD or PRI and compute the other with CPT; AI is always computed. Dates go in as MM.DDYY, so 15 September 2026 is typed 9.1526.
How do I price a bond to a call date instead of maturity?
Put the call date in the redemption date field and the call price in the redemption value field. A bond callable at 102 in 2036 is priced with RDT set to the 2036 call date and RV set to 102 — the calculator then reports the yield to call rather than the yield to maturity. Do this for every call in the schedule and the lowest result is the yield to worst, which is the figure a cautious buyer prices on.
What is modified duration used for?
It converts a change in yield into an approximate change in price: a modified duration of 7.36 means roughly a 7.36% price fall for a one-percentage-point rise in yield. It is an approximation because the price-yield relationship curves, and the curvature always works in the holder’s favour. On the default bond a 100 basis point rise takes the invoice price to 89.09 while duration alone predicts 88.78, and a 100 basis point fall takes it to 103.22 against a predicted 102.89. That gap is convexity.
Which day-count convention should I use?
Use ACT for government bonds — US Treasuries, gilts, bunds — where actual elapsed days are counted on both sides of the fraction. Use 30/360 for most US corporate and municipal bonds, and for agency debt, where every month is treated as 30 days and every year as 360. The choice moves the answer a little rather than a lot: the bond above prices at 94.5149 on ACT and 94.5143 on 30/360, but accrued interest differs more visibly, at 1.3197 against 1.3125.
Why is the current yield different from the yield to maturity?
Current yield is only the coupon divided by the price — 5.25 ÷ 94.51 = 5.55% on the bond above — and it ignores the fact that a bond bought at a discount also returns a capital gain at redemption. Yield to maturity counts both, which is why it comes out higher at 6.00%. For a bond trading at a premium the ordering reverses: the coupon is generous but part of it is buying back a capital loss, so the yield to maturity sits below the current yield.
Keep going
Related calculators
Same engine, same sign convention — pick the worksheet that matches your problem.
Amortization Calculator
Full payment schedule with BAL, PRN and INT for any P1–P2 range.
2ND · AMORTStatistics Calculator
1-VAR and 2-VAR stats with four regression models and R².
2ND · DATA · STATInterest Conversion Calculator
Nominal ↔ effective rates for any compounding frequency, plus continuous.
2ND · ICONV