{
  "tool_id": "art-532-client-porting-check",
  "note": "Vectors computed directly from the shipped kernel. Covers a clean portable outcome, a window-missed outcome, a consent-pending outcome, and the finite-gate no-positions-declared outcome.",
  "vectors": [
    {
      "name": "portable-clean",
      "description": "Two complete positions, complete collateral, backup member consented, well within the declared 48-hour porting window.",
      "policy_parameters": {
        "client_ref": "CLIENT-A1",
        "backup_member_id": "BACKUP-MEMBER-77",
        "backup_member_consent_status": "consented",
        "default_event_at": "2026-08-04T09:00:00Z",
        "evaluated_at": "2026-08-04T15:00:00Z",
        "porting_window_hours": 48,
        "positions": [
          {
            "position_id": "POS-1",
            "product_type": "interest_rate_swap",
            "currency": "USD",
            "notional_minor_units": 5000000000,
            "complete": true
          },
          {
            "position_id": "POS-2",
            "product_type": "repo",
            "currency": "USD",
            "notional_minor_units": 1200000000,
            "complete": true
          }
        ],
        "collateral": [
          {
            "collateral_id": "COLL-1",
            "asset_type": "ust_bill",
            "currency": "USD",
            "amount_minor_units": 600000000,
            "complete": true
          }
        ]
      },
      "output_payload": {
        "client_ref": "CLIENT-A1",
        "backup_member_id": "BACKUP-MEMBER-77",
        "backup_member_consent_status": "consented",
        "default_event_at": "2026-08-04T09:00:00Z",
        "evaluated_at": "2026-08-04T15:00:00Z",
        "porting_window_hours": 48,
        "elapsed_minutes": 360,
        "window_minutes": 2880,
        "window_missed": false,
        "position_count": 2,
        "positions": [
          {
            "position_id": "POS-1",
            "product_type": "interest_rate_swap",
            "currency": "USD",
            "notional_minor_units": 5000000000,
            "notional_display": "50000000.00",
            "complete": true
          },
          {
            "position_id": "POS-2",
            "product_type": "repo",
            "currency": "USD",
            "notional_minor_units": 1200000000,
            "notional_display": "12000000.00",
            "complete": true
          }
        ],
        "total_notional_minor_units": 6200000000,
        "total_notional_display": "62000000.00",
        "positions_complete": true,
        "collateral_count": 1,
        "collateral": [
          {
            "collateral_id": "COLL-1",
            "asset_type": "ust_bill",
            "currency": "USD",
            "amount_minor_units": 600000000,
            "amount_display": "6000000.00",
            "complete": true
          }
        ],
        "total_collateral_minor_units": 600000000,
        "total_collateral_display": "6000000.00",
        "collateral_complete": true,
        "verdict": "portable",
        "citations": {
          "segregation_and_portability": {
            "scheme": "other",
            "id": "PFMI Principle 14",
            "in_force_from": "2012-04-16",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "mapped_at": "2026-08-04",
            "uri": "https://www.bis.org/cpmi/publ/d101a.pdf"
          },
          "customer_protection_segregation": {
            "scheme": "cfr",
            "id": "17 CFR 240.15c3-3a",
            "in_force_from": "1972-11-03",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "mapped_at": "2026-08-04",
            "uri": "https://www.ecfr.gov/current/title-17/chapter-II/part-240/subject-group-ECFR6c1b03927685662/section-240.15c3-3a"
          }
        },
        "rejected_inputs": [],
        "rationale": [
          "Client reference CLIENT-A1; backup clearing member BACKUP-MEMBER-77, consent status consented (PFMI Principle 14).",
          "2 position(s) declared totalling 62000000.00 notional, 0 not yet declared complete.",
          "1 collateral component(s) declared totalling 6000000.00, 0 not yet declared complete.",
          "Elapsed time since the default event is 360 minute(s) against a declared porting window of 2880 minute(s) (48 hour(s)).",
          "On these figures the client's positions and collateral are complete, the backup member has consented, and the declared porting window has not elapsed (17 CFR 240.15c3-3a where a broker-dealer customer-protection structure is in view). This is an evaluation of the supplied snapshot, not a guarantee that porting will in fact occur."
        ],
        "note": "Deterministic client-porting check over a caller-declared snapshot of positions, collateral, backup-member consent status, and porting window. Single-run and stateless: this tool holds no records, runs on no schedule, and retains nothing. The verdict evaluates the supplied snapshot; it is not a guarantee of a porting outcome and it does not itself move any position or collateral."
      },
      "compliance_flags": [
        "PORTING_CLIENT_PORTABLE"
      ],
      "golden_hash": "269ee83eb868867d55d0e79ebcf692353731323e45d8c540e842fa3e9d1eaf2f"
    },
    {
      "name": "window-missed",
      "description": "Everything otherwise clean, but the declared evaluated_at falls outside the declared 24-hour porting window.",
      "policy_parameters": {
        "client_ref": "CLIENT-B2",
        "backup_member_id": "BACKUP-MEMBER-12",
        "backup_member_consent_status": "consented",
        "default_event_at": "2026-08-01T00:00:00Z",
        "evaluated_at": "2026-08-03T00:00:00Z",
        "porting_window_hours": 24,
        "positions": [
          {
            "position_id": "POS-9",
            "product_type": "futures",
            "currency": "EUR",
            "notional_minor_units": 900000000,
            "complete": true
          }
        ],
        "collateral": []
      },
      "output_payload": {
        "client_ref": "CLIENT-B2",
        "backup_member_id": "BACKUP-MEMBER-12",
        "backup_member_consent_status": "consented",
        "default_event_at": "2026-08-01T00:00:00Z",
        "evaluated_at": "2026-08-03T00:00:00Z",
        "porting_window_hours": 24,
        "elapsed_minutes": 2880,
        "window_minutes": 1440,
        "window_missed": true,
        "position_count": 1,
        "positions": [
          {
            "position_id": "POS-9",
            "product_type": "futures",
            "currency": "EUR",
            "notional_minor_units": 900000000,
            "notional_display": "9000000.00",
            "complete": true
          }
        ],
        "total_notional_minor_units": 900000000,
        "total_notional_display": "9000000.00",
        "positions_complete": true,
        "collateral_count": 0,
        "collateral": [],
        "total_collateral_minor_units": 0,
        "total_collateral_display": "0.00",
        "collateral_complete": true,
        "verdict": "not_portable_window_missed",
        "citations": {
          "segregation_and_portability": {
            "scheme": "other",
            "id": "PFMI Principle 14",
            "in_force_from": "2012-04-16",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "mapped_at": "2026-08-04",
            "uri": "https://www.bis.org/cpmi/publ/d101a.pdf"
          },
          "customer_protection_segregation": {
            "scheme": "cfr",
            "id": "17 CFR 240.15c3-3a",
            "in_force_from": "1972-11-03",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "mapped_at": "2026-08-04",
            "uri": "https://www.ecfr.gov/current/title-17/chapter-II/part-240/subject-group-ECFR6c1b03927685662/section-240.15c3-3a"
          }
        },
        "rejected_inputs": [],
        "rationale": [
          "Client reference CLIENT-B2; backup clearing member BACKUP-MEMBER-12, consent status consented (PFMI Principle 14).",
          "1 position(s) declared totalling 9000000.00 notional, 0 not yet declared complete.",
          "0 collateral component(s) declared totalling 0.00, 0 not yet declared complete.",
          "Elapsed time since the default event is 2880 minute(s) against a declared porting window of 1440 minute(s) (24 hour(s)).",
          "On these figures the client is not portable as declared. This is an evaluation of the supplied snapshot, not a determination that any party has breached PFMI Principle 14 or SEC Rule 15c3-3a."
        ],
        "note": "Deterministic client-porting check over a caller-declared snapshot of positions, collateral, backup-member consent status, and porting window. Single-run and stateless: this tool holds no records, runs on no schedule, and retains nothing. The verdict evaluates the supplied snapshot; it is not a guarantee of a porting outcome and it does not itself move any position or collateral."
      },
      "compliance_flags": [
        "PORTING_WINDOW_MISSED"
      ],
      "golden_hash": "9ab6ec385177b4435da1be6e9113b6dc99023135b5d0d8f24550a9d2743c989f"
    },
    {
      "name": "no-consent-pending",
      "description": "Within window, positions and collateral complete, but backup member consent is still pending.",
      "policy_parameters": {
        "client_ref": "CLIENT-C3",
        "backup_member_id": "BACKUP-MEMBER-45",
        "backup_member_consent_status": "pending",
        "default_event_at": "2026-08-04T09:00:00Z",
        "evaluated_at": "2026-08-04T12:00:00Z",
        "porting_window_hours": 12,
        "positions": [
          {
            "position_id": "POS-3",
            "product_type": "options",
            "currency": "USD",
            "notional_minor_units": 250000000,
            "complete": true
          }
        ],
        "collateral": [
          {
            "collateral_id": "COLL-2",
            "asset_type": "cash",
            "currency": "USD",
            "amount_minor_units": 30000000,
            "complete": true
          }
        ]
      },
      "output_payload": {
        "client_ref": "CLIENT-C3",
        "backup_member_id": "BACKUP-MEMBER-45",
        "backup_member_consent_status": "pending",
        "default_event_at": "2026-08-04T09:00:00Z",
        "evaluated_at": "2026-08-04T12:00:00Z",
        "porting_window_hours": 12,
        "elapsed_minutes": 180,
        "window_minutes": 720,
        "window_missed": false,
        "position_count": 1,
        "positions": [
          {
            "position_id": "POS-3",
            "product_type": "options",
            "currency": "USD",
            "notional_minor_units": 250000000,
            "notional_display": "2500000.00",
            "complete": true
          }
        ],
        "total_notional_minor_units": 250000000,
        "total_notional_display": "2500000.00",
        "positions_complete": true,
        "collateral_count": 1,
        "collateral": [
          {
            "collateral_id": "COLL-2",
            "asset_type": "cash",
            "currency": "USD",
            "amount_minor_units": 30000000,
            "amount_display": "300000.00",
            "complete": true
          }
        ],
        "total_collateral_minor_units": 30000000,
        "total_collateral_display": "300000.00",
        "collateral_complete": true,
        "verdict": "not_portable_no_consent",
        "citations": {
          "segregation_and_portability": {
            "scheme": "other",
            "id": "PFMI Principle 14",
            "in_force_from": "2012-04-16",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "mapped_at": "2026-08-04",
            "uri": "https://www.bis.org/cpmi/publ/d101a.pdf"
          },
          "customer_protection_segregation": {
            "scheme": "cfr",
            "id": "17 CFR 240.15c3-3a",
            "in_force_from": "1972-11-03",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "mapped_at": "2026-08-04",
            "uri": "https://www.ecfr.gov/current/title-17/chapter-II/part-240/subject-group-ECFR6c1b03927685662/section-240.15c3-3a"
          }
        },
        "rejected_inputs": [],
        "rationale": [
          "Client reference CLIENT-C3; backup clearing member BACKUP-MEMBER-45, consent status pending (PFMI Principle 14).",
          "1 position(s) declared totalling 2500000.00 notional, 0 not yet declared complete.",
          "1 collateral component(s) declared totalling 300000.00, 0 not yet declared complete.",
          "Elapsed time since the default event is 180 minute(s) against a declared porting window of 720 minute(s) (12 hour(s)).",
          "On these figures the client is not portable as declared. This is an evaluation of the supplied snapshot, not a determination that any party has breached PFMI Principle 14 or SEC Rule 15c3-3a."
        ],
        "note": "Deterministic client-porting check over a caller-declared snapshot of positions, collateral, backup-member consent status, and porting window. Single-run and stateless: this tool holds no records, runs on no schedule, and retains nothing. The verdict evaluates the supplied snapshot; it is not a guarantee of a porting outcome and it does not itself move any position or collateral."
      },
      "compliance_flags": [
        "PORTING_CONSENT_PENDING"
      ],
      "golden_hash": "db9ebd886b95ebf20e74bc0b0bcdc8730dc544c14f242ddd405b52c1b65bc197"
    },
    {
      "name": "no-positions-declared",
      "description": "Empty position set -- finite-gate outcome, distinct from a genuine incompleteness break.",
      "policy_parameters": {
        "client_ref": "CLIENT-D4",
        "backup_member_id": "BACKUP-MEMBER-90",
        "backup_member_consent_status": "consented",
        "default_event_at": "2026-08-04T09:00:00Z",
        "evaluated_at": "2026-08-04T10:00:00Z",
        "porting_window_hours": 24,
        "positions": [],
        "collateral": []
      },
      "output_payload": {
        "client_ref": "CLIENT-D4",
        "backup_member_id": "BACKUP-MEMBER-90",
        "backup_member_consent_status": "consented",
        "default_event_at": "2026-08-04T09:00:00Z",
        "evaluated_at": "2026-08-04T10:00:00Z",
        "porting_window_hours": 24,
        "elapsed_minutes": 60,
        "window_minutes": 1440,
        "window_missed": false,
        "position_count": 0,
        "positions": [],
        "total_notional_minor_units": 0,
        "total_notional_display": "0.00",
        "positions_complete": false,
        "collateral_count": 0,
        "collateral": [],
        "total_collateral_minor_units": 0,
        "total_collateral_display": "0.00",
        "collateral_complete": true,
        "verdict": "not_portable_no_positions_declared",
        "citations": {
          "segregation_and_portability": {
            "scheme": "other",
            "id": "PFMI Principle 14",
            "in_force_from": "2012-04-16",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "mapped_at": "2026-08-04",
            "uri": "https://www.bis.org/cpmi/publ/d101a.pdf"
          },
          "customer_protection_segregation": {
            "scheme": "cfr",
            "id": "17 CFR 240.15c3-3a",
            "in_force_from": "1972-11-03",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "mapped_at": "2026-08-04",
            "uri": "https://www.ecfr.gov/current/title-17/chapter-II/part-240/subject-group-ECFR6c1b03927685662/section-240.15c3-3a"
          }
        },
        "rejected_inputs": [],
        "rationale": [
          "Client reference CLIENT-D4; backup clearing member BACKUP-MEMBER-90, consent status consented (PFMI Principle 14).",
          "No positions were declared, so there is nothing to evaluate for porting. This is a defined outcome under the finite gate, not an error.",
          "On these figures the client is not portable as declared. This is an evaluation of the supplied snapshot, not a determination that any party has breached PFMI Principle 14 or SEC Rule 15c3-3a."
        ],
        "note": "Deterministic client-porting check over a caller-declared snapshot of positions, collateral, backup-member consent status, and porting window. Single-run and stateless: this tool holds no records, runs on no schedule, and retains nothing. The verdict evaluates the supplied snapshot; it is not a guarantee of a porting outcome and it does not itself move any position or collateral."
      },
      "compliance_flags": [
        "PORTING_NO_POSITIONS_DECLARED"
      ],
      "golden_hash": "568f22baa44f904fcb324f7d471a6319b90b7e36da657fe3fb279cab8ceee206"
    }
  ]
}
