{
  "tool_id": "art-477-intraday-liquidity-monitoring",
  "note": "golden_hash filled by golden-parity.test.mjs --update.",
  "vectors": [
    {
      "name": "seeded_default_covered_ok",
      "description": "Five time-stamped settlement transactions produce a mid-morning negative excursion; two time-specific obligations both settle on time; available sources exceed the daily maximum usage.",
      "policy_parameters": {
        "start_of_day_available_musd": 500,
        "transactions": [
          {
            "tx_id": "t1",
            "time_hhmm": "08:00",
            "flow_type": "inflow",
            "amount_musd": 100
          },
          {
            "tx_id": "t2",
            "time_hhmm": "09:30",
            "flow_type": "outflow",
            "amount_musd": 250
          },
          {
            "tx_id": "t3",
            "time_hhmm": "10:15",
            "flow_type": "outflow",
            "amount_musd": 120
          },
          {
            "tx_id": "t4",
            "time_hhmm": "13:00",
            "flow_type": "inflow",
            "amount_musd": 200
          },
          {
            "tx_id": "t5",
            "time_hhmm": "15:45",
            "flow_type": "outflow",
            "amount_musd": 80
          }
        ],
        "time_specific_obligations": [
          {
            "obligation_id": "o1",
            "due_time_hhmm": "10:00",
            "settled_time_hhmm": "09:45",
            "amount_musd": 150
          },
          {
            "obligation_id": "o2",
            "due_time_hhmm": "14:00",
            "settled_time_hhmm": "13:30",
            "amount_musd": 90
          }
        ],
        "available_intraday_sources": [
          {
            "source_id": "src-cb-balance",
            "amount_musd": 200
          },
          {
            "source_id": "src-committed-line",
            "amount_musd": 150
          }
        ]
      },
      "output_payload": {
        "start_of_day_available_musd": 500,
        "daily_max_usage_musd": 270,
        "cumulative_position_path": [
          {
            "tx_id": "t1",
            "time_hhmm": "08:00",
            "flow_type": "inflow",
            "amount_musd": 100,
            "cumulative_position_musd": 100
          },
          {
            "tx_id": "t2",
            "time_hhmm": "09:30",
            "flow_type": "outflow",
            "amount_musd": 250,
            "cumulative_position_musd": -150
          },
          {
            "tx_id": "t3",
            "time_hhmm": "10:15",
            "flow_type": "outflow",
            "amount_musd": 120,
            "cumulative_position_musd": -270
          },
          {
            "tx_id": "t4",
            "time_hhmm": "13:00",
            "flow_type": "inflow",
            "amount_musd": 200,
            "cumulative_position_musd": -70
          },
          {
            "tx_id": "t5",
            "time_hhmm": "15:45",
            "flow_type": "outflow",
            "amount_musd": 80,
            "cumulative_position_musd": -150
          }
        ],
        "total_payments_musd": 450,
        "total_receipts_musd": 300,
        "time_specific_obligations": [
          {
            "obligation_id": "o1",
            "due_time_hhmm": "10:00",
            "settled_time_hhmm": "09:45",
            "amount_musd": 150,
            "settled": true,
            "met_on_time": true
          },
          {
            "obligation_id": "o2",
            "due_time_hhmm": "14:00",
            "settled_time_hhmm": "13:30",
            "amount_musd": 90,
            "settled": true,
            "met_on_time": true
          }
        ],
        "obligations_summary": {
          "total_obligations": 2,
          "obligations_met": 2,
          "obligations_missed": 0
        },
        "available_intraday_sources": [
          {
            "source_id": "src-cb-balance",
            "amount_musd": 200
          },
          {
            "source_id": "src-committed-line",
            "amount_musd": 150
          }
        ],
        "available_sources_total_musd": 350,
        "usage_covered": true,
        "coverage_ratio": 1.3,
        "regulatory_basis": "BCBS 248 \"Monitoring tools for intraday liquidity management\" (Basel Committee on Banking Supervision, April 2013).",
        "note": "Daily maximum intraday liquidity usage is the largest negative excursion of a cumulative net settlement position built from the caller-supplied time-stamped transaction list, starting at zero -- independent of the opening balance. Start-of-day available liquidity, time-specific-obligation timing, and available intraday sources are caller-supplied inputs, echoed and classified, not derived from external data. Evidence artifact only -- not a filing, not a regulatory submission, and not a claim of full BCBS 248 seven-tool coverage."
      },
      "compliance_flags": [
        "INTRADAY_USAGE_WITHIN_AVAILABLE_SOURCES",
        "ALL_TIME_SPECIFIC_OBLIGATIONS_MET"
      ],
      "golden_hash": "b6b33e750a7a47200e1c23224473011147faa7de659262982cdfb9825d21868f"
    },
    {
      "name": "usage_exceeds_sources_missed_obligation",
      "description": "Large early outflow drives a deep negative excursion; available sources fall short of the daily maximum usage; one obligation is settled after its due time.",
      "policy_parameters": {
        "start_of_day_available_musd": 300,
        "transactions": [
          {
            "tx_id": "t1",
            "time_hhmm": "08:15",
            "flow_type": "outflow",
            "amount_musd": 400
          },
          {
            "tx_id": "t2",
            "time_hhmm": "11:00",
            "flow_type": "inflow",
            "amount_musd": 50
          },
          {
            "tx_id": "t3",
            "time_hhmm": "16:00",
            "flow_type": "inflow",
            "amount_musd": 100
          }
        ],
        "time_specific_obligations": [
          {
            "obligation_id": "o1",
            "due_time_hhmm": "09:00",
            "settled_time_hhmm": "09:30",
            "amount_musd": 400
          }
        ],
        "available_intraday_sources": [
          {
            "source_id": "src-cb-balance",
            "amount_musd": 150
          }
        ]
      },
      "output_payload": {
        "start_of_day_available_musd": 300,
        "daily_max_usage_musd": 400,
        "cumulative_position_path": [
          {
            "tx_id": "t1",
            "time_hhmm": "08:15",
            "flow_type": "outflow",
            "amount_musd": 400,
            "cumulative_position_musd": -400
          },
          {
            "tx_id": "t2",
            "time_hhmm": "11:00",
            "flow_type": "inflow",
            "amount_musd": 50,
            "cumulative_position_musd": -350
          },
          {
            "tx_id": "t3",
            "time_hhmm": "16:00",
            "flow_type": "inflow",
            "amount_musd": 100,
            "cumulative_position_musd": -250
          }
        ],
        "total_payments_musd": 400,
        "total_receipts_musd": 150,
        "time_specific_obligations": [
          {
            "obligation_id": "o1",
            "due_time_hhmm": "09:00",
            "settled_time_hhmm": "09:30",
            "amount_musd": 400,
            "settled": true,
            "met_on_time": false
          }
        ],
        "obligations_summary": {
          "total_obligations": 1,
          "obligations_met": 0,
          "obligations_missed": 1
        },
        "available_intraday_sources": [
          {
            "source_id": "src-cb-balance",
            "amount_musd": 150
          }
        ],
        "available_sources_total_musd": 150,
        "usage_covered": false,
        "coverage_ratio": 0.38,
        "regulatory_basis": "BCBS 248 \"Monitoring tools for intraday liquidity management\" (Basel Committee on Banking Supervision, April 2013).",
        "note": "Daily maximum intraday liquidity usage is the largest negative excursion of a cumulative net settlement position built from the caller-supplied time-stamped transaction list, starting at zero -- independent of the opening balance. Start-of-day available liquidity, time-specific-obligation timing, and available intraday sources are caller-supplied inputs, echoed and classified, not derived from external data. Evidence artifact only -- not a filing, not a regulatory submission, and not a claim of full BCBS 248 seven-tool coverage."
      },
      "compliance_flags": [
        "INTRADAY_USAGE_EXCEEDS_AVAILABLE_SOURCES",
        "TIME_SPECIFIC_OBLIGATIONS_MISSED"
      ],
      "golden_hash": "ee7a08f75bdf1524b3e90df326ab80dbb6425bbed07c225b915d7cd41a419790"
    },
    {
      "name": "unsettled_obligation_flag",
      "description": "One obligation is never settled (no settled_time_hhmm supplied) -- flagged missed. Transactions never dip negative, so daily maximum usage is zero.",
      "policy_parameters": {
        "start_of_day_available_musd": 250,
        "transactions": [
          {
            "tx_id": "t1",
            "time_hhmm": "09:00",
            "flow_type": "inflow",
            "amount_musd": 500
          },
          {
            "tx_id": "t2",
            "time_hhmm": "12:00",
            "flow_type": "outflow",
            "amount_musd": 300
          }
        ],
        "time_specific_obligations": [
          {
            "obligation_id": "o1",
            "due_time_hhmm": "11:00",
            "settled_time_hhmm": null,
            "amount_musd": 200
          }
        ],
        "available_intraday_sources": [
          {
            "source_id": "src-cb-balance",
            "amount_musd": 100
          }
        ]
      },
      "output_payload": {
        "start_of_day_available_musd": 250,
        "daily_max_usage_musd": 0,
        "cumulative_position_path": [
          {
            "tx_id": "t1",
            "time_hhmm": "09:00",
            "flow_type": "inflow",
            "amount_musd": 500,
            "cumulative_position_musd": 500
          },
          {
            "tx_id": "t2",
            "time_hhmm": "12:00",
            "flow_type": "outflow",
            "amount_musd": 300,
            "cumulative_position_musd": 200
          }
        ],
        "total_payments_musd": 300,
        "total_receipts_musd": 500,
        "time_specific_obligations": [
          {
            "obligation_id": "o1",
            "due_time_hhmm": "11:00",
            "settled_time_hhmm": null,
            "amount_musd": 200,
            "settled": false,
            "met_on_time": false
          }
        ],
        "obligations_summary": {
          "total_obligations": 1,
          "obligations_met": 0,
          "obligations_missed": 1
        },
        "available_intraday_sources": [
          {
            "source_id": "src-cb-balance",
            "amount_musd": 100
          }
        ],
        "available_sources_total_musd": 100,
        "usage_covered": true,
        "coverage_ratio": null,
        "regulatory_basis": "BCBS 248 \"Monitoring tools for intraday liquidity management\" (Basel Committee on Banking Supervision, April 2013).",
        "note": "Daily maximum intraday liquidity usage is the largest negative excursion of a cumulative net settlement position built from the caller-supplied time-stamped transaction list, starting at zero -- independent of the opening balance. Start-of-day available liquidity, time-specific-obligation timing, and available intraday sources are caller-supplied inputs, echoed and classified, not derived from external data. Evidence artifact only -- not a filing, not a regulatory submission, and not a claim of full BCBS 248 seven-tool coverage."
      },
      "compliance_flags": [
        "INTRADAY_USAGE_WITHIN_AVAILABLE_SOURCES",
        "TIME_SPECIFIC_OBLIGATIONS_MISSED"
      ],
      "golden_hash": "e5ce26dd6ceebe49359d2090286effc1b61bab50256b03c63284a2b4ba5639e2"
    },
    {
      "name": "zero_input_edge",
      "description": "No transactions, no obligations, no available sources. Zero usage, trivially within (zero) available sources, no obligations flag emitted since the set is empty.",
      "policy_parameters": {
        "start_of_day_available_musd": 0,
        "transactions": [],
        "time_specific_obligations": [],
        "available_intraday_sources": []
      },
      "output_payload": {
        "start_of_day_available_musd": 0,
        "daily_max_usage_musd": 0,
        "cumulative_position_path": [],
        "total_payments_musd": 0,
        "total_receipts_musd": 0,
        "time_specific_obligations": [],
        "obligations_summary": {
          "total_obligations": 0,
          "obligations_met": 0,
          "obligations_missed": 0
        },
        "available_intraday_sources": [],
        "available_sources_total_musd": 0,
        "usage_covered": true,
        "coverage_ratio": null,
        "regulatory_basis": "BCBS 248 \"Monitoring tools for intraday liquidity management\" (Basel Committee on Banking Supervision, April 2013).",
        "note": "Daily maximum intraday liquidity usage is the largest negative excursion of a cumulative net settlement position built from the caller-supplied time-stamped transaction list, starting at zero -- independent of the opening balance. Start-of-day available liquidity, time-specific-obligation timing, and available intraday sources are caller-supplied inputs, echoed and classified, not derived from external data. Evidence artifact only -- not a filing, not a regulatory submission, and not a claim of full BCBS 248 seven-tool coverage."
      },
      "compliance_flags": [
        "INTRADAY_USAGE_WITHIN_AVAILABLE_SOURCES"
      ],
      "golden_hash": "14d1c8545a7ac88ef6562861c41ba5a51b6dc980e14c51d1d5587013e0636e18"
    }
  ]
}
