Page actions
instrument mechanism / verified-clean
Extra-Payment Payoff Impact mechanism
The inspectable method record for Extra-Payment Payoff Impact, kept separate from implementation and qualification.
Model scope
The educational-only and non-individualized-advice labeling is appropriate, but the specification needs an exact recurrence, PMT definition, baseline definition, rate convention, final-payment rule, validation constraints, and one-time-payment timing before the formula can receive PASS.
- The formula is too abbreviated to be independently verified: it does not specify the balance recurrence, interest accrual timing, payment timing, or whether the rate is nominal or effective.
- PMT is referenced but its formula and required inputs are not specified. A standard monthly PMT requires principal, periodic interest rate, and number of periods.
- The comparison baseline is not explicitly defined. Interest saved and months saved must compare against the original schedule using the scheduled payment with no extra payment.
- The treatment of the final partial payment is unspecified. A correct implementation should cap the final payment at the remaining balance after interest rather than charging the full PMT+extra.
- One-time extra payments are listed as an input mode, but the formula only describes adding extra to every period. The timing of a one-time payment—origination, immediately before a scheduled payment, or after a scheduled payment—is unspecified.
- The formula does not state whether extra payments reduce the term while the scheduled payment remains fixed, or whether the loan is formally re-amortized to a new scheduled payment. Those are different calculations.
Units and conventions
- Test vectors assume monthly payments, monthly compounding, and a nominal annual interest rate divided by 12 to obtain the monthly rate.
- Interest is accrued first each month, then the payment is applied: new_balance = old_balance * (1 + monthly_rate) - payment.
- The final payment is the exact remaining balance after that month's interest and is not replaced by the full scheduled-plus-extra amount.
- Months saved means original payoff-period count minus accelerated payoff-period count; it does not account for calendar-day differences.
- Dates assume the first payment is one month after the supplied start date and payments occur on the same day of each month.
- For the one-time test vector only, the extra payment is assumed to occur immediately at origination before any interest accrues.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"principal": 1000,
"annual_rate": 0.12,
"term_months": null,
"scheduled_payment": 250,
"extra_payment": 100,
"frequency": "monthly",
"extra_mode": "per_period",
"start_date": "2025-01-01"
},
"expected_outputs": {
"new_payoff_date": "2025-04-01",
"original_payoff_date": "2025-06-01",
"interest_saved": 5.9927976,
"months_saved": 2
},
"working": "Monthly rate = 0.12 / 12 = 0.01. Original schedule: B1 = 1000*1.01 - 250 = 760; B2 = 760*1.01 - 250 = 517.6; B3 = 517.6*1.01 - 250 = 272.776; B4 = 272.776*1.01 - 250 = 25.50376; B5 = 25.50376*1.01 = 25.7587976, so the final original payment is 25.7587976 and original interest = 25.7587976. Accelerated payment = 250 + 100 = 350. B1 = 1000*1.01 - 350 = 660; B2 = 660*1.01 - 350 = 316.6; B3 = 316.6*1.01 = 319.766, so the final accelerated payment is 319.766 and accelerated interest = 2*350 + 319.766 - 1000 = 19.766. Interest saved = 25.7587976 - 19.766 = 5.9927976. Months saved = 5 - 3 = 2. The third payment is on 2025-04-01."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
A payment equal to the periodic interest on the initial principal produces a zero denominator in the closed-form payoff calculation and an invariant balance, so the loan never pays off. The instrument must reject or explicitly report this undefined/no-payoff case. Sign conventions for extra_payment can also change a valid payoff into this no-payoff case.
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-tranche3/tranche3-results.jsonBOUNDARY_HAZARD_CATALOG.json