{
  "tool_id": "art-219-qm-apr-apor-spread",
  "note": "golden_hash is empty until first golden-parity.test.mjs --update. Vector 1: passes QM spread but is HPCT (rebuttable presumption). Vector 2: fails QM spread entirely. HPCT = APR > APOR + 1.5 pp.",
  "vectors": [
    {
      "name": "qm_rebuttable_presumption",
      "description": "$450k first-lien. APR 6.875%, APOR 5.0%. Spread 1.875 pp < 2.25 pp threshold = QM pass. But APR > APOR + 1.5pp = HPCT = rebuttable presumption.",
      "policy_parameters": {
        "apr_pct": 6.875,
        "apor_pct": 5,
        "lien_type": "first",
        "loan_amount": 450000,
        "year": 2026
      },
      "output_payload": {
        "qm_status": "general_qm_rebuttable_presumption",
        "general_qm_pass": true,
        "is_hpct": true,
        "spread_pct": 1.875,
        "apr_pct": 6.875,
        "apor_pct": 5,
        "lien_type": "first",
        "is_manufactured_housing": false,
        "loan_amount": 450000,
        "year": 2026,
        "applicable_threshold_pct": 2.25,
        "threshold_basis": "first_lien_standard_2.25pp",
        "hpct_threshold_pct": 1.5,
        "headroom_pct": 0.375,
        "fr_citation": "Reg Z §1026.43(e)(2)(vi)(A)-(C); Dodd-Frank Act §1412; CFPB QM Rule Jan 2021; CFPB 2021 General QM Final Rule (FR 2020-28417)",
        "regulatory_basis": "Reg Z §1026.43(e)(2)(vi) (QM spread test) and §1026.43(b)(4) (HPCT safe-harbor vs rebuttable presumption)",
        "note": "APOR must be supplied by caller from FFIEC weekly APOR table (ffiec.gov/ratespread). This node does not bundle APOR data. 2026 loan-size cutoff $137,958 per FR 2025-22773."
      },
      "compliance_flags": [
        "HPCT_LOAN",
        "QM_REBUTTABLE_PRESUMPTION"
      ],
      "golden_hash": "2aa1b9c4b0ad5686fcf5ce256f8eb8d6889cdd8db9067446c83fae5a1d3e5df3"
    },
    {
      "name": "qm_spread_fail",
      "description": "$450k first-lien. APR 7.8%, APOR 5.0%. Spread 2.8 pp > 2.25 pp threshold = General QM fail.",
      "policy_parameters": {
        "apr_pct": 7.8,
        "apor_pct": 5,
        "lien_type": "first",
        "loan_amount": 450000,
        "year": 2026
      },
      "output_payload": {
        "qm_status": "general_qm_fail",
        "general_qm_pass": false,
        "is_hpct": true,
        "spread_pct": 2.8,
        "apr_pct": 7.8,
        "apor_pct": 5,
        "lien_type": "first",
        "is_manufactured_housing": false,
        "loan_amount": 450000,
        "year": 2026,
        "applicable_threshold_pct": 2.25,
        "threshold_basis": "first_lien_standard_2.25pp",
        "hpct_threshold_pct": 1.5,
        "headroom_pct": -0.55,
        "fr_citation": "Reg Z §1026.43(e)(2)(vi)(A)-(C); Dodd-Frank Act §1412; CFPB QM Rule Jan 2021; CFPB 2021 General QM Final Rule (FR 2020-28417)",
        "regulatory_basis": "Reg Z §1026.43(e)(2)(vi) (QM spread test) and §1026.43(b)(4) (HPCT safe-harbor vs rebuttable presumption)",
        "note": "APOR must be supplied by caller from FFIEC weekly APOR table (ffiec.gov/ratespread). This node does not bundle APOR data. 2026 loan-size cutoff $137,958 per FR 2025-22773."
      },
      "compliance_flags": [
        "QM_APR_SPREAD_FAIL",
        "HPCT_LOAN"
      ],
      "golden_hash": "c46042802b3608f62688071966cc9757de0b7dd313ab43f2ea91bf32c7278ca2"
    }
  ]
}
