{
  "tool_id": "art-402-validate-regf-call-frequency",
  "note": "Reg F 12 CFR 1006.14(b) 7-in-7 and quiet-period presumption boundary fixtures.",
  "vectors": [
    {
      "name": "seven_calls_boundary_ok",
      "policy_parameters": {
        "inputs": {
          "timezone_offset_minutes": 0,
          "calls": [
            {
              "timestamp": "2026-07-01T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-02T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-03T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-04T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-05T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-06T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-07T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            }
          ]
        }
      },
      "output_payload": {
        "debts_checked": 1,
        "debts_with_seven_in_seven_presumption": 0,
        "debts_with_quiet_period_presumption": 0,
        "debts": [
          {
            "debt_id": "DEBT-1",
            "calls_checked": 7,
            "seven_in_seven_presumption": false,
            "seven_in_seven_trips": [],
            "quiet_period_presumption": false,
            "quiet_period_violations": []
          }
        ],
        "invalid_call_indices": [],
        "timezone_offset_minutes_applied": 0,
        "window_days": 7,
        "disambiguation": "validate_regf_call_frequency checks the declared call log against the 12 CFR 1006.14(b)(2) 7-in-7 and post-conversation quiet-period REBUTTABLE PRESUMPTIONS -- it does not determine that harassment occurred, and a debt collector may rebut either presumption with evidence under 1006.14(b)(3).",
        "regulatory_basis": "12 CFR 1006.14(b)(2)(i) (more than seven calls within seven consecutive days per debt) and 1006.14(b)(2)(ii) (a call within seven days after a telephone conversation on that debt); presumptions are rebuttable per 1006.14(b)(3)."
      },
      "compliance_flags": [],
      "golden_hash": "038513544e0e4f01b78564f904d42299981c3f7a96e69d15f6888cd37c7f5de3"
    },
    {
      "name": "eighth_call_trips_7in7",
      "policy_parameters": {
        "inputs": {
          "timezone_offset_minutes": 0,
          "calls": [
            {
              "timestamp": "2026-07-01T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-02T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-03T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-04T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-05T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-06T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-07T09:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            },
            {
              "timestamp": "2026-07-07T15:00:00Z",
              "debt_id": "DEBT-1",
              "connected": false
            }
          ]
        }
      },
      "output_payload": {
        "debts_checked": 1,
        "debts_with_seven_in_seven_presumption": 1,
        "debts_with_quiet_period_presumption": 0,
        "debts": [
          {
            "debt_id": "DEBT-1",
            "calls_checked": 8,
            "seven_in_seven_presumption": true,
            "seven_in_seven_trips": [
              {
                "input_index": 7,
                "timestamp": "2026-07-07T15:00:00Z",
                "calls_in_window": 8,
                "window_start_day_offset": 20635
              }
            ],
            "quiet_period_presumption": false,
            "quiet_period_violations": []
          }
        ],
        "invalid_call_indices": [],
        "timezone_offset_minutes_applied": 0,
        "window_days": 7,
        "disambiguation": "validate_regf_call_frequency checks the declared call log against the 12 CFR 1006.14(b)(2) 7-in-7 and post-conversation quiet-period REBUTTABLE PRESUMPTIONS -- it does not determine that harassment occurred, and a debt collector may rebut either presumption with evidence under 1006.14(b)(3).",
        "regulatory_basis": "12 CFR 1006.14(b)(2)(i) (more than seven calls within seven consecutive days per debt) and 1006.14(b)(2)(ii) (a call within seven days after a telephone conversation on that debt); presumptions are rebuttable per 1006.14(b)(3)."
      },
      "compliance_flags": [
        "REGF_7IN7_PRESUMPTION_DEBT_DEBT-1"
      ],
      "golden_hash": "b5c5ab349774b02e6152085f03730697b7ea7349b8dda581896254921c9655a7"
    },
    {
      "name": "quiet_period_day7_edge_prohibited",
      "policy_parameters": {
        "inputs": {
          "timezone_offset_minutes": 0,
          "calls": [
            {
              "timestamp": "2026-07-01T09:00:00Z",
              "debt_id": "DEBT-2",
              "connected": true
            },
            {
              "timestamp": "2026-07-08T09:00:00Z",
              "debt_id": "DEBT-2",
              "connected": false
            }
          ]
        }
      },
      "output_payload": {
        "debts_checked": 1,
        "debts_with_seven_in_seven_presumption": 0,
        "debts_with_quiet_period_presumption": 1,
        "debts": [
          {
            "debt_id": "DEBT-2",
            "calls_checked": 2,
            "seven_in_seven_presumption": false,
            "seven_in_seven_trips": [],
            "quiet_period_presumption": true,
            "quiet_period_violations": [
              {
                "input_index": 1,
                "timestamp": "2026-07-08T09:00:00Z",
                "prior_connected_input_index": 0,
                "days_since_conversation": 7
              }
            ]
          }
        ],
        "invalid_call_indices": [],
        "timezone_offset_minutes_applied": 0,
        "window_days": 7,
        "disambiguation": "validate_regf_call_frequency checks the declared call log against the 12 CFR 1006.14(b)(2) 7-in-7 and post-conversation quiet-period REBUTTABLE PRESUMPTIONS -- it does not determine that harassment occurred, and a debt collector may rebut either presumption with evidence under 1006.14(b)(3).",
        "regulatory_basis": "12 CFR 1006.14(b)(2)(i) (more than seven calls within seven consecutive days per debt) and 1006.14(b)(2)(ii) (a call within seven days after a telephone conversation on that debt); presumptions are rebuttable per 1006.14(b)(3)."
      },
      "compliance_flags": [
        "REGF_QUIET_PERIOD_PRESUMPTION_DEBT_DEBT-2"
      ],
      "golden_hash": "0b6d50a4d142adafd7b29fdbc99d9baacf94dafa1e00f98e03553a30c5390b14"
    },
    {
      "name": "quiet_period_day8_clear",
      "policy_parameters": {
        "inputs": {
          "timezone_offset_minutes": 0,
          "calls": [
            {
              "timestamp": "2026-07-01T09:00:00Z",
              "debt_id": "DEBT-2",
              "connected": true
            },
            {
              "timestamp": "2026-07-09T09:00:00Z",
              "debt_id": "DEBT-2",
              "connected": false
            }
          ]
        }
      },
      "output_payload": {
        "debts_checked": 1,
        "debts_with_seven_in_seven_presumption": 0,
        "debts_with_quiet_period_presumption": 0,
        "debts": [
          {
            "debt_id": "DEBT-2",
            "calls_checked": 2,
            "seven_in_seven_presumption": false,
            "seven_in_seven_trips": [],
            "quiet_period_presumption": false,
            "quiet_period_violations": []
          }
        ],
        "invalid_call_indices": [],
        "timezone_offset_minutes_applied": 0,
        "window_days": 7,
        "disambiguation": "validate_regf_call_frequency checks the declared call log against the 12 CFR 1006.14(b)(2) 7-in-7 and post-conversation quiet-period REBUTTABLE PRESUMPTIONS -- it does not determine that harassment occurred, and a debt collector may rebut either presumption with evidence under 1006.14(b)(3).",
        "regulatory_basis": "12 CFR 1006.14(b)(2)(i) (more than seven calls within seven consecutive days per debt) and 1006.14(b)(2)(ii) (a call within seven days after a telephone conversation on that debt); presumptions are rebuttable per 1006.14(b)(3)."
      },
      "compliance_flags": [],
      "golden_hash": "11b4ae8370b6257135dd1cae00ae59be0300c5b1a7c468db57249a50cabd0fd5"
    },
    {
      "name": "multi_debt_mixed",
      "policy_parameters": {
        "inputs": {
          "timezone_offset_minutes": -300,
          "calls": [
            {
              "timestamp": "2026-07-01T09:00:00",
              "debt_id": "DEBT-A",
              "connected": false
            },
            {
              "timestamp": "2026-07-02T09:00:00",
              "debt_id": "DEBT-A",
              "connected": true
            },
            {
              "timestamp": "2026-07-05T09:00:00",
              "debt_id": "DEBT-A",
              "connected": false
            },
            {
              "timestamp": "2026-07-01T10:00:00",
              "debt_id": "DEBT-B",
              "connected": false
            },
            {
              "timestamp": "2026-07-02T10:00:00",
              "debt_id": "DEBT-B",
              "connected": false
            },
            {
              "timestamp": "2026-07-03T10:00:00",
              "debt_id": "DEBT-B",
              "connected": false
            }
          ]
        }
      },
      "output_payload": {
        "debts_checked": 2,
        "debts_with_seven_in_seven_presumption": 0,
        "debts_with_quiet_period_presumption": 1,
        "debts": [
          {
            "debt_id": "DEBT-A",
            "calls_checked": 3,
            "seven_in_seven_presumption": false,
            "seven_in_seven_trips": [],
            "quiet_period_presumption": true,
            "quiet_period_violations": [
              {
                "input_index": 2,
                "timestamp": "2026-07-05T09:00:00",
                "prior_connected_input_index": 1,
                "days_since_conversation": 3
              }
            ]
          },
          {
            "debt_id": "DEBT-B",
            "calls_checked": 3,
            "seven_in_seven_presumption": false,
            "seven_in_seven_trips": [],
            "quiet_period_presumption": false,
            "quiet_period_violations": []
          }
        ],
        "invalid_call_indices": [],
        "timezone_offset_minutes_applied": -300,
        "window_days": 7,
        "disambiguation": "validate_regf_call_frequency checks the declared call log against the 12 CFR 1006.14(b)(2) 7-in-7 and post-conversation quiet-period REBUTTABLE PRESUMPTIONS -- it does not determine that harassment occurred, and a debt collector may rebut either presumption with evidence under 1006.14(b)(3).",
        "regulatory_basis": "12 CFR 1006.14(b)(2)(i) (more than seven calls within seven consecutive days per debt) and 1006.14(b)(2)(ii) (a call within seven days after a telephone conversation on that debt); presumptions are rebuttable per 1006.14(b)(3)."
      },
      "compliance_flags": [
        "REGF_QUIET_PERIOD_PRESUMPTION_DEBT_DEBT-A"
      ],
      "golden_hash": "2c89c9a124bed78ec79211ec2afe059a2feabb45356de80586ebdda20899fce3"
    }
  ]
}