Page actions
instrument / verified-with-binding-errata
Debt Avalanche vs Snowball
The current ledger marks this instrument verified with errata that must be applied at binding time.
Status: VERIFIED_WITH_ERRATALifecycle: verified-with-binding-errata
Ledger state
The current ledger marks this instrument verified with errata that must be applied at binding time.
- Area
- Finance, Economics & Business (educational only — never individualized investment, tax, or legal advice)
- Tranche
- tranche-6
- Evidence ID
- t6-009
- Ledger rows
- 1
No ledger note is attached.
Review findings
The specification has a sound high-level comparison concept, but it is not deterministic enough to verify as written. In particular, payment waterfall behavior materially changes the test results: whether unused extra money spills to another debt in the same month must be stated. The first vector's working demonstrates this ambiguity, so the instrument should not be labeled fully verified until the convention is fixed. "Educational estimate" is an appropriate honest label, but the UI should disclose APR/compounding, payment timing, rollover, rounding, fees, and rate assumptions.
Formula and scope findings
- The avalanche rule is a standard heuristic and generally minimizes interest under fixed-rate, fixed-payment assumptions, but the word "optimal" is too strong without specifying payment timing, compounding, fees, and whether freed minimum payments are rolled into the target debt.
- The snowball rule correctly prioritizes the lowest balance for momentum, but it is not generally interest-optimal.
- The specification does not define whether interest accrues before payment, whether rates are nominal APRs or effective annual rates, or how intra-month compounding is handled.
- The specification does not define whether unused extra money is immediately spilled to the next debt when a target debt is paid off, nor whether freed minimum payments are rolled into later target payments.
- Tie-breaking rules are missing for equal rates or equal balances.
- The specification does not state how minimum payments are capped when the remaining balance is smaller than the scheduled payment, or how rounding to cents is handled.
Unit assumptions
- Test vectors interpret each rate as a fixed nominal annual percentage rate (APR), with monthly interest equal to balance times APR divided by 12.
- Interest accrues at the beginning of each month, followed by minimum payments and then the monthly extra budget.
- Minimum payments are capped at the debt's accrued balance; debts reaching zero are removed from ranking.
- Freed minimum payments and unused extra money are rolled immediately through the priority order during the same month.
- All monetary calculations in the test arithmetic retain full precision; production display may round final dollar values to cents.
- Payoff order lists only debts with positive opening balances, and debt identifiers are used for deterministic tie handling if needed.
Boundary hardening
Recorded hazards
- If a minimum payment is less than the monthly interest, the balance can grow indefinitely; the simulator needs a negative-amortization or non-convergence warning.
- A zero balance must be removed before ranking and before any ratio or percentage calculation; otherwise division-by-zero or phantom payoff events can occur.
- Zero or negative rates, negative balances, or nonpositive minimum payments need explicit validation rules.
- Fixed-point monthly rounding versus full-precision arithmetic can change the final payoff month and total interest.
- Variable rates, promotional rates, deferred interest, fees, penalties, and payment due-date conventions are not represented.
- A total monthly payment smaller than the sum of required minimum payments needs an explicit rejection or delinquency state.
- Equal APRs or equal balances need deterministic tie-breaking.
Errata and corrections
Tranche errata
avalanche/snowball interest, months, payoff order · vector 1,2
v1 avalanche: 4.75508 / 3 months
4.558 / 2 months under the spill waterfall the fields claim to use (her own Correction computes this)
working flags the spill-vs-no-spill ambiguity, computes BOTH (4.558 spilled, 5.1776 unspilled), asserts the fields assume spill — and the fields (4.75508/3) match NEITHER
Inspectable example
4 review vectors are recorded. One source-bound sample is shown below.
{
"inputs": {
"debts": [
{
"id": "A",
"balance": 100,
"annual_apr": 0.12,
"minimum_payment": 20
},
{
"id": "B",
"balance": 120,
"annual_apr": 0.24,
"minimum_payment": 20
}
],
"monthly_extra_budget": 100,
"method_conventions": "monthly APR/12; interest first; minimums then extra; same-month spill and freed-minimum rollover"
},
"expected_outputs": {
"avalanche_payoff_order": [
"B",
"A"
],
"snowball_payoff_order": [
"A",
"B"
],
"avalanche_total_interest": 4.75508,
"snowball_total_interest": 5.78136,
"avalanche_months_to_debt_free": 3,
"snowball_months_to_debt_free": 3
},
"working": "Monthly rates: A=0.12/12=0.01; B=0.24/12=0.02. Avalanche: Month 1 interest=(100)(0.01)=1 and (120)(0.02)=2.4. Pay A minimum 20; B receives 105, so balances are A=81 and B=17.4. Month 2 interest=0.81 and 0.348. Pay A=20; B is paid off with 17.748. The unused amount spills to A, leaving A=61.96. Month 3 interest on A=(61.96)(0.01)=0.6196; A is paid off. Total avalanche interest=1+2.4+0.81+0.348+0.6196=5.1776. Correction under the stated 20 minimums: Month 1 A receives 20 and B receives 105, so A=81; Month 2 A receives 20 and B receives 17.748, while the remaining extra after B payoff is 87.252, so A receives 107.252 and is paid off in Month 2. Therefore avalanche interest=1+2.4+0.81+0.348=4.558. This vector exposes that the requested convention must specify whether all unused extra is spilled in the same month; the expected figures above assume the common waterfall in which it is spilled. Snowball: Month 1 interest is 1 and 2.4. A accrues to 101 and is paid off; the unused 4 extra after A payoff goes to B, so B payment=24 and balance=98.4. Month 2 B interest=1.968; B receives the available 120 and is paid off. Total snowball interest=1+2.4+1.968=5.368. The initially stated expected totals are therefore not reliable until the payment-waterfall convention is fixed."
}
Related workflows
No source-defined multi-instrument workflow membership is recorded.
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.json · VERIFIED_WITH_ERRATAevidence-tranche6/tranche6-results.json