{
  "tool_id": "art-215-reg-z-appendix-j-apr",
  "kernel_id": "art-215-reg-z-appendix-j-apr",
  "display_name": "Reg Z Appendix J APR Solver",
  "tool_version": "1.1.0",
  "mandate_type": "compliance_mandate",
  "purpose": "Reg Z Appendix J actuarial APR solver. Bracketed bisection on the general actuarial equation (12 CFR 1026 Appendix J), with the odd-days fraction priced at simple interest per (b)(6) and only full unit-periods compounded. Handles regular and irregular payment schedules with an odd-days fractional first period, and reports a rate only when a sign-change bracket was established. Pure ECMA-262 arithmetic, no floating-point built-ins beyond basic operations. APR accuracy, TRID disclosure, and QM spread test input.",
  "control_description": "Reg Z Appendix J actuarial APR solver. Bracketed bisection on the general actuarial equation (12 CFR 1026 Appendix J), with the odd-days fraction priced at simple interest per (b)(6) and only full unit-periods compounded. Handles regular and irregular payment schedules with an odd-days fractional first period, and reports a rate only when a sign-change bracket was established. Pure ECMA-262 arithmetic, no floating-point built-ins beyond basic operations. APR accuracy, TRID disclosure, and QM spread test input.",
  "declared_inputs": [
    "art-332-build-amortization-schedule"
  ],
  "declared_outputs": [
    "art-217-trid-apr-accuracy"
  ],
  "kernel_digest": "sha256:23d06ce0530f333676cee2d8435ec0f6622170fc8040d471151cd64a01025225",
  "trust_label": "independently verified: zkVM execution proof (risc0/groth16-bn254)",
  "data_vintage": "2026-07-10",
  "last_validated": "2026-07-10",
  "conformance_fixtures_vendored": true,
  "compute_proof_ready": "ready",
  "wave": 37,
  "source_url": "https://ainumbers.co/chaingraph/art-215-reg-z-appendix-j-apr.html",
  "generated_at": "2026-08-15T11:12:17.704Z"
}
