Assuming the bond has a par value of $1,000 and pays semi-annually, the BEY (equivalent bond yield) when you bought it was 5.14828%
[Do an IRR calculation: CF0: (1,080), 25 cash flows of 1,000*0.03 = 30, and a final cash flow of par + coupon $1,030. Double that IRR to reflect BEY on an annual basis.]
So, if YTM falls to 4.14828%...
0.0414828 / 2 = 0.02074 <this is the new semi-annual discount rate
Price = sum of the discounted cash flows.
PV of the coupons, use PV ordinary annuity
n = (13 - 2) * 2 = 22 semi-annual periods remain
PVoa = PMT[(1 - (1 / (1 + r)^n)) / r]
= 30[(1 - (1 / 1.02074^22)) / 0.02074]
= 30[(1 - 0.63658) / 0.02074]
= 30[17.52141]
= 525.64
PV of par: 1,000 / 1.02074^22 = 636.58137
Sum PV coupons + PV Par = Price = $1,162.22
Notice the bond sells at a premium b/c the coupon rate is higher than the market (discount) rate. Some "value" has been added b/c of the "pull to par" - less time until you collect par at the maturity date.
HPY = [(coupons collected + sale price) / purchase price] - 1
coupons for 2 years = 4 * 30 = 120
HPY = [(120 + 1162.22) / 1080] - 1
= 0.18724, or 18.72%