{
  "tool_id": "art-616-mla-mapr-actuarial-recompute",
  "note": "Every expected rate in oracle_expected was produced by algebraic inversion of the Appendix J discounting form, with no root-finder anywhere in the oracle, and is therefore independent of the kernel numerics it gates (FORMALVERIF-BUILD-SPEC.md section 3d). Oracle source: research/MLA-MAPR-ACTUARIAL-fixture-oracle.mjs. The output_payload blocks were produced by executing compute() and are checked against oracle_expected by the property floor, never hand-typed. golden_hash is filled by `node golden-parity.test.mjs --update`.",
  "fixture_oracle_source": "Algebraic inversion of the Appendix J to 12 CFR part 1026 discounting form (b)(6) plus the (b)(1) annualization rule, plus closed-form single-payment inversion. Hand-derived, solver-free, independent of the kernel. See research/MLA-MAPR-ACTUARIAL-fixture-oracle.mjs.",
  "vectors": [
    {
      "name": "closed-form-single-payment-one-period",
      "oracle_method": "closed-form-inversion",
      "oracle_note": "A = P/(1+i) inverts to i = P/A - 1 = 0.03 exactly. Annualized by Appendix J (b)(1): 0.03 * 12 * 100 = 36.00, which is the 232.4(b) cap exactly and therefore NOT greater than it.",
      "oracle_expected": {
        "mapr_pct": 36,
        "periodic_rate": 0.03,
        "amount_financed_mapr": 1000
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 1000,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 1030,
            "full_periods": 1,
            "fraction": 0
          }
        ],
        "periods_per_year": 12,
        "mla_charges": []
      },
      "output_payload": {
        "mapr_pct": 36,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.03,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 1,
        "advance_total": 1000,
        "payment_total": 1030,
        "amount_financed_mapr": 1000,
        "prepaid_included_total": 0,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [],
        "manual_review_required": false,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 25,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "a738087a1f4b7b6f8d56f981428c883b90b2d5bab00b6f3410cd9ee432848bff"
    },
    {
      "name": "closed-form-single-payment-half-unit-period",
      "oracle_method": "closed-form-inversion",
      "oracle_note": "Inside the first unit-period Appendix J (b)(6) prices the fraction at simple interest, so A = P/(1+f*i) and i = (P/A - 1)/f = 0.03 exactly. Same 36.00 result, reached without any compounding at all, which is what separates (b)(6) from a compound-discount reading.",
      "oracle_expected": {
        "mapr_pct": 36,
        "periodic_rate": 0.03,
        "amount_financed_mapr": 1000
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 1000,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 1015,
            "full_periods": 0,
            "fraction": 0.5
          }
        ],
        "periods_per_year": 12,
        "mla_charges": []
      },
      "output_payload": {
        "mapr_pct": 36,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.03,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 1,
        "advance_total": 1000,
        "payment_total": 1015,
        "amount_financed_mapr": 1000,
        "prepaid_included_total": 0,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [],
        "manual_review_required": false,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 25,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "a71654ad7f7b1cac1087a8c5c40c3890eb1eb931ea0149b95465f1933151872e"
    },
    {
      "name": "closed-form-single-payment-zero-finance-charge",
      "oracle_method": "closed-form-inversion",
      "oracle_note": "i = P/A - 1 = 0 exactly. A zero finance charge is a real root, not a non-convergence, and the kernel must report 0.00 rather than refuse.",
      "oracle_expected": {
        "mapr_pct": 0,
        "periodic_rate": 0,
        "amount_financed_mapr": 1000
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 1000,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 1000,
            "full_periods": 1,
            "fraction": 0
          }
        ],
        "periods_per_year": 12,
        "mla_charges": []
      },
      "output_payload": {
        "mapr_pct": 0,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 1,
        "advance_total": 1000,
        "payment_total": 1000,
        "amount_financed_mapr": 1000,
        "prepaid_included_total": 0,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [],
        "manual_review_required": false,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 0,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "9a36443632bf78b3cbb9c0de1f6c2573537546fb10d4e105002fc2fb75ff70a8"
    },
    {
      "name": "inverted-36-level-payments-no-mla-charges",
      "oracle_method": "inverted-construction",
      "oracle_note": "Thirty-six level payments discounted at exactly 1 percent per month. The advance is defined as that present value, so the root is 0.01 and the annual figure is 12.00. No MLA charge is present, so this vector is also the baseline the zero-charge identity against art-215 is checked on.",
      "oracle_expected": {
        "mapr_pct": 12,
        "periodic_rate": 0.01,
        "amount_financed_mapr": 9032.25,
        "constructed_periodic_rate": 0.01
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 9032.25,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 300,
            "full_periods": 1,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 2,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 3,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 4,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 5,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 6,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 7,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 8,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 9,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 10,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 11,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 12,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 13,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 14,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 15,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 16,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 17,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 18,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 19,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 20,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 21,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 22,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 23,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 24,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 25,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 26,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 27,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 28,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 29,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 30,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 31,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 32,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 33,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 34,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 35,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 36,
            "fraction": 0
          }
        ],
        "periods_per_year": 12,
        "mla_charges": []
      },
      "output_payload": {
        "mapr_pct": 12,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.01,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 36,
        "advance_total": 9032.25,
        "payment_total": 10800,
        "amount_financed_mapr": 9032.25,
        "prepaid_included_total": 0,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [],
        "manual_review_required": false,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 24,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "53f5107ed9b1f19fbc5db143445e60eabef0c96a14af8aec3966d46778f40203"
    },
    {
      "name": "inverted-12-level-payments-with-credit-insurance",
      "oracle_method": "inverted-construction",
      "oracle_note": "A credit insurance premium is included by 232.4(c)(1)(i) and denied the bona fide exclusion by (d)(2)(i). It is money the borrower never receives, so the stated principal is the present value plus 75 while the amount financed stays the present value. The root is unchanged at 0.02 by construction, which is the point: the premium raises the MAPR relative to the same loan without it, and the way it does so is by shrinking the amount advanced.",
      "oracle_expected": {
        "mapr_pct": 24,
        "periodic_rate": 0.020001,
        "amount_financed_mapr": 1057.53,
        "constructed_periodic_rate": 0.02
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 1132.53,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 100,
            "full_periods": 1,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 2,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 3,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 4,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 5,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 6,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 7,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 8,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 9,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 10,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 11,
            "fraction": 0
          },
          {
            "amount": 100,
            "full_periods": 12,
            "fraction": 0
          }
        ],
        "periods_per_year": 12,
        "mla_charges": [
          {
            "charge_type": "credit_insurance_premium",
            "amount": 75,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false
          }
        ]
      },
      "output_payload": {
        "mapr_pct": 24,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.020001,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 12,
        "advance_total": 1132.53,
        "payment_total": 1200,
        "amount_financed_mapr": 1057.53,
        "prepaid_included_total": 75,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [
          {
            "charge_type": "credit_insurance_premium",
            "amount": 75,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false,
            "recognised": true,
            "included_in_mapr": true,
            "treatment": "prepaid_deducted",
            "citation": "32 CFR 232.4(c)(1)(i)",
            "basis": "Any credit insurance premium or fee is included in the MAPR, and 232.4(d)(2)(i) denies it the bona fide fee exclusion.",
            "manual_review_required": false,
            "manual_review_reason": null
          }
        ],
        "manual_review_required": false,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 25,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "54ba40aeb9a41ee2ebd51ab9d022729de331c541503f1483754cc7e73d50d232"
    },
    {
      "name": "inverted-24-payments-odd-days-fraction",
      "oracle_method": "inverted-construction",
      "oracle_note": "Every payment carries a 0.4 odd-days fraction, so each denominator is (1 + 0.4i)(1+i)^k. This is the case where a nominal single-period ratio and the actuarial method diverge, and it is discounted here by inversion rather than by any search.",
      "oracle_expected": {
        "mapr_pct": 18,
        "periodic_rate": 0.015,
        "amount_financed_mapr": 4977.73,
        "constructed_periodic_rate": 0.015
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 5077.73,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 250,
            "full_periods": 1,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 2,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 3,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 4,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 5,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 6,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 7,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 8,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 9,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 10,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 11,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 12,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 13,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 14,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 15,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 16,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 17,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 18,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 19,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 20,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 21,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 22,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 23,
            "fraction": 0.4
          },
          {
            "amount": 250,
            "full_periods": 24,
            "fraction": 0.4
          }
        ],
        "periods_per_year": 12,
        "mla_charges": [
          {
            "charge_type": "debt_cancellation_fee",
            "amount": 40,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false
          },
          {
            "charge_type": "credit_related_ancillary_product_fee",
            "amount": 60,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false
          }
        ]
      },
      "output_payload": {
        "mapr_pct": 18,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.015,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 24,
        "advance_total": 5077.73,
        "payment_total": 6000,
        "amount_financed_mapr": 4977.73,
        "prepaid_included_total": 100,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [
          {
            "charge_type": "debt_cancellation_fee",
            "amount": 40,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false,
            "recognised": true,
            "included_in_mapr": true,
            "treatment": "prepaid_deducted",
            "citation": "32 CFR 232.4(c)(1)(i)",
            "basis": "Any fee for a debt cancellation contract is included, and 232.4(d)(2)(i) denies it the bona fide fee exclusion.",
            "manual_review_required": false,
            "manual_review_reason": null
          },
          {
            "charge_type": "credit_related_ancillary_product_fee",
            "amount": 60,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false,
            "recognised": true,
            "included_in_mapr": true,
            "treatment": "prepaid_deducted",
            "citation": "32 CFR 232.4(c)(1)(ii)",
            "basis": "Any fee for a credit-related ancillary product sold in connection with the credit transaction is included, and 232.4(d)(2)(ii) denies it the bona fide fee exclusion.",
            "manual_review_required": false,
            "manual_review_reason": null
          }
        ],
        "manual_review_required": false,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 24,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "0ad79b9b3ea6ea303887d1e5b7dbce17f71300b0cd9012a3683948ac5f016a1a"
    },
    {
      "name": "inverted-quarterly-unit-period",
      "oracle_method": "inverted-construction",
      "oracle_note": "A quarterly unit-period, w = 4. Appendix J (b)(1) annualizes by multiplying, so 0.04 * 4 * 100 = 16.00 and not the 16.99 a compounded reading would give. An application fee with no exception claimed is included outright by 232.4(c)(1)(iii)(B).",
      "oracle_expected": {
        "mapr_pct": 16,
        "periodic_rate": 0.04,
        "amount_financed_mapr": 3366.37,
        "constructed_periodic_rate": 0.04
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 3391.37,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 500,
            "full_periods": 1,
            "fraction": 0
          },
          {
            "amount": 500,
            "full_periods": 2,
            "fraction": 0
          },
          {
            "amount": 500,
            "full_periods": 3,
            "fraction": 0
          },
          {
            "amount": 500,
            "full_periods": 4,
            "fraction": 0
          },
          {
            "amount": 500,
            "full_periods": 5,
            "fraction": 0
          },
          {
            "amount": 500,
            "full_periods": 6,
            "fraction": 0
          },
          {
            "amount": 500,
            "full_periods": 7,
            "fraction": 0
          },
          {
            "amount": 500,
            "full_periods": 8,
            "fraction": 0
          }
        ],
        "periods_per_year": 4,
        "mla_charges": [
          {
            "charge_type": "application_fee",
            "amount": 25,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false
          }
        ]
      },
      "output_payload": {
        "mapr_pct": 16,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.04,
        "periods_per_year": 4,
        "num_advances": 1,
        "num_payments": 8,
        "advance_total": 3391.37,
        "payment_total": 4000,
        "amount_financed_mapr": 3366.37,
        "prepaid_included_total": 25,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [
          {
            "charge_type": "application_fee",
            "amount": 25,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false,
            "recognised": true,
            "included_in_mapr": true,
            "treatment": "prepaid_deducted",
            "citation": "32 CFR 232.4(c)(1)(iii)(B)",
            "basis": "Any application fee charged to a covered borrower is included, other than an application fee charged by a Federal credit union or an insured depository institution when making a short-term, small amount loan and charged not more than once in any rolling 12-month period.",
            "manual_review_required": false,
            "manual_review_reason": null
          }
        ],
        "manual_review_required": false,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 24,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "0d8e4180be1a522918988acadc7469399eb712156bd497a2951c259d2f8667da"
    },
    {
      "name": "inverted-finance-charge-echoed-not-double-counted",
      "oracle_method": "inverted-construction",
      "oracle_note": "The Regulation Z finance charge is included in the MAPR by 232.4(c)(1)(iii)(A), but it is already priced by the payment stream. Deducting it again would count it twice, so the expected rate is identical to the no-charge vector: 0.01 periodic, 12.00 annual.",
      "oracle_expected": {
        "mapr_pct": 12,
        "periodic_rate": 0.01,
        "amount_financed_mapr": 9032.25,
        "constructed_periodic_rate": 0.01
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 9032.25,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 300,
            "full_periods": 1,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 2,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 3,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 4,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 5,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 6,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 7,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 8,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 9,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 10,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 11,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 12,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 13,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 14,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 15,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 16,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 17,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 18,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 19,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 20,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 21,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 22,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 23,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 24,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 25,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 26,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 27,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 28,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 29,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 30,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 31,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 32,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 33,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 34,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 35,
            "fraction": 0
          },
          {
            "amount": 300,
            "full_periods": 36,
            "fraction": 0
          }
        ],
        "periods_per_year": 12,
        "mla_charges": [
          {
            "charge_type": "finance_charge",
            "amount": 800,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false
          }
        ]
      },
      "output_payload": {
        "mapr_pct": 12,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.01,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 36,
        "advance_total": 9032.25,
        "payment_total": 10800,
        "amount_financed_mapr": 9032.25,
        "prepaid_included_total": 0,
        "finance_charge_in_schedule_total": 800,
        "charge_breakdown": [
          {
            "charge_type": "finance_charge",
            "amount": 800,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false,
            "recognised": true,
            "included_in_mapr": true,
            "treatment": "already_in_payment_schedule",
            "citation": "32 CFR 232.4(c)(1)(iii)(A)",
            "basis": "Finance charges associated with the consumer credit are included in the MAPR. A finance charge carried by the periodic payments is already priced by the payment schedule, so it is echoed here and not deducted a second time.",
            "manual_review_required": false,
            "manual_review_reason": null
          }
        ],
        "manual_review_required": false,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 24,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "94920736a353ead6ae65c015d6810760a2d5f37d8161d548b8f55dedc5c52e64"
    },
    {
      "name": "inverted-participation-fee-exactly-100-on-credit-card",
      "oracle_method": "inverted-construction",
      "oracle_note": "The participation fee sits exactly on the $100 figure that 232.4(c)(2)(ii)(B) names. That figure is an open-end no-balance provision and does not net out of a closed-end calculation, so the full 100 is deducted and the root stays 0.01. The bona fide question under 232.4(d) is a facts test and is surfaced as manual review, not decided.",
      "oracle_expected": {
        "mapr_pct": 12,
        "periodic_rate": 0.01,
        "amount_financed_mapr": 2251.02,
        "constructed_periodic_rate": 0.01
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 2351.02,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 200,
            "full_periods": 1,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 2,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 3,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 4,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 5,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 6,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 7,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 8,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 9,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 10,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 11,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 12,
            "fraction": 0
          }
        ],
        "periods_per_year": 12,
        "mla_charges": [
          {
            "charge_type": "participation_fee",
            "amount": 100,
            "is_credit_card_account": true,
            "short_term_exception_claimed": false
          }
        ]
      },
      "output_payload": {
        "mapr_pct": 12,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.01,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 12,
        "advance_total": 2351.02,
        "payment_total": 2400,
        "amount_financed_mapr": 2251.02,
        "prepaid_included_total": 100,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [
          {
            "charge_type": "participation_fee",
            "amount": 100,
            "is_credit_card_account": true,
            "short_term_exception_claimed": false,
            "recognised": true,
            "included_in_mapr": true,
            "treatment": "prepaid_deducted",
            "citation": "32 CFR 232.4(c)(1)(iii)(C)",
            "basis": "Any fee imposed for participation in any plan or arrangement for consumer credit is included, subject to 232.4(c)(2)(ii)(B).",
            "manual_review_required": true,
            "manual_review_reason": "On a credit card account 232.4(d)(1) may exclude a bona fide participation fee, but 232.4(d)(3) makes reasonableness a comparison against fees charged by other creditors for a substantially similar product. That comparison is not an input here, so the fee is included and the test is left open."
          }
        ],
        "manual_review_required": true,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 24,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "f1f415187a27ca7937fb1b8cd64df557522123034bc84d540f4eceaf66322e17"
    },
    {
      "name": "inverted-other-credit-card-fee-excluded",
      "oracle_method": "inverted-construction",
      "oracle_note": "A residual credit-card fee on a credit card account is excludable under 232.4(d)(1) as a bona fide fee other than a periodic rate, and (d)(2) does not pull this type back in. It is therefore not deducted and the root stays 0.01, with the (d)(3) reasonableness test surfaced as manual review.",
      "oracle_expected": {
        "mapr_pct": 12,
        "periodic_rate": 0.01,
        "amount_financed_mapr": 2251.02,
        "constructed_periodic_rate": 0.01
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 2251.02,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 200,
            "full_periods": 1,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 2,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 3,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 4,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 5,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 6,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 7,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 8,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 9,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 10,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 11,
            "fraction": 0
          },
          {
            "amount": 200,
            "full_periods": 12,
            "fraction": 0
          }
        ],
        "periods_per_year": 12,
        "mla_charges": [
          {
            "charge_type": "other_credit_card_fee",
            "amount": 150,
            "is_credit_card_account": true,
            "short_term_exception_claimed": false
          }
        ]
      },
      "output_payload": {
        "mapr_pct": 12,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.01,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 12,
        "advance_total": 2251.02,
        "payment_total": 2400,
        "amount_financed_mapr": 2251.02,
        "prepaid_included_total": 0,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [
          {
            "charge_type": "other_credit_card_fee",
            "amount": 150,
            "is_credit_card_account": true,
            "short_term_exception_claimed": false,
            "recognised": true,
            "included_in_mapr": false,
            "treatment": "excluded_bona_fide_credit_card_fee",
            "citation": "32 CFR 232.4(c)(1)(iii) and (d)(1)",
            "basis": "A residual non-enumerated credit-card fee. On a credit card account under an open-end (not home-secured) plan, a bona fide fee other than a periodic rate is excluded by 232.4(d)(1); off such an account no exclusion is available.",
            "manual_review_required": true,
            "manual_review_reason": "Excluded under 232.4(d)(1) as a bona fide fee other than a periodic rate on a credit card account. 232.4(d)(3) requires the fee to be reasonable against fees charged by other creditors, and 232.4(d)(4)(ii) pulls every such fee back into the MAPR if any non-bona-fide fee is also imposed. Neither test is an input here."
          }
        ],
        "manual_review_required": true,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 24,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "6dca6ed9eb45aa737dffe81ae607a56124b1a93e639d416b73782e72e09d18fd"
    },
    {
      "name": "inverted-charges-push-past-the-36-pct-cap",
      "oracle_method": "inverted-construction",
      "oracle_note": "Constructed at a 24.00 percent root so the vector sits below the cap on its own terms while carrying two includable charges. The cap comparison is a separate assertion from the rate, and 232.4(b) forbids an MAPR greater than 36 percent, so a figure at or under 36.00 does not exceed it.",
      "oracle_expected": {
        "mapr_pct": 24,
        "periodic_rate": 0.019999,
        "amount_financed_mapr": 1008.26,
        "constructed_periodic_rate": 0.02
      },
      "policy_parameters": {
        "advances": [
          {
            "amount": 1128.26,
            "full_periods": 0,
            "fraction": 0
          }
        ],
        "payments": [
          {
            "amount": 180,
            "full_periods": 1,
            "fraction": 0
          },
          {
            "amount": 180,
            "full_periods": 2,
            "fraction": 0
          },
          {
            "amount": 180,
            "full_periods": 3,
            "fraction": 0
          },
          {
            "amount": 180,
            "full_periods": 4,
            "fraction": 0
          },
          {
            "amount": 180,
            "full_periods": 5,
            "fraction": 0
          },
          {
            "amount": 180,
            "full_periods": 6,
            "fraction": 0
          }
        ],
        "periods_per_year": 12,
        "mla_charges": [
          {
            "charge_type": "single_premium_credit_insurance_charge",
            "amount": 90,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false
          },
          {
            "charge_type": "debt_suspension_fee",
            "amount": 30,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false
          }
        ]
      },
      "output_payload": {
        "mapr_pct": 24,
        "mapr_cap_pct": 36,
        "exceeds_cap": false,
        "periodic_rate": 0.019999,
        "periods_per_year": 12,
        "num_advances": 1,
        "num_payments": 6,
        "advance_total": 1128.26,
        "payment_total": 1080,
        "amount_financed_mapr": 1008.26,
        "prepaid_included_total": 120,
        "finance_charge_in_schedule_total": 0,
        "charge_breakdown": [
          {
            "charge_type": "single_premium_credit_insurance_charge",
            "amount": 90,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false,
            "recognised": true,
            "included_in_mapr": true,
            "treatment": "prepaid_deducted",
            "citation": "32 CFR 232.4(c)(1)(i)",
            "basis": "Any charge for single premium credit insurance is included, and 232.4(d)(2)(i) denies it the bona fide fee exclusion.",
            "manual_review_required": false,
            "manual_review_reason": null
          },
          {
            "charge_type": "debt_suspension_fee",
            "amount": 30,
            "is_credit_card_account": false,
            "short_term_exception_claimed": false,
            "recognised": true,
            "included_in_mapr": true,
            "treatment": "prepaid_deducted",
            "citation": "32 CFR 232.4(c)(1)(i)",
            "basis": "Any fee for a debt suspension agreement is included, and 232.4(d)(2)(i) denies it the bona fide fee exclusion.",
            "manual_review_required": false,
            "manual_review_reason": null
          }
        ],
        "manual_review_required": false,
        "participation_fee_open_end_no_balance_limit_usd": 100,
        "iterations": 25,
        "converged": true,
        "bracketed": true,
        "regulatory_basis": "32 CFR 232.4(b) MAPR cap and 232.4(c)(1) charge set, computed by the Regulation Z actuarial method that 232.4(c)(2)(i) cross-references (Appendix J to 12 CFR part 1026).",
        "note": "Closed-end MAPR recomputed by the Regulation Z actuarial method. Includable prepaid charges under 232.4(c)(1) reduce the amount advanced; a finance charge already carried by the payment schedule is echoed and not deducted twice. A rate is reported only when a sign-change bracket was established and narrowed, otherwise mapr_pct is null and MAPR_NOT_BRACKETED or MAPR_DID_NOT_CONVERGE is raised. The $100 participation-fee figure is the 232.4(c)(2)(ii)(B) open-end no-balance limit, reported as a cited constant and not netted out of this closed-end calculation. Whether a fee is bona fide and reasonable under 232.4(d)(3), and whether the 232.4(c)(1)(iii)(B) application-fee exception applies, both turn on facts this node does not hold and are surfaced as manual review rather than decided."
      },
      "golden_hash": "7f48ca68ee5b924b7e5a7bf2fea2fc71df7e6882febc92b4e37669d7080f870b"
    }
  ]
}
