YTM: yield to maturity from your trade price
YTM (Yield to Maturity) is a bond's effective annual yield if you hold it to maturity and reinvest the coupons. Firewire calculates YTM not from an abstract market quote, but from your real trade price.
What YTM is
A bond's coupon rate is fixed, but your yield depends on the price at which you bought it. Buy below par — your yield is higher than the coupon; buy above par — it's lower. YTM ties it all together: it's the discount rate at which the present value of all future payments (coupons + redemption) equals the price you paid.
Formula
YTM is the rate y that equates the "dirty" purchase price (price + accrued coupon income) with the discounted stream of payments:
The equation is solved numerically (just like XIRR). For amortizing bonds the par value is redeemed in parts, so instead of a single payment N the stream contains several partial redemptions.
Why "from your trade price" matters
Exchange terminals show YTM from the current market price — it changes every second and has nothing to do with what you personally locked in. Firewire calculates YTM from your actual purchase price, so the number reflects the real locked-in yield of your specific position.
Example (intuition)
A bond with a par value of 1000 ₽, a 10% annual coupon, 3 years to maturity. If you buy it for 950 ₽ (below par), you receive not only the coupons but also +50 ₽ of difference at redemption — so the YTM will be higher than the 10% coupon. If you buy it for 1030 ₽, the YTM will be lower than 10%. The exact value is found by solving the equation above.
How Firewire calculates it
For each bond position Firewire takes the trade price, adds the accrued coupon income paid, subtracts commissions and expected taxes, builds the schedule of coupons and redemptions (including amortization) and numerically finds the YTM. Alongside it, the duration is shown — so you see not only the yield but also the interest-rate risk of the position. The calculation works as follows:
- Lots and FIFO. Purchases of the bond from the account's trades form lots, and sales consume lots on a FIFO basis — the earliest purchase is sold first. Only the securities still in the portfolio count; a partly sold lot is taken in proportion to what remains.
- Costs. On the trade date the outflow is the clean value of the bonds, the accrued interest paid and the commission: $P_{\text{clean}} + \text{AI} + K$.
- Receipts. All coupons, amortizations and the redemption on the schedule paid strictly after the purchase date, multiplied by the lot's quantity. Coupons you have already received are included too — the yield covers the whole holding period, not just the remainder.
- Tax. Coupons are taken net of 13% personal income tax. On redemption the tax applies to the positive difference between the par value returned and the purchase cost (including accrued interest and commission); if you bought above par there is no redemption tax.
- Solution. All lots are combined into a single cash-flow stream and solved numerically, like XIRR, giving an effective annual rate.
If a bond has no trade history (the position arrived without it) or the quantity in the trades does not match the position, the personal YTM is not shown — only the market YTM remains. The market YTM, calculated from the current price, is always shown alongside, and the label "YTM from purchase price" tells the two apart.
Limitation: the 13% tax rate is applied to all accounts, including IIA (individual investment accounts) — IIA deductions and tax exemption are not taken into account.