Home/Admin • TVM Amort ViewerAdmin only • is_admin gate (backend enforces)

Wizard Inputs

PV • Annual Rate • Years — with presets + randomize
Formula: FV = PV × (1 + r/m)^(m·n)   m=12 monthly
Bad (−2%)
£173,108
PV £100,000 × (1+0.0550)^10
Base
£211,206
PV £100,000 × (1+0.0750)^10
Good (+2%)
£257,606
PV £100,000 × (1+0.0950)^10

3-Band Compounding Chart (annual FV = PV×(1+r)^n)

Amortization — Year rows → expand to 12 months

120 months • fully amortizing • 0% handled
YearBadBase (annual)GoodMonthly PaymentBalance (end)
0£100,000£100,000£100,000
1£105,500£107,500£109,500£1,187.02£93,019.06
Year 1 — 12 months (payment / interest / principal / balance)
MonthPaymentInterestPrincipalBalance
1£1,187.02£625.00£562.02£99,437.98
2£1,187.02£621.49£565.53£98,872.45
3£1,187.02£617.95£569.06£98,303.39
4£1,187.02£614.40£572.62£97,730.77
5£1,187.02£610.82£576.20£97,154.57
6£1,187.02£607.22£579.80£96,574.76
7£1,187.02£603.59£583.43£95,991.34
8£1,187.02£599.95£587.07£95,404.27
9£1,187.02£596.28£590.74£94,813.53
10£1,187.02£592.58£594.43£94,219.09
11£1,187.02£588.87£598.15£93,620.94
12£1,187.02£585.13£601.89£93,019.06
2£111,303£115,562£119,903£1,187.02£85,496.17
3£117,424£124,230£131,293£1,187.02£77,389.25
4£123,882£133,547£143,766£1,187.02£68,652.98
5£130,696£143,563£157,424£1,187.02£59,238.48
6£137,884£154,330£172,379£1,187.02£49,093.12
7£145,468£165,905£188,755£1,187.02£38,160.14
8£153,469£178,348£206,687£1,187.02£26,378.41
9£161,909£191,724£226,322£1,187.02£13,682.03
10£170,814£206,103£247,823£1,187.02£0.00

Save-as-Pytest

Writes tests/test_tvm_admin_<timestamp>.py via POST /api/v1/admin/tvm/save-test
Generated test asserts FV bad/base/good + PV/FV inverse + amortization balance→0. File appears in backend/tests/ and passes pytest -k admin.