{
  "tool_id": "art-626-deterministic-amortization-schedule",
  "tool_version": "1.0.0",
  "display_name": "Deterministic Amortization Schedule",
  "mcp_name": "compute_deterministic_amortization_schedule",
  "mandate_type": "compliance_mandate",
  "wave": 102,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-626-deterministic-amortization-schedule.html",
  "description": "Demonstrator node for the shared _amort.bundle.mjs kernel: a deterministic amortization-schedule engine over seven closed day-count conventions (six calendar conventions from ISDA 2006 Definitions Section 4.16 -- 30/360 US, 30E/360, 30E/360 (ISDA), Actual/360, Actual/365 Fixed, Actual/Actual (ISDA) -- plus UNIT_PERIOD for lease/revenue schedules that discount over equal periods rather than calendar day counts). Computes, per period, the effective-interest method's period_fraction, periodic_rate, interest, principal_component and closing_balance, each an independently-declared rounding step, plus a mandatory final-period plug that absorbs rounding residue so the schedule amortizes to exactly zero within a declared bound. Supports a bracketed-bisection rate solve (art-215's discipline, generalized: constant 200-step bound, sign-change bracket required before any rate is reported, no Newton/secant), scoped honestly to UNIT_PERIOD only -- a calendar convention's period_fraction is a real-valued fraction of a year that need not align with the solver's ordinal-integer-period PV formula, so calendar conventions require a caller-supplied annual_rate rather than a mismatched solve. Mid-stream remeasurement is modeled as schedule SEGMENTATION, never mutation: a new segment's opening balance is always the prior segment's exact closing balance, asserted as a continuity_invariant, with the prior segment retained unmodified. No engine transcendentals anywhere (SPEC.md Section 18.5): every exponent is an integer computed by repeated squaring and every rounding step multiplies by a literal power-of-ten, never Math.pow. This is a reusable shared kernel's demonstrator, not itself an ASC 842 / ASC 606 / CECL wave-specific tool -- waves 6, 7 and 10 inline this bundle directly rather than calling this node.",
  "input_schema_ref": "manifests/art-626-deterministic-amortization-schedule.manifest.json#input_schema",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    { "system": "sha256-source", "image_id": "sha256:32ee03f89954474c9d09d90e18eba3acc47dc757fc8cab6bd19fd7bf8e6f4e06", "valid_from": "2026-08-15" }
  ],
  "export_capability": ["json"],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-626, staged 2026-08-15 (ACCT-AMORT-K-1). Sec 18 steady-state rule (RIDER-KERNEL.md): GPU proving is an async queue, not a per-wave gate. cycle_preflight: PENDING -- GPU-CYCLE-PREFLIGHT-1's exec-cycle tool (runq-cpu) is not present in this session's environment (same absence precedent as art-619), so no user_cycles figure could be measured and no GPU proving was attempted. Static pre-screen (GPU-CYCLE-PREFLIGHT-SPEC.md): this kernel has no in-guest signature/hash verification loop, no policy_parameters-driven loop bound (MAX_PERIODS=600 is a constant), and no non-sqrt transcendental anywhere (every exponent is an integer via repeated squaring; every round is a literal power-of-ten multiply) -- expected FAST per the build spec, but this is a prediction, not a measurement, and the row's check-off says so plainly rather than claiming FAST.",
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(f) 30/360 (Bond Basis)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(g) 30E/360 (Eurobond Basis)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(h) 30E/360 (ISDA)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(e) Actual/360", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(d) Actual/365 (Fixed)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(b) Actual/Actual (ISDA)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:b523793b29e30669d51a91b8e093010d2b9ffeb35763f10cd20ea5fc8811a960", "source_url": "https://www.consumerfinance.gov/rules-policy/regulations/1026/j/", "retrieved_at": "2026-08-15", "clause_path": "12 CFR 1026 Appendix J (b)(6) -- stub-period fraction pricing precedent for UNIT_PERIOD, not a calendar day-count clause", "scheme": "cfr", "id": "12 CFR 1026 Appendix J" },
    { "digest": "sha256:a558362611d0ca8dcfc5c1526c76ddfa721e0804d9346a49116e829d7586ca9b", "source_url": "https://www.consumerfinance.gov/rules-policy/regulations/1026/j/", "retrieved_at": "2026-08-16", "clause_path": "12 CFR 1026 Appendix J (a)(2) -- actuarial-method balance recurrence, authority for rounding_steps 4 (principal_component) and 5 (closing_balance)", "scheme": "cfr", "id": "12 CFR 1026 Appendix J" }
  ]
}
