{
  "tool_id": "art-376-score-payee-name-match",
  "note": "golden_hash filled by `node golden-parity.test.mjs --update`. Synthetic names only (zero PII). Covers: exact match, diacritics (NFD-stripped, in-scope), entity-suffix stripping, token-reorder, close-match edit-distance drift, no-match, and a non-Latin-script pair (Cyrillic account name vs Latin reference name) proving transliteration_in_scope stays false and honestly declared: non-Latin characters are stripped by the [^a-z0-9] normalization filter (account name normalizes to empty), NOT silently transliterated to a false match — the algorithm does not claim script-crossing capability it doesn't have.",
  "vectors": [
    {
      "name": "exact-match",
      "policy_parameters": {
        "account_name": "John Smith",
        "reference_name": "John Smith"
      },
      "output_payload": {
        "score": 100,
        "match_band": "MATCH",
        "algorithm_version": "vop-namematch-1.0.0",
        "match_threshold": 95,
        "close_match_threshold": 80,
        "normalized_account_name": "john smith",
        "normalized_reference_name": "john smith",
        "entity_suffix_stripped": false,
        "transliteration_in_scope": false,
        "compliance_flags": [
          "VOP_NAME_MATCH"
        ]
      },
      "golden_hash": "11c51118e4758963ff2edbea812531444950179d3df746a34b18f5c27eb6359c"
    },
    {
      "name": "diacritics-nfd-strip",
      "policy_parameters": {
        "account_name": "Jose Garcia",
        "reference_name": "José García"
      },
      "output_payload": {
        "score": 100,
        "match_band": "MATCH",
        "algorithm_version": "vop-namematch-1.0.0",
        "match_threshold": 95,
        "close_match_threshold": 80,
        "normalized_account_name": "jose garcia",
        "normalized_reference_name": "jose garcia",
        "entity_suffix_stripped": false,
        "transliteration_in_scope": false,
        "compliance_flags": [
          "VOP_NAME_MATCH"
        ]
      },
      "golden_hash": "d462aa204c6ddc57234a7b84b6850c8b5edc1cdc5f77438ed69f53e378ec296b"
    },
    {
      "name": "entity-suffix-stripped",
      "policy_parameters": {
        "account_name": "Acme Trading Ltd",
        "reference_name": "ACME TRADING LIMITED"
      },
      "output_payload": {
        "score": 100,
        "match_band": "MATCH",
        "algorithm_version": "vop-namematch-1.0.0",
        "match_threshold": 95,
        "close_match_threshold": 80,
        "normalized_account_name": "acme trading",
        "normalized_reference_name": "acme trading",
        "entity_suffix_stripped": true,
        "transliteration_in_scope": false,
        "compliance_flags": [
          "VOP_NAME_MATCH"
        ]
      },
      "golden_hash": "92878e5cda920b30c55d27188cd1b85adf4cb598349e1a620cee04f83c21d8bd"
    },
    {
      "name": "token-reorder-match",
      "policy_parameters": {
        "account_name": "Smith John",
        "reference_name": "John Smith"
      },
      "output_payload": {
        "score": 100,
        "match_band": "MATCH",
        "algorithm_version": "vop-namematch-1.0.0",
        "match_threshold": 95,
        "close_match_threshold": 80,
        "normalized_account_name": "smith john",
        "normalized_reference_name": "john smith",
        "entity_suffix_stripped": false,
        "transliteration_in_scope": false,
        "compliance_flags": [
          "VOP_NAME_MATCH"
        ]
      },
      "golden_hash": "dae31fdcfb8fa98bd006fcd223241fe803ee6488c493488cce0270b9dc8aa9f6"
    },
    {
      "name": "close-match-edit-drift",
      "policy_parameters": {
        "account_name": "Jon Smith",
        "reference_name": "John Smithe"
      },
      "output_payload": {
        "score": 82,
        "match_band": "CLOSE_MATCH",
        "algorithm_version": "vop-namematch-1.0.0",
        "match_threshold": 95,
        "close_match_threshold": 80,
        "normalized_account_name": "jon smith",
        "normalized_reference_name": "john smithe",
        "entity_suffix_stripped": false,
        "transliteration_in_scope": false,
        "compliance_flags": [
          "VOP_NAME_CLOSE_MATCH_WARNING_REQUIRED"
        ]
      },
      "golden_hash": "718fde0491c5a35e221b442c87d621f2465c8428fb263ae590f51901c0054deb"
    },
    {
      "name": "no-match",
      "policy_parameters": {
        "account_name": "Alice Wonderland",
        "reference_name": "Bob Builder"
      },
      "output_payload": {
        "score": 19,
        "match_band": "NO_MATCH",
        "algorithm_version": "vop-namematch-1.0.0",
        "match_threshold": 95,
        "close_match_threshold": 80,
        "normalized_account_name": "alice wonderland",
        "normalized_reference_name": "bob builder",
        "entity_suffix_stripped": false,
        "transliteration_in_scope": false,
        "compliance_flags": [
          "VOP_NAME_NO_MATCH_WARNING_REQUIRED"
        ]
      },
      "golden_hash": "537d598ee4ba82e7c9860bca26e8d8bd8599d577012c7c31fccd13ffd85a3bc6"
    },
    {
      "name": "non-latin-script-transliteration-declared-out-of-scope",
      "policy_parameters": {
        "account_name": "Иван Иванов",
        "reference_name": "Ivan Ivanov"
      },
      "output_payload": {
        "score": 0,
        "match_band": "NO_MATCH",
        "algorithm_version": "vop-namematch-1.0.0",
        "match_threshold": 95,
        "close_match_threshold": 80,
        "normalized_account_name": "",
        "normalized_reference_name": "ivan ivanov",
        "entity_suffix_stripped": false,
        "transliteration_in_scope": false,
        "compliance_flags": [
          "VOP_NAME_NO_MATCH_WARNING_REQUIRED"
        ]
      },
      "golden_hash": "245265605543af442618a74901583cbf3d5f0ae33eb0d5a12cc215d8475f6a70"
    }
  ]
}
