Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-with-binding-errata

Savings Goal Planner mechanism

The inspectable method record for Savings Goal Planner, kept separate from implementation and qualification.

Status: VERIFIED_WITH_ERRATALifecycle: verified-with-binding-errata

Model scope

Under the explicit assumptions listed, the core end-of-month annuity-FV calculation is standard and the numerical test vectors are consistent. The instrument remains NEEDS_REVIEW because the deposit timing, rate convention, date-to-period conversion, timeline-chart calculation, and negative-contribution behavior are not specified.

  • The PMT formula is only identified generically as solving an annuity future-value formula; the specification does not state whether deposits occur at the beginning or end of each month. The vectors below assume end-of-month deposits.
  • The specification does not define how a target date is converted into the number of monthly periods, including partial months, date-of-month handling, leap years, or whether the current month counts.
  • The projected timeline chart has no defined calculation, data structure, or formula, so that output cannot be independently verified.
  • A negative computed contribution is possible when current savings are already sufficient; the specification does not say whether to display the negative amount, clamp it to zero, or label the goal as already reached.

Units and conventions

  • Goal amount and current savings use the same currency and are nominal amounts.
  • Rate is an annual nominal rate compounded monthly; monthly rate r = annual_rate / 12.
  • The target date is converted to an integer number n of monthly deposit periods.
  • Deposits occur at the end of each month, with no fees, taxes, inflation, withdrawals, or contribution limits.
  • For annual rate a, current savings compound as current_savings × (1 + a/12)^n.
  • For a nonzero monthly rate r, required deposit PMT = (goal_amount - current_savings × (1+r)^n) × r / ((1+r)^n - 1). At r = 0, PMT = (goal_amount - current_savings) / n.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "goal_amount": 12000,
    "current_savings": 2000,
    "annual_rate": 0.06,
    "months_to_target": 12
  },
  "expected_outputs": {
    "required_monthly_deposit": 800.6643
  },
  "working": "r = 0.06 / 12 = 0.005. Growth factor = (1.005)^12 = 1.0616778119. Future value of current savings = 2000 × 1.0616778119 = 2123.3556238. Remaining future value needed = 12000 - 2123.3556238 = 9876.6443762. Annuity factor = ((1.005)^12 - 1) / 0.005 = 0.0616778119 / 0.005 = 12.33556238. Required deposit = 9876.6443762 / 12.33556238 = 800.6643 per month."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

A zero-month target produces a zero denominator and an undefined deposit, so the instrument must reject it. The displayed annual rate convention is also underspecified: nominal-rate and effective-rate interpretations produce different valid outputs.

Other records

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json
  • evidence-tranche4/tranche4-results.json
  • BOUNDARY_HAZARD_CATALOG.json