{
  "tool_id": "732-borrower-escrow-auditor",
  "note": "Golden conformance vectors. All expectations hand-derived from the pinned 12 CFR 1024.17 aggregate analysis method text (worked example + structural cases), cross-checked against art-342 compute_escrow_analysis at authoring time; full output_payload recorded as the golden master for the fixture oracle.",
  "vectors": [
    {
      "name": "worked-example-clean-year",
      "note": "Hand-derived worked example over the pinned text method steps: trial running balance over one computation year, opening balance 0, 12 monthly deposits of 100, a single 1200 disbursement due in month 12. Recomputed balances 100..1100 then 0 at month 12; lowest monthly balance 0; cushion cap one-sixth of 1200 = 200; stated cushion 0 (a lesser/zero cushion is permitted). Balanced, no line discrepancies.",
      "golden_hash": "62cc617ea1d9cf234e2489a22cfc91c5464dee8e3d0356879c7225eb26cdfcbd",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "Hand-derived worked example over the pinned text method steps: trial running balance over one computation year, opening balance 0, 12 monthly deposits of 100, a single 1200 disbursement due in month 12. Recomputed balances 100..1100 then 0 at month 12; lowest monthly balance 0; cushion cap one-sixth of 1200 = 200; stated cushion 0 (a lesser/zero cushion is permitted). Balanced, no line discrepancies. Cross-checked at authoring time against the estate's prior aggregate-escrow kernel art-342 compute_escrow_analysis on the identical values: trial balances and low point agree within 1e-12 relative (ART705 composition precedent). Expectations hand-derived from the method text, not read off the kernel.",
        "expect": {
          "verdict": "completed",
          "account_status": "balanced",
          "periods_analyzed": 12,
          "discrepancy_count": 0,
          "cushion_within_cap": true,
          "shortage_amount": 0,
          "surplus_amount": 0,
          "surplus_refund_required": false,
          "surplus_refund_unverified": false,
          "manual_review_required": false,
          "compliance_flags": [
            "ESCROW_AUDIT_BALANCED"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1200
        ],
        "stated_cushion": 0,
        "borrower_current": true,
        "stated_balances": [
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ]
      },
      "output_payload": {
        "verdict": "completed",
        "periods_analyzed": 12,
        "starting_balance": 0,
        "recomputed_balances": [
          0,
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ],
        "recomputed_low_point": 0,
        "low_point_month": 12,
        "target_low_point": 0,
        "total_annual_disbursements": 1200,
        "cushion_cap_amount": 200,
        "stated_cushion": 0,
        "cushion_within_cap": true,
        "account_status": "balanced",
        "shortage_amount": 0,
        "surplus_amount": 0,
        "shortage_threshold_base": 100,
        "shortage_threshold_base_source": "mean_of_monthly_payments",
        "shortage_at_or_above_one_month_payment": null,
        "shortage_permitted_courses": [],
        "servicer_course_permitted": null,
        "surplus_refund_required": false,
        "surplus_refund_unverified": false,
        "shortage_repay_min_months_if_elected": 12,
        "discrepancies": {
          "count": 0,
          "lines": []
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "method": "aggregate_escrow_accounting_values_only",
          "periods_analyzed": 12,
          "line_items_recomputed": 12,
          "discrepancy_count": 0,
          "account_status": "balanced",
          "cushion_checked": true,
          "cushion_within_cap": true,
          "computed_from": "borrower_supplied_values_only",
          "pii_carried": false,
          "total_annual_disbursements": 1200,
          "recomputed_low_point": 0,
          "refusal_free": true
        },
        "manual_review_required": false
      }
    },
    {
      "name": "off-by-one-disbursement-seeded",
      "note": "The clean statement with the servicer posting a 100 over-disbursement from month 6 onward: stated end-of-month balances months 6-12 each sit 100 below the recomputed trial running balance. Exercises the per-line discrepancy detector (7 lines flagged).",
      "golden_hash": "0c2713e21dd0a0e2b4ecb1286f97b7fa4c02810a6a02f3bad67126593d149282",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "The clean statement with the servicer posting a 100 over-disbursement from month 6 onward: stated end-of-month balances months 6-12 each sit 100 below the recomputed trial running balance. Exercises the per-line discrepancy detector (7 lines flagged). Cross-checked at authoring time against the estate's prior aggregate-escrow kernel art-342 compute_escrow_analysis on the identical values: trial balances and low point agree within 1e-12 relative (ART705 composition precedent). Expectations hand-derived from the method text, not read off the kernel.",
        "expect": {
          "verdict": "completed",
          "account_status": "balanced",
          "periods_analyzed": 12,
          "discrepancy_count": 7,
          "cushion_within_cap": true,
          "shortage_amount": 0,
          "surplus_amount": 0,
          "surplus_refund_required": false,
          "surplus_refund_unverified": false,
          "manual_review_required": true,
          "compliance_flags": [
            "STATEMENT_LINE_DISCREPANCY",
            "ESCROW_AUDIT_BALANCED"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1200
        ],
        "stated_cushion": 0,
        "borrower_current": true,
        "stated_balances": [
          100,
          200,
          300,
          400,
          500,
          500,
          600,
          700,
          800,
          900,
          1000,
          -100
        ]
      },
      "output_payload": {
        "verdict": "completed",
        "periods_analyzed": 12,
        "starting_balance": 0,
        "recomputed_balances": [
          0,
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ],
        "recomputed_low_point": 0,
        "low_point_month": 12,
        "target_low_point": 0,
        "total_annual_disbursements": 1200,
        "cushion_cap_amount": 200,
        "stated_cushion": 0,
        "cushion_within_cap": true,
        "account_status": "balanced",
        "shortage_amount": 0,
        "surplus_amount": 0,
        "shortage_threshold_base": 100,
        "shortage_threshold_base_source": "mean_of_monthly_payments",
        "shortage_at_or_above_one_month_payment": null,
        "shortage_permitted_courses": [],
        "servicer_course_permitted": null,
        "surplus_refund_required": false,
        "surplus_refund_unverified": false,
        "shortage_repay_min_months_if_elected": 12,
        "discrepancies": {
          "count": 7,
          "lines": [
            {
              "month": 6,
              "stated_balance": 500,
              "recomputed_balance": 600,
              "variance": -100,
              "reason": "stated_end_of_month_balance_disagrees_with_recomputed_trial_running_balance"
            },
            {
              "month": 7,
              "stated_balance": 600,
              "recomputed_balance": 700,
              "variance": -100,
              "reason": "stated_end_of_month_balance_disagrees_with_recomputed_trial_running_balance"
            },
            {
              "month": 8,
              "stated_balance": 700,
              "recomputed_balance": 800,
              "variance": -100,
              "reason": "stated_end_of_month_balance_disagrees_with_recomputed_trial_running_balance"
            },
            {
              "month": 9,
              "stated_balance": 800,
              "recomputed_balance": 900,
              "variance": -100,
              "reason": "stated_end_of_month_balance_disagrees_with_recomputed_trial_running_balance"
            },
            {
              "month": 10,
              "stated_balance": 900,
              "recomputed_balance": 1000,
              "variance": -100,
              "reason": "stated_end_of_month_balance_disagrees_with_recomputed_trial_running_balance"
            },
            {
              "month": 11,
              "stated_balance": 1000,
              "recomputed_balance": 1100,
              "variance": -100,
              "reason": "stated_end_of_month_balance_disagrees_with_recomputed_trial_running_balance"
            },
            {
              "month": 12,
              "stated_balance": -100,
              "recomputed_balance": 0,
              "variance": -100,
              "reason": "stated_end_of_month_balance_disagrees_with_recomputed_trial_running_balance"
            }
          ]
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "method": "aggregate_escrow_accounting_values_only",
          "periods_analyzed": 12,
          "line_items_recomputed": 12,
          "discrepancy_count": 7,
          "account_status": "balanced",
          "cushion_checked": true,
          "cushion_within_cap": true,
          "computed_from": "borrower_supplied_values_only",
          "pii_carried": false,
          "total_annual_disbursements": 1200,
          "recomputed_low_point": 0,
          "refusal_free": true
        },
        "manual_review_required": true
      }
    },
    {
      "name": "stated-cushion-above-cap",
      "note": "The clean statement with a stated cushion of 300 against a one-sixth cap of 200. Exercises the cushion cap check and the shortage classification against the capped target (low point 0 vs target 200).",
      "golden_hash": "84e2ad52e17383153fc8701cc868104e4ff8c1065403924b60b1018c91ddc5e1",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "The clean statement with a stated cushion of 300 against a one-sixth cap of 200. Exercises the cushion cap check and the shortage classification against the capped target (low point 0 vs target 200). Cross-checked at authoring time against the estate's prior aggregate-escrow kernel art-342 compute_escrow_analysis on the identical values: trial balances and low point agree within 1e-12 relative (ART705 composition precedent). Expectations hand-derived from the method text, not read off the kernel.",
        "expect": {
          "verdict": "completed",
          "account_status": "shortage",
          "periods_analyzed": 12,
          "discrepancy_count": 0,
          "cushion_within_cap": false,
          "shortage_amount": 200,
          "surplus_amount": 0,
          "surplus_refund_required": false,
          "surplus_refund_unverified": false,
          "manual_review_required": false,
          "compliance_flags": [
            "CUSHION_ABOVE_STATUTORY_CAP",
            "ESCROW_SHORTAGE",
            "ESCROW_SHORTAGE_COURSES_PERMITTED",
            "ESCROW_SHORTAGE_AT_OR_ABOVE_ONE_MONTH_PAYMENT"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1200
        ],
        "stated_cushion": 300,
        "borrower_current": true,
        "stated_balances": [
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ]
      },
      "output_payload": {
        "verdict": "completed",
        "periods_analyzed": 12,
        "starting_balance": 0,
        "recomputed_balances": [
          0,
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ],
        "recomputed_low_point": 0,
        "low_point_month": 12,
        "target_low_point": 200,
        "total_annual_disbursements": 1200,
        "cushion_cap_amount": 200,
        "stated_cushion": 300,
        "cushion_within_cap": false,
        "account_status": "shortage",
        "shortage_amount": 200,
        "surplus_amount": 0,
        "shortage_threshold_base": 100,
        "shortage_threshold_base_source": "mean_of_monthly_payments",
        "shortage_at_or_above_one_month_payment": true,
        "shortage_permitted_courses": [
          "do_nothing",
          "repay_equal_monthly_12_plus_months"
        ],
        "servicer_course_permitted": null,
        "surplus_refund_required": false,
        "surplus_refund_unverified": false,
        "shortage_repay_min_months_if_elected": 12,
        "discrepancies": {
          "count": 0,
          "lines": []
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "method": "aggregate_escrow_accounting_values_only",
          "periods_analyzed": 12,
          "line_items_recomputed": 12,
          "discrepancy_count": 0,
          "account_status": "shortage",
          "cushion_checked": true,
          "cushion_within_cap": false,
          "computed_from": "borrower_supplied_values_only",
          "pii_carried": false,
          "total_annual_disbursements": 1200,
          "recomputed_low_point": 0,
          "refusal_free": true
        },
        "manual_review_required": false
      }
    },
    {
      "name": "surplus-refund-currency-unverified",
      "note": "Monthly deposits of 300 against a 1200 month-12 disbursement: low point 300 at month 1 against a stated cushion of 100, a 200 surplus at or above the 50 refund floor, with the currency status not supplied. Exercises the currency-condition hold.",
      "golden_hash": "e6c16817ad9bf383b6c09b1596baded06575ae3bc37a3995fb8800a4b2e9c930",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "Monthly deposits of 300 against a 1200 month-12 disbursement: low point 300 at month 1 against a stated cushion of 100, a 200 surplus at or above the 50 refund floor, with the currency status not supplied. Exercises the currency-condition hold. Cross-checked at authoring time against the estate's prior aggregate-escrow kernel art-342 compute_escrow_analysis on the identical values: trial balances and low point agree within 1e-12 relative (ART705 composition precedent). Expectations hand-derived from the method text, not read off the kernel.",
        "expect": {
          "verdict": "completed",
          "account_status": "surplus",
          "periods_analyzed": 12,
          "discrepancy_count": 0,
          "cushion_within_cap": true,
          "shortage_amount": 0,
          "surplus_amount": 200,
          "surplus_refund_required": false,
          "surplus_refund_unverified": true,
          "manual_review_required": true,
          "compliance_flags": [
            "ESCROW_SURPLUS",
            "SURPLUS_REFUND_CURRENCY_UNVERIFIED"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          300,
          300,
          300,
          300,
          300,
          300,
          300,
          300,
          300,
          300,
          300,
          300
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1200
        ],
        "stated_balances": [
          300,
          600,
          900,
          1200,
          1500,
          1800,
          2100,
          2400,
          2700,
          3000,
          3300,
          2400
        ],
        "stated_cushion": 100
      },
      "output_payload": {
        "verdict": "completed",
        "periods_analyzed": 12,
        "starting_balance": 0,
        "recomputed_balances": [
          0,
          300,
          600,
          900,
          1200,
          1500,
          1800,
          2100,
          2400,
          2700,
          3000,
          3300,
          2400
        ],
        "recomputed_low_point": 300,
        "low_point_month": 1,
        "target_low_point": 100,
        "total_annual_disbursements": 1200,
        "cushion_cap_amount": 200,
        "stated_cushion": 100,
        "cushion_within_cap": true,
        "account_status": "surplus",
        "shortage_amount": 0,
        "surplus_amount": 200,
        "shortage_threshold_base": 300,
        "shortage_threshold_base_source": "mean_of_monthly_payments",
        "shortage_at_or_above_one_month_payment": null,
        "shortage_permitted_courses": [],
        "servicer_course_permitted": null,
        "surplus_refund_required": false,
        "surplus_refund_unverified": true,
        "shortage_repay_min_months_if_elected": 12,
        "discrepancies": {
          "count": 0,
          "lines": []
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "method": "aggregate_escrow_accounting_values_only",
          "periods_analyzed": 12,
          "line_items_recomputed": 12,
          "discrepancy_count": 0,
          "account_status": "surplus",
          "cushion_checked": true,
          "cushion_within_cap": true,
          "computed_from": "borrower_supplied_values_only",
          "pii_carried": false,
          "total_annual_disbursements": 1200,
          "recomputed_low_point": 300,
          "refusal_free": false
        },
        "manual_review_required": true
      }
    },
    {
      "name": "shortage-below-one-month-payment",
      "note": "Clean statement (12 deposits of 100, a 1200 disbursement in month 12) with a stated cushion of 99, within the one-sixth cap of 200: low point 0 against target 99, a shortage of 99 against a supplied monthly escrow account payment of 100, i.e. below one month's payment. Hand-derived from the pinned rule text: every shortage course is permissive.",
      "golden_hash": "96128f34c23a4782e5e6725c9a21e14fd9f74d123d264f1afec659a313d0b2f4",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "Clean statement (12 deposits of 100, a 1200 disbursement in month 12) with a stated cushion of 99, within the one-sixth cap of 200: low point 0 against target 99, a shortage of 99 against a supplied monthly escrow account payment of 100, i.e. below one month's payment. Hand-derived from the pinned rule text: every shortage course is permissive.",
        "expect": {
          "verdict": "completed",
          "account_status": "shortage",
          "periods_analyzed": 12,
          "discrepancy_count": 0,
          "cushion_within_cap": true,
          "shortage_amount": 99,
          "surplus_amount": 0,
          "surplus_refund_required": false,
          "surplus_refund_unverified": false,
          "manual_review_required": false,
          "shortage_permitted_courses": [
            "do_nothing",
            "repay_within_30_days",
            "repay_equal_monthly_12_plus_months"
          ],
          "shortage_at_or_above_one_month_payment": false,
          "servicer_course_permitted": null,
          "compliance_flags": [
            "ESCROW_SHORTAGE",
            "ESCROW_SHORTAGE_COURSES_PERMITTED",
            "ESCROW_SHORTAGE_BELOW_ONE_MONTH_PAYMENT"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1200
        ],
        "stated_cushion": 99,
        "monthly_escrow_payment": 100,
        "borrower_current": true,
        "stated_balances": [
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ]
      },
      "output_payload": {
        "verdict": "completed",
        "periods_analyzed": 12,
        "starting_balance": 0,
        "recomputed_balances": [
          0,
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ],
        "recomputed_low_point": 0,
        "low_point_month": 12,
        "target_low_point": 99,
        "total_annual_disbursements": 1200,
        "cushion_cap_amount": 200,
        "stated_cushion": 99,
        "cushion_within_cap": true,
        "account_status": "shortage",
        "shortage_amount": 99,
        "surplus_amount": 0,
        "shortage_threshold_base": 100,
        "shortage_threshold_base_source": "monthly_escrow_payment",
        "shortage_at_or_above_one_month_payment": false,
        "shortage_permitted_courses": [
          "do_nothing",
          "repay_within_30_days",
          "repay_equal_monthly_12_plus_months"
        ],
        "servicer_course_permitted": null,
        "surplus_refund_required": false,
        "surplus_refund_unverified": false,
        "shortage_repay_min_months_if_elected": 12,
        "discrepancies": {
          "count": 0,
          "lines": []
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "method": "aggregate_escrow_accounting_values_only",
          "periods_analyzed": 12,
          "line_items_recomputed": 12,
          "discrepancy_count": 0,
          "account_status": "shortage",
          "cushion_checked": true,
          "cushion_within_cap": true,
          "computed_from": "borrower_supplied_values_only",
          "pii_carried": false,
          "total_annual_disbursements": 1200,
          "recomputed_low_point": 0,
          "refusal_free": true
        },
        "manual_review_required": false
      }
    },
    {
      "name": "shortage-at-one-month-payment",
      "note": "Clean statement (12 deposits of 100, a 1200 disbursement in month 12) with a stated cushion of 100, within the one-sixth cap of 200: low point 0 against target 100, a shortage of 100 against a supplied monthly escrow account payment of 100, i.e. at one month's payment. Hand-derived from the pinned rule text: every shortage course is permissive.",
      "golden_hash": "6e04529f7645bd2da7134fe2d583c388da69f2622f1d1f16598b38e8c3cbf94b",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "Clean statement (12 deposits of 100, a 1200 disbursement in month 12) with a stated cushion of 100, within the one-sixth cap of 200: low point 0 against target 100, a shortage of 100 against a supplied monthly escrow account payment of 100, i.e. at one month's payment. Hand-derived from the pinned rule text: every shortage course is permissive.",
        "expect": {
          "verdict": "completed",
          "account_status": "shortage",
          "periods_analyzed": 12,
          "discrepancy_count": 0,
          "cushion_within_cap": true,
          "shortage_amount": 100,
          "surplus_amount": 0,
          "surplus_refund_required": false,
          "surplus_refund_unverified": false,
          "manual_review_required": false,
          "shortage_permitted_courses": [
            "do_nothing",
            "repay_equal_monthly_12_plus_months"
          ],
          "shortage_at_or_above_one_month_payment": true,
          "servicer_course_permitted": null,
          "compliance_flags": [
            "ESCROW_SHORTAGE",
            "ESCROW_SHORTAGE_COURSES_PERMITTED",
            "ESCROW_SHORTAGE_AT_OR_ABOVE_ONE_MONTH_PAYMENT"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1200
        ],
        "stated_cushion": 100,
        "monthly_escrow_payment": 100,
        "borrower_current": true,
        "stated_balances": [
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ]
      },
      "output_payload": {
        "verdict": "completed",
        "periods_analyzed": 12,
        "starting_balance": 0,
        "recomputed_balances": [
          0,
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ],
        "recomputed_low_point": 0,
        "low_point_month": 12,
        "target_low_point": 100,
        "total_annual_disbursements": 1200,
        "cushion_cap_amount": 200,
        "stated_cushion": 100,
        "cushion_within_cap": true,
        "account_status": "shortage",
        "shortage_amount": 100,
        "surplus_amount": 0,
        "shortage_threshold_base": 100,
        "shortage_threshold_base_source": "monthly_escrow_payment",
        "shortage_at_or_above_one_month_payment": true,
        "shortage_permitted_courses": [
          "do_nothing",
          "repay_equal_monthly_12_plus_months"
        ],
        "servicer_course_permitted": null,
        "surplus_refund_required": false,
        "surplus_refund_unverified": false,
        "shortage_repay_min_months_if_elected": 12,
        "discrepancies": {
          "count": 0,
          "lines": []
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "method": "aggregate_escrow_accounting_values_only",
          "periods_analyzed": 12,
          "line_items_recomputed": 12,
          "discrepancy_count": 0,
          "account_status": "shortage",
          "cushion_checked": true,
          "cushion_within_cap": true,
          "computed_from": "borrower_supplied_values_only",
          "pii_carried": false,
          "total_annual_disbursements": 1200,
          "recomputed_low_point": 0,
          "refusal_free": true
        },
        "manual_review_required": false
      }
    },
    {
      "name": "shortage-above-one-month-payment",
      "note": "Clean statement (12 deposits of 100, a 1200 disbursement in month 12) with a stated cushion of 101, within the one-sixth cap of 200: low point 0 against target 101, a shortage of 101 against a supplied monthly escrow account payment of 100, i.e. above one month's payment. Hand-derived from the pinned rule text: every shortage course is permissive.",
      "golden_hash": "cc9f500ba4da15f02bd36acc241a422ac7e72a24238a4aa6dccfb2863bcb7f6f",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "Clean statement (12 deposits of 100, a 1200 disbursement in month 12) with a stated cushion of 101, within the one-sixth cap of 200: low point 0 against target 101, a shortage of 101 against a supplied monthly escrow account payment of 100, i.e. above one month's payment. Hand-derived from the pinned rule text: every shortage course is permissive.",
        "expect": {
          "verdict": "completed",
          "account_status": "shortage",
          "periods_analyzed": 12,
          "discrepancy_count": 0,
          "cushion_within_cap": true,
          "shortage_amount": 101,
          "surplus_amount": 0,
          "surplus_refund_required": false,
          "surplus_refund_unverified": false,
          "manual_review_required": false,
          "shortage_permitted_courses": [
            "do_nothing",
            "repay_equal_monthly_12_plus_months"
          ],
          "shortage_at_or_above_one_month_payment": true,
          "servicer_course_permitted": null,
          "compliance_flags": [
            "ESCROW_SHORTAGE",
            "ESCROW_SHORTAGE_COURSES_PERMITTED",
            "ESCROW_SHORTAGE_AT_OR_ABOVE_ONE_MONTH_PAYMENT"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1200
        ],
        "stated_cushion": 101,
        "monthly_escrow_payment": 100,
        "borrower_current": true,
        "stated_balances": [
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ]
      },
      "output_payload": {
        "verdict": "completed",
        "periods_analyzed": 12,
        "starting_balance": 0,
        "recomputed_balances": [
          0,
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ],
        "recomputed_low_point": 0,
        "low_point_month": 12,
        "target_low_point": 101,
        "total_annual_disbursements": 1200,
        "cushion_cap_amount": 200,
        "stated_cushion": 101,
        "cushion_within_cap": true,
        "account_status": "shortage",
        "shortage_amount": 101,
        "surplus_amount": 0,
        "shortage_threshold_base": 100,
        "shortage_threshold_base_source": "monthly_escrow_payment",
        "shortage_at_or_above_one_month_payment": true,
        "shortage_permitted_courses": [
          "do_nothing",
          "repay_equal_monthly_12_plus_months"
        ],
        "servicer_course_permitted": null,
        "surplus_refund_required": false,
        "surplus_refund_unverified": false,
        "shortage_repay_min_months_if_elected": 12,
        "discrepancies": {
          "count": 0,
          "lines": []
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "method": "aggregate_escrow_accounting_values_only",
          "periods_analyzed": 12,
          "line_items_recomputed": 12,
          "discrepancy_count": 0,
          "account_status": "shortage",
          "cushion_checked": true,
          "cushion_within_cap": true,
          "computed_from": "borrower_supplied_values_only",
          "pii_carried": false,
          "total_annual_disbursements": 1200,
          "recomputed_low_point": 0,
          "refusal_free": true
        },
        "manual_review_required": false
      }
    },
    {
      "name": "shortage-servicer-30-day-course-not-permitted-at-threshold",
      "note": "Clean statement (12 deposits of 100, a 1200 disbursement in month 12) with a stated cushion of 100, within the one-sixth cap of 200: low point 0 against target 100, a shortage of 100 against a supplied monthly escrow account payment of 100, i.e. at one month's payment. Hand-derived from the pinned rule text: every shortage course is permissive. The servicer chose repayment within 30 days, which is permitted only below one month's payment.",
      "golden_hash": "f7b1c64172b446f0a4b16d7c4dc1000a3e6d75e42d71e107224ac5f64166e6d3",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "Clean statement (12 deposits of 100, a 1200 disbursement in month 12) with a stated cushion of 100, within the one-sixth cap of 200: low point 0 against target 100, a shortage of 100 against a supplied monthly escrow account payment of 100, i.e. at one month's payment. Hand-derived from the pinned rule text: every shortage course is permissive. The servicer chose repayment within 30 days, which is permitted only below one month's payment.",
        "expect": {
          "verdict": "completed",
          "account_status": "shortage",
          "periods_analyzed": 12,
          "discrepancy_count": 0,
          "cushion_within_cap": true,
          "shortage_amount": 100,
          "surplus_amount": 0,
          "surplus_refund_required": false,
          "surplus_refund_unverified": false,
          "manual_review_required": false,
          "shortage_permitted_courses": [
            "do_nothing",
            "repay_equal_monthly_12_plus_months"
          ],
          "shortage_at_or_above_one_month_payment": true,
          "servicer_course_permitted": false,
          "compliance_flags": [
            "ESCROW_SHORTAGE",
            "ESCROW_SHORTAGE_COURSES_PERMITTED",
            "ESCROW_SHORTAGE_AT_OR_ABOVE_ONE_MONTH_PAYMENT",
            "SERVICER_SHORTAGE_COURSE_NOT_PERMITTED"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1200
        ],
        "stated_cushion": 100,
        "monthly_escrow_payment": 100,
        "borrower_current": true,
        "stated_balances": [
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ],
        "servicer_chosen_course": "repay_within_30_days"
      },
      "output_payload": {
        "verdict": "completed",
        "periods_analyzed": 12,
        "starting_balance": 0,
        "recomputed_balances": [
          0,
          100,
          200,
          300,
          400,
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ],
        "recomputed_low_point": 0,
        "low_point_month": 12,
        "target_low_point": 100,
        "total_annual_disbursements": 1200,
        "cushion_cap_amount": 200,
        "stated_cushion": 100,
        "cushion_within_cap": true,
        "account_status": "shortage",
        "shortage_amount": 100,
        "surplus_amount": 0,
        "shortage_threshold_base": 100,
        "shortage_threshold_base_source": "monthly_escrow_payment",
        "shortage_at_or_above_one_month_payment": true,
        "shortage_permitted_courses": [
          "do_nothing",
          "repay_equal_monthly_12_plus_months"
        ],
        "servicer_course_permitted": false,
        "surplus_refund_required": false,
        "surplus_refund_unverified": false,
        "shortage_repay_min_months_if_elected": 12,
        "discrepancies": {
          "count": 0,
          "lines": []
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "method": "aggregate_escrow_accounting_values_only",
          "periods_analyzed": 12,
          "line_items_recomputed": 12,
          "discrepancy_count": 0,
          "account_status": "shortage",
          "cushion_checked": true,
          "cushion_within_cap": true,
          "computed_from": "borrower_supplied_values_only",
          "pii_carried": false,
          "total_annual_disbursements": 1200,
          "recomputed_low_point": 0,
          "refusal_free": true
        },
        "manual_review_required": false
      }
    },
    {
      "name": "identifier-field-refused",
      "note": "The clean statement with a text value (an account reference) sitting in the month-4 stated-balance slot. Exercises the values-only refusal: a string where a number belongs is identifier-like by construction, is refused, and is never echoed.",
      "golden_hash": "d0f18368856ab9993556875a6f25335edfc26e7f1de003a298303ec63c05c3c8",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "The clean statement with a text value (an account reference) sitting in the month-4 stated-balance slot. Exercises the values-only refusal: a string where a number belongs is identifier-like by construction, is refused, and is never echoed. Cross-checked at authoring time against the estate's prior aggregate-escrow kernel art-342 compute_escrow_analysis on the identical values: trial balances and low point agree within 1e-12 relative (ART705 composition precedent). Expectations hand-derived from the method text, not read off the kernel.",
        "expect": {
          "verdict": "refused",
          "account_status": null,
          "periods_analyzed": 0,
          "discrepancy_count": 0,
          "manual_review_required": true,
          "compliance_flags": [
            "IDENTIFIER_LIKE_FIELD_REFUSED"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1200
        ],
        "stated_balances": [
          100,
          200,
          300,
          "acct-4471",
          500,
          600,
          700,
          800,
          900,
          1000,
          1100,
          0
        ]
      },
      "output_payload": {
        "verdict": "refused",
        "refused_because": "identifier_or_free_text_value_in_declared_field",
        "refused_field": "stated_balances[3]",
        "periods_analyzed": 0,
        "discrepancies": {
          "count": 0,
          "lines": []
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "refused": true
        },
        "manual_review_required": true
      }
    },
    {
      "name": "periods-over-bound-refused",
      "note": "13 monthly periods, one beyond the bounded computation year. Exercises the periods bound refusal.",
      "golden_hash": "5feb4f633d5cd1bed76c3687e392965ecc7f371996ef61dba88e76af7303298f",
      "independent_oracle": {
        "source": "eCFR, 12 CFR 1024.17 (Reg X) escrow account analysis, aggregate analysis method, as pinned 2026-10-02 (research/clause-snapshots/12-CFR-1024.17-ecfr-2026-10-05.txt)",
        "source_digest": "sha256:11f16f3eb36254fb45159d1c9f09f0264e851bd2f2c65a97191ea8b838170bb6",
        "derivation": "13 monthly periods, one beyond the bounded computation year. Exercises the periods bound refusal. Cross-checked at authoring time against the estate's prior aggregate-escrow kernel art-342 compute_escrow_analysis on the identical values: trial balances and low point agree within 1e-12 relative (ART705 composition precedent). Expectations hand-derived from the method text, not read off the kernel.",
        "expect": {
          "verdict": "refused",
          "account_status": null,
          "discrepancy_count": 0,
          "manual_review_required": true,
          "compliance_flags": [
            "PERIODS_EXCEED_BOUNDED_12_REFUSED"
          ]
        }
      },
      "policy_parameters": {
        "starting_balance": 0,
        "monthly_payments": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ],
        "disbursements": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "stated_balances": [
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100,
          100
        ]
      },
      "output_payload": {
        "verdict": "refused",
        "refused_because": "periods_exceed_bounded_12",
        "periods_supplied": 13,
        "max_periods": 12,
        "discrepancies": {
          "count": 0,
          "lines": []
        },
        "evidence": {
          "record_type": "escrow_statement_audit",
          "tool_id": "732-borrower-escrow-auditor",
          "tool_version": "1.0.0",
          "refused": true
        },
        "manual_review_required": true
      }
    }
  ]
}
