Skip to main content

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

Your numbers

100 for a bond redeemed at par. Use the call price to price the bond to a call.

Only used to turn the per-100 figures into cash. It does not affect the price or the yield.

Prices, coupons and accrued interest are all quoted per 100 of par, exactly as the BOND worksheet reports them — so a price of 94.51 means 94.51% of face value.

Result

Updates as you type

PRI — clean price

What settles

AI — accrued interest Per 100 of par, owed to the seller
Invoice price Clean price plus accrued interest
Cash for the bonds
Cash for accrued interest
Total cash to settle

The coupon period

Last coupon on or before settlement
Next coupon
Coupons still to come
A / E — days accrued of the period
Coupons still to be received Per 100 of par, before discounting

Return and risk

Yield to redemption
Current yield Coupon ÷ clean price, ignoring the capital gain
Coupon each period
Macaulay duration Average years until a pound comes back
Modified duration Approximate % price fall per 1% yield rise
Value of one basis point Cash change on your face value per 0.01% of yield

How the answer was reached

Every substitution, in the order the calculator makes them.

Price against yield

The clean price at every yield around the one solved for. The curve is the reason duration only ever approximates.

What you are actually buying

The invoice price split into the present value of the coupons and the present value of the principal.

On the BA II Plus

The keystroke sequence for this exact bond.

Dates are entered as MM.DDYY, so 15 September 2026 is typed 9.1526. The day-count and frequency fields are toggled with 2ND SET rather than typed, and AI is always computed — it is never entered.

Coupon-by-coupon discounting Every remaining cash flow, the years until it arrives, its discount factor and its present value.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

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

Same engine, same sign convention — pick the worksheet that matches your problem.