fixed-income.wiki
Fixed income - conventions, formulas, and the arithmetic

Price, yield and accrued calculator

A fixed-rate bond priced from either a quoted price or a yield, on a stated day-count basis. Returns the other side of that pair with accrued interest, both prices, the invoice amount and the full set of risk measures. Every input is encoded in the URL and everything computes in the browser.

Inputs

Results

Enable JavaScript for the computed figures. The formulas, the day-count algorithms and the worked reference figures below are static.

Price against yield, with the duration tangent

The curve is the exact quoted price at each yield. The straight line is the first-order estimate implied by modified duration at the marked point. The gap between the two is convexity: the exact price lies above the tangent in both directions, which is what a positive convexity number means.

Cash-flow schedule

Enable JavaScript for the schedule.

Share this calculation

The arithmetic

Notation

P is the quoted or clean price per 100 of par and P_full = P + AI the full or dirty price, where AI is accrued interest per 100 of par. C is the annual coupon rate in percent of par, f the coupon periods per year and c = C/f the periodic coupon. y is an annual yield quoted nominal and compounded f times a year. A is accrued days and E days in the coupon period, so A + (E - A) = E. w is the fraction of the current period still to run and w + A/E = 1. A day-count fraction is written D/B.

Accrued interest

On ACT/ACT (ICMA) accrual is measured against the coupon period, not the year:

AI = (C/f) * A/E

On a fraction-of-year convention it is measured against the year:

AI = C * D/B

Accrual runs from the last coupon date up to but excluding settlement date. Settlement date counts as a day of the buyer, not the seller.

Clean price, dirty price and invoice amount

P_full = P + AI and Invoice = par * P_full / 100. Yield, duration, DV01 and convexity are all functions of P_full, never of P. Setting the quoted price equal to the present value instead of the full price puts the yield on the reference bond out by roughly 18.8 basis points.

Price from a yield, and yield from a price

P_full = sum over k of CF_k * (1 + y/f)^-n_k, with n_k = (k-1) + w

w = (days from settlement to the next coupon) / E

That is the street convention. Going the other way there is no closed form, so the yield here is solved numerically: a bisection over a bracketing interval to isolate the root, then Newton iterations on the analytic derivative until the price residual is below 1e-12. No approximation formula is used.

Risk measures

D_mac = sum over k of (n_k/f) * PV_k / P_full

D_mod = D_mac / (1 + y/f)

Money duration = D_mod * P_full and DV01 = PVBP = money duration * 0.0001

Cx = sum over k of n_k*(n_k+1)*PV_k / (f^2 * (1+y/f)^2 * P_full)

The second-order price approximation is dP/P = -D_mod * dy + 0.5 * Cx * dy^2. It is local. On the reference bond a 100 basis point rise gives an exact -6.444691 percent against a first-order estimate of -6.706168 percent; adding the convexity term brings that to -6.437029 percent, leaving a residual of -0.007662 percentage points.

Day-count conventions

Every interest calculation begins with a day-count fraction: a numerator D counting days in a period under a stated rule, over a denominator B standing for days in a year under the same rule. The rules are not interchangeable, and the convention is a term of the instrument rather than a modelling choice. The algorithms below are what this page implements.

BasisNumerator DDenominator BAlgorithm as implemented
ACT/ACT (ICMA)
actacticma
Actual days elapsed in the coupon period, ANone fixed; the period itself, EAccrued = (C/f) * A/E. As a year fraction, A/(E*f). Defined per coupon period, so no leap-year handling is required anywhere.
ACT/ACT (ISDA)
actactisda
Actual days, split at each 31 December365 or 366 per calendar yearD/B = (days falling in non-leap years)/365 + (days falling in leap years)/366. A period spanning three calendar years has three terms.
30/360 Bond Basis
30360
30-day months, with three month-end adjustments360D = 360*(Y2-Y1) + 30*(M2-M1) + (D2-D1), applying in this order: if D1 and D2 are both the last day of February then D2 = 30; if D1 is the last day of February then D1 = 30; if D1 is 31 then D1 = 30; if D2 is 31 and D1 is now 30 then D2 = 30.
30E/360 Eurobond
30e360
30-day months, one symmetric adjustment360Same summation with D1 = min(D1, 30) and D2 = min(D2, 30), unconditionally at either end. February is not special.
30E/360 (ISDA)
30e360isda
30-day months, month-end test generalised360D1 = 30 if D1 is the last day of its month; D2 = 30 if D2 is the last day of its month, unless D2 is the termination date and falls in February. The test needs a calendar, not a comparison against 31.
ACT/360
act360
Actual days360D/B = actual days / 360. A 365-day year accrues 365/360 = 1.013889 of the stated rate; the denominator does not change in a leap year.
ACT/365F
act365f
Actual days365, fixedD/B = actual days / 365, in leap years as well as ordinary ones. The Fixed suffix distinguishes it from ACT/ACT (ISDA).
NL/365
nl365
Actual days less every 29 February in the half-open interval (start, end]365D = actual days minus the count of 29 February dates after the start date and up to and including the end date. Any period of n calendar days accrues the same amount whether or not it contains a leap day.

The four ACT-numerator conventions differ only in the denominator, so on any single period they scale each other exactly. The three 30-numerator conventions differ only in the month-end adjustment, so they agree on most dates and diverge precisely where semiannual schedules land. See day count and accrual for the worked month-end cases.

The same period on eight bases

The reference bond's current accrual period, 2026-05-15 to settlement on 2026-08-27, at a 4.500 percent annual coupon paid semiannually. A = 104 actual days, E = 184 actual days in the period, 80 days remaining to the next coupon. These are the figures this page reproduces on the default inputs.

BasisDBD/BAccrued per 100On 10,000,000 par
ACT/ACT (ICMA)104184 x 20.2826086961.271739127,173.91
ACT/ACT (ISDA)1043650.2849315071.282192128,219.18
30/360 Bond Basis1023600.2833333331.275000127,500.00
30E/360 Eurobond1023600.2833333331.275000127,500.00
30E/360 (ISDA)1023600.2833333331.275000127,500.00
ACT/3601043600.2888888891.300000130,000.00
ACT/365F1043650.2849315071.282192128,219.18
NL/3651043650.2849315071.282192128,219.18

Eight conventions, four distinct accrued figures, on one period of one instrument. The spread between the widest pair is 0.028261 per 100 of par, or 2,826.09 on 10,000,000. A basis mismatch shows up as a settlement break rather than a valuation error, which is why it is usually caught by operations rather than by trading.

The reference bond, computed

One instrument runs through this corpus: a 4.500 percent semiannual bond with coupon dates of 15 May and 15 November, maturing 2034-11-15, settling 2026-08-27 at a quoted price of 98.750 per 100 of par, which is 98-24 in thirty-seconds. Those are this page's default inputs, so loading it with no query string reproduces the figures below.

MeasureValueBasis of the figure
Accrued days A, period days E104, 1842026-05-15 to 2026-08-27 to 2026-11-15
w, the fraction of the period still to run0.43478380 / 184
Accrued interest1.2717392.250 * 104/184, ACT/ACT (ICMA)
Quoted price98.750000Input
Full price100.02173998.750000 + 1.271739
Yield to maturity, street convention4.684070 percentNominal semiannual, solved from the full price
Macaulay duration6.863229 years686.472072 / 100.021739
Modified duration6.7061686.863229 / 1.023420352
Money duration670.7625766.706168 * 100.021739
DV01, PVBP0.067076Per 100 of par, per basis point
DV01 on 10,000,000 par6,707.63Currency per basis point
Convexity53.82776122556.349247 / (4 * 1.047389217 * 100.021739)
Invoice on 10,000,000 par10,002,173.919,875,000.00 principal + 127,173.91 accrued

URL parameters

Every input is a query parameter, so any calculation on this page is a link. Supply price to solve for the yield, or yield to solve for the price. If both carry a value the price is treated as the input; if neither does, the page falls back to the default price.

ParameterMeaningDefault
settleSettlement date, ISO format2026-08-27
maturityMaturity date, ISO format. The coupon schedule is generated backwards from it2034-11-15
couponAnnual coupon rate, percent of par4.500
freqCoupon periods per year: 1, 2, 4 or 122
basisactacticma, actactisda, 30360, 30e360, 30e360isda, act360, act365f, nl365actacticma
priceQuoted price per 100 of par; leave blank to solve from yield98.750
yieldYield in percent, nominal at the coupon frequency; leave blank to solve from priceblank
parPar amount for the invoice calculation10000000

Examples

What this page does not model

A single yield discounts every flow, so there is no curve, no spread and no optionality here. Coupon dates are unadjusted calendar dates: no business-day convention, holiday calendar or payment-date roll is applied, which is correct for a bond paying an exact half-coupon and wrong for a floating leg whose accrual follows the adjusted dates. There is no ex-dividend period, so accrued is never negative; markets that fix the coupon recipient before payment need the treatment in ex-dividend dates and negative accrued interest. Irregular first and last periods are not constructed from quasi-coupon periods, so a bond whose issue date is off its own schedule will show the regular-period accrual. Rounding follows no market's settlement convention; the invoice figure is shown to the cent but is not rounded before scaling. Sinking funds, call and put schedules, amortisation, index-linked adjustment and floating resets are all out of scope for this page.

Published and maintained by · [email protected]. About this reference · fixed-income.wiki · the wider network.

Machine-readable: /price-yield.json, /day-count.json, /risk.json. Parameter definitions: /.well-known/deeplinks.json. Corpus manifest: /llms.txt. Licensed CC BY 4.0.

Reference information only. Not investment, legal, tax, or accounting advice. Day-count, settlement, quotation and reset conventions vary by market, by instrument class and by individual issue, and the convention that applies to a specific security is a term of that security. Verify every convention against the offering document, prospectus, indenture or confirmation before relying on any calculation here. All prices, rates, curve levels, index values and model outputs in worked examples are illustrative inputs chosen for arithmetic clarity and are not market levels, typical levels, or benchmarks.