Source: https://guthlabs.ai/docs/instruments/apr-vs-apy-converter/

instrument / verified-clean

# APR vs APY Converter

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/apr-vs-apy-converter/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/apr-vs-apy-converter/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/apr-vs-apy-converter/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/apr-vs-apy-converter/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-008

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The forward formula is mathematically correct under the stated nominal-rate assumptions, but the specification needs the inverse formula, valid-domain constraints, decimal-rate convention, and an explicit definition of difference before release. The honest label should say 'Educational compounding-only estimate; excludes fees and regulatory APR calculations' rather than implying it reproduces every loan APR.

### Formula and scope findings

- APY=(1+APR/n)^n-1 is correct only for converting a decimal nominal annual rate (APR) to an effective annual rate (APY) with n equal compounding periods per year.

- The claimed reverse direction, APY to APR, is not specified. The standard inverse is APR=n*((1+APY)^(1/n)-1).

- The output 'difference' is undefined: its sign and whether it means APY-APR, APR-APY, or absolute difference must be specified.

- The formula does not represent all real-world loan APR definitions when APR includes fees, points, mandatory charges, irregular payment timing, or regulatory calculation conventions.

### Unit assumptions

- APR and APY are entered and returned as decimal rates: 0.12 means 12%, not 12.

- n is the positive number of equal compounding periods per year; standard use is a positive integer such as 1, 2, 4, 12, or 365.

- The test-vector difference is assumed to mean APY-APR, in decimal-rate units.

- The formula assumes nominal APR with periodic rate APR/n and no fees, taxes, cash-flow irregularities, or intra-period effects.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The n=0 input creates division by zero and an undefined exponentiation, so the converter must reject it rather than return a numeric APY. The unit-ambiguity vector also shows that accepting an unlabeled APR value can produce materially different results.

## 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": {
    "direction": "APR_to_APY",
    "APR": 0.12,
    "n": 12
  },
  "expected_outputs": {
    "APY": 0.12682503013196977,
    "difference_APY_minus_APR": 0.00682503013196977
  },
  "working": "APR/n = 0.12/12 = 0.01. APY = (1+0.01)^12 - 1 = 1.01^12 - 1 = 1.1268250301319698 - 1 = 0.12682503013196977. Difference = APY - APR = 0.12682503013196977 - 0.12 = 0.00682503013196977."
}
````

## Related workflows

[Mortgage Suiterate literacy](<https://guthlabs.ai/docs/instrument-workflows/mortgage-suite/>)

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