Page actions
instrument mechanism / verified-clean
Bond Duration & Convexity mechanism
The inspectable method record for Bond Duration & Convexity, kept separate from implementation and qualification.
Model scope
The core formulas are standard under explicit discrete-coupon assumptions, but the specification is ambiguous about coupon frequency, yield compounding convention, time units, PV calculation, and the exact price-change formula. Verdict is NEEDS_REVIEW until those conventions are made explicit. The educational-only and linear/quadratic-approximation label is appropriate, but it should also state that the result is not option-adjusted and that the approximation is local.
- The stated formulas are standard only when t is measured in coupon periods and y is the yield per coupon period; the output labels duration in years without specifying coupon frequency or the required conversion.
- The present-value definition is omitted. Price must be defined as Price = Σ CF_t/(1+y)^t, with cash-flow timing specified.
- The estimated price-change formula is not stated. The standard second-order approximation is ΔP ≈ P[-ModD·Δy + 0.5·Convexity·(Δy)^2], where Δy is a decimal yield change consistent with the duration and convexity conventions.
- For periodic bonds, modified duration and convexity must be converted consistently when the user enters a nominal annual yield. For m coupon periods per year, annual-yield modified duration is typically D_year/(1+y_nominal/m), while annual-yield convexity requires the appropriate 1/m^2 conversion from period convexity.
- The convexity formula shown is the standard discrete-coupon formula, but its units are squared coupon periods unless t and y are explicitly defined on an annual-period basis.
Units and conventions
- Vectors 1, 2, and 4 assume annual coupons, annual effective yield, t in years, cash flows per 100 face value, and yield changes entered as decimal values.
- Vector 3 assumes semiannual coupons, a nominal annual yield of 6% compounded semiannually, per-period yield y=0.06/2=0.03, and conversion of period-based duration and convexity to nominal-annual-yield sensitivity.
- Price change per 1% means a +0.01 absolute yield change, not a 1% relative change in the yield.
- Cash flows are assumed to occur exactly at integer coupon periods, with no accrued interest, day-count adjustment, or settlement-date interpolation.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"face_value": 100,
"cash_flows": {
"t=1": 0,
"t=2": 100
},
"yield": 0.05,
"yield_change": 0.01,
"coupon_frequency": 1
},
"expected_outputs": {
"price": 90.702947846,
"macaulay_duration_years": 2,
"modified_duration_years": 1.904761905,
"convexity_years_squared": 5.442176871,
"estimated_price_change_for_plus_1_percent_yield": -1.702994
},
"working": "PV1 = 0/(1.05)^1 = 0. PV2 = 100/(1.05)^2 = 100/1.1025 = 90.702947846. Price = 0 + 90.702947846 = 90.702947846. Macaulay D = [1·0 + 2·90.702947846]/90.702947846 = 2 years. Modified D = 2/1.05 = 1.904761905 years. Convexity = [1·2·0 + 2·3·90.702947846]/[90.702947846·(1.05)^2] = 6/1.1025 = 5.442176871 years². Relative estimated change = -(1.904761905)(0.01) + 0.5(5.442176871)(0.01)^2 = -0.01904761905 + 0.0002721088436 = -0.01877551020. Price change = 90.702947846·(-0.01877551020) = -1.702994 approximately. This is an edge case: zero coupon cash flows before maturity."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
The input y=-1 makes every discounting denominator vanish, so the instrument must reject it. A further convention hazard exists because untyped values such as 5 and 1 can be interpreted either as decimal rates or as percentages.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche6/tranche6-results.jsonBOUNDARY_HAZARD_CATALOG.json