Source: https://guthlabs.ai/docs/instruments/compound-interest-visualizer/

instrument / verified-clean

# Compound Interest Visualizer

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/compound-interest-visualizer/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/compound-interest-visualizer/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/compound-interest-visualizer/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/compound-interest-visualizer/qualification/>)

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

**Area**: Finance, Economics & Business (educational only — never individualized investment, tax, or legal advice)

**Tranche**: tranche-4

**Evidence ID**: t4-068

**Ledger rows**: 1

No ledger note is attached.

## Review findings

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.

### Formula and scope findings

- 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.

### Unit assumptions

- 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.

## Boundary hardening

**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.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "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."
}
````

## 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_CLEAN`

- `evidence-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
