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

instrument mechanism / verified-clean

Compound Interest Visualizer mechanism

The inspectable method record for Compound Interest Visualizer, kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The core formula is correct under the stated unit and timing assumptions, but the spec is ambiguous about those assumptions and omits formulas for the split and year-by-year table. The zero-rate case requires an explicit implementation branch before this can receive PASS.

  • The formula is standard for an ordinary annuity only when PMT is made at the end of each compounding period; contribution timing is not specified.
  • The formula assumes r is a nominal annual rate expressed as a decimal and n is the number of compounding periods per year; the spec does not state either unit convention.
  • The formula divides by r/n and is undefined when r=0; a zero-rate branch or limiting formula FV=PV+PMT*n*t is required.
  • No formula is supplied for the claimed contributions-versus-interest split.
  • No recurrence or aggregation rule is supplied for the claimed year-by-year table, especially when compounding frequency is not annual.

Units and conventions

  • PV and PMT use the same currency units.
  • r is a nominal annual rate as a decimal: 6% is entered as 0.06, not 6.
  • n is a positive integer number of compounding periods per year.
  • t is measured in years, so the total number of periods is n*t and should be an integer for a conventional periodic-contribution calculation.
  • PMT is paid at the end of each compounding period.
  • The split treats invested funds as PV plus all PMT contributions, with interest equal to FV minus invested funds.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "principal": 10000,
    "contribution": 200,
    "rate": 0.05,
    "years": 3,
    "compounding_freq": 1
  },
  "expected_outputs": {
    "FV": 12206.75,
    "invested_total": 10600,
    "interest": 1606.75
  },
  "working": "q=r/n=0.05/1=0.05. Periods=n*t=1*3=3. Growth factor=(1+q)^periods=1.05^3=1.157625. Principal growth=10000*1.157625=11576.25. Contribution factor=(1.157625-1)/0.05=0.157625/0.05=3.1525. Contribution growth=200*3.1525=630.50. FV=11576.25+630.50=12206.75. Invested total=10000+(200*3)=10600. Interest=12206.75-10600=1606.75."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

The stated formula is undefined when compounding_freq = 0 and is also literally undefined at rate = 0 unless the implementation supplies the zero-rate limiting branch. Rate-unit ambiguity can additionally change the result from 1150 to 6100 for the same displayed input 5.

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