{
  "tool_id": "art-245-mt-mx-translation-fidelity-scorer",
  "note": "MT103->pacs.008 translation fidelity scoring. Vector 1: full well-mapped translation (SHA->SHAR correct). Vector 2: charge bearer mismatch OUR->SHAR (should be DEBT). Vector 3: empty-input finite.",
  "vectors": [
    {
      "name": "full_mt103_well_mapped",
      "description": "Complete MT103 translated to pacs.008 with all fields correctly mapped including SHA->SHAR charge bearer.",
      "policy_parameters": {
        "mt_f20": "PAYMENT20260705",
        "mt_f23b": "CRED",
        "mt_f32a": "260705EUR10000,",
        "mt_f50": "Acme Corp",
        "mt_f52a": "DEUTDEFFXXX",
        "mt_f57a": "BARCGB22XXX",
        "mt_f59": "Global Trade AG",
        "mt_f70": "/INV/2026/001 trade payment",
        "mt_f71a": "SHA",
        "mx_uetr": "550e8400-e29b-41d4-a716-446655440000",
        "mx_dbtr_nm": "Acme Corp",
        "mx_cdtr_nm": "Global Trade AG",
        "mx_cdtr_agt": "BARCGB22XXX",
        "mx_dbtr_agt": "DEUTDEFFXXX",
        "mx_rmt_ustrd": "/INV/2026/001 trade payment",
        "mx_chrg_br": "SHAR"
      },
      "output_payload": {
        "fidelity_score": 100,
        "fidelity_tier": "HIGH",
        "compliant": true,
        "error_count": 0,
        "mapping_results": [
          {
            "mt_field": ":20: TRN",
            "mx_field": "UETR",
            "mt_present": true,
            "mx_present": true,
            "note": ":20: is the MT reference; pacs.008 requires a new UUIDv4 UETR (not a direct carry-over of :20:)."
          },
          {
            "mt_field": ":50K/A OrderingCustomer",
            "mx_field": "Dbtr/Nm",
            "mt_present": true,
            "mx_present": true,
            "note": ":50K: 4 lines x 35 chars; Dbtr/Nm allows 140 chars. Name truncation risk if MT line contained both name and account on same line."
          },
          {
            "mt_field": ":59/A Beneficiary",
            "mx_field": "Cdtr/Nm",
            "mt_present": true,
            "mx_present": true,
            "note": ":59: 4 lines x 35 chars; Cdtr/Nm max 140 chars. Beneficiary name + address must be split into Nm and PostalAddress24 in pacs.008."
          },
          {
            "mt_field": ":52A OrderingInstitution",
            "mx_field": "DbtrAgt/BICFI",
            "mt_present": true,
            "mx_present": true,
            "note": ":52A BIC carries directly to DbtrAgt/BICFI. Direct 1-to-1 mapping."
          },
          {
            "mt_field": ":57A AccountWithInstitution",
            "mx_field": "CdtrAgt/BICFI",
            "mt_present": true,
            "mx_present": true,
            "note": ":57A BIC carries directly to CdtrAgt/BICFI. Direct 1-to-1 mapping."
          },
          {
            "mt_field": ":70: RemittanceInfo",
            "mx_field": "RmtInf/Ustrd",
            "mt_present": true,
            "mx_present": true,
            "note": ":70: allows 4 lines x 35 chars = 140 chars. RmtInf/Ustrd max 140 chars. Near-identical capacity but line concatenation must not lose data."
          },
          {
            "mt_field": ":71A DetailsOfCharges",
            "mx_field": "ChrgBr",
            "mt_present": true,
            "mx_present": true,
            "note": "OUR->DEBT, SHA->SHAR, BEN->CRED. Direct table mapping."
          }
        ],
        "truncation_risks": [],
        "issues": [],
        "charge_bearer_map": {
          "OUR": "DEBT",
          "SHA": "SHAR",
          "BEN": "CRED"
        },
        "cbpr_plus_deadline": "2026-11-14",
        "pii_note": "MT and pacs.008 field values are processed structurally (presence, length, code mapping). No real party PII processed. Use synthetic message fields for testing.",
        "table_version": "MT103-PACS008-FIELD-MAP-CBPR-V1",
        "table_source": "SWIFT Standards Release Guide MT103 (swift.com/standards); ISO 20022 pacs.008.001.10 message definition (iso20022.org); SWIFT CBPR+ Translation Rules for MT103 to pacs.008 migration",
        "regulatory_basis": "SWIFT CBPR+ mandatory migration deadline 14 Nov 2026; SWIFT MT103 Standards Release Guide; ISO 20022 pacs.008.001.10"
      },
      "golden_hash": "4c78737764485e5a488a8a37fdb442390313ef499efba951fdad4d4c653f3c21"
    },
    {
      "name": "charge_bearer_mapping_error",
      "description": "Only :71A present with OUR (should map to DEBT) but pacs.008 ChrgBr set to SHAR (wrong). Known charge bearer mismatch error.",
      "policy_parameters": {
        "mt_f71a": "OUR",
        "mx_uetr": "550e8400-e29b-41d4-a716-446655440000",
        "mx_chrg_br": "SHAR"
      },
      "output_payload": {
        "fidelity_score": 100,
        "fidelity_tier": "HIGH",
        "compliant": false,
        "error_count": 1,
        "mapping_results": [
          {
            "mt_field": ":20: TRN",
            "mx_field": "UETR",
            "mt_present": false,
            "mx_present": true,
            "note": ":20: is the MT reference; pacs.008 requires a new UUIDv4 UETR (not a direct carry-over of :20:)."
          },
          {
            "mt_field": ":50K/A OrderingCustomer",
            "mx_field": "Dbtr/Nm",
            "mt_present": false,
            "mx_present": false,
            "note": ":50K: 4 lines x 35 chars; Dbtr/Nm allows 140 chars. Name truncation risk if MT line contained both name and account on same line."
          },
          {
            "mt_field": ":59/A Beneficiary",
            "mx_field": "Cdtr/Nm",
            "mt_present": false,
            "mx_present": false,
            "note": ":59: 4 lines x 35 chars; Cdtr/Nm max 140 chars. Beneficiary name + address must be split into Nm and PostalAddress24 in pacs.008."
          },
          {
            "mt_field": ":52A OrderingInstitution",
            "mx_field": "DbtrAgt/BICFI",
            "mt_present": false,
            "mx_present": false,
            "note": ":52A BIC carries directly to DbtrAgt/BICFI. Direct 1-to-1 mapping."
          },
          {
            "mt_field": ":57A AccountWithInstitution",
            "mx_field": "CdtrAgt/BICFI",
            "mt_present": false,
            "mx_present": false,
            "note": ":57A BIC carries directly to CdtrAgt/BICFI. Direct 1-to-1 mapping."
          },
          {
            "mt_field": ":70: RemittanceInfo",
            "mx_field": "RmtInf/Ustrd",
            "mt_present": false,
            "mx_present": false,
            "note": ":70: allows 4 lines x 35 chars = 140 chars. RmtInf/Ustrd max 140 chars. Near-identical capacity but line concatenation must not lose data."
          },
          {
            "mt_field": ":71A DetailsOfCharges",
            "mx_field": "ChrgBr",
            "mt_present": true,
            "mx_present": true,
            "note": "OUR->DEBT, SHA->SHAR, BEN->CRED. Direct table mapping."
          }
        ],
        "truncation_risks": [],
        "issues": [
          {
            "code": "CHARGE_BEARER_MISMATCH",
            "severity": "ERROR",
            "field": "mx_chrg_br",
            "message": "MT :71A \"OUR\" should map to ChrgBr \"DEBT\" but found \"SHAR\"."
          }
        ],
        "charge_bearer_map": {
          "OUR": "DEBT",
          "SHA": "SHAR",
          "BEN": "CRED"
        },
        "cbpr_plus_deadline": "2026-11-14",
        "pii_note": "MT and pacs.008 field values are processed structurally (presence, length, code mapping). No real party PII processed. Use synthetic message fields for testing.",
        "table_version": "MT103-PACS008-FIELD-MAP-CBPR-V1",
        "table_source": "SWIFT Standards Release Guide MT103 (swift.com/standards); ISO 20022 pacs.008.001.10 message definition (iso20022.org); SWIFT CBPR+ Translation Rules for MT103 to pacs.008 migration",
        "regulatory_basis": "SWIFT CBPR+ mandatory migration deadline 14 Nov 2026; SWIFT MT103 Standards Release Guide; ISO 20022 pacs.008.001.10"
      },
      "golden_hash": "3de2b362731ea9a4cb6f7812beaeb9a71473a1066cc80b351d7833a442970885"
    },
    {
      "name": "empty_input_finite",
      "description": "All inputs absent. Verifies finite output (fidelity_score=0, compliant=false) with no NaN/Infinity.",
      "policy_parameters": {},
      "output_payload": {
        "fidelity_score": 0,
        "fidelity_tier": "LOW",
        "compliant": false,
        "error_count": 1,
        "mapping_results": [
          {
            "mt_field": ":20: TRN",
            "mx_field": "UETR",
            "mt_present": false,
            "mx_present": false,
            "note": ":20: is the MT reference; pacs.008 requires a new UUIDv4 UETR (not a direct carry-over of :20:)."
          },
          {
            "mt_field": ":50K/A OrderingCustomer",
            "mx_field": "Dbtr/Nm",
            "mt_present": false,
            "mx_present": false,
            "note": ":50K: 4 lines x 35 chars; Dbtr/Nm allows 140 chars. Name truncation risk if MT line contained both name and account on same line."
          },
          {
            "mt_field": ":59/A Beneficiary",
            "mx_field": "Cdtr/Nm",
            "mt_present": false,
            "mx_present": false,
            "note": ":59: 4 lines x 35 chars; Cdtr/Nm max 140 chars. Beneficiary name + address must be split into Nm and PostalAddress24 in pacs.008."
          },
          {
            "mt_field": ":52A OrderingInstitution",
            "mx_field": "DbtrAgt/BICFI",
            "mt_present": false,
            "mx_present": false,
            "note": ":52A BIC carries directly to DbtrAgt/BICFI. Direct 1-to-1 mapping."
          },
          {
            "mt_field": ":57A AccountWithInstitution",
            "mx_field": "CdtrAgt/BICFI",
            "mt_present": false,
            "mx_present": false,
            "note": ":57A BIC carries directly to CdtrAgt/BICFI. Direct 1-to-1 mapping."
          },
          {
            "mt_field": ":70: RemittanceInfo",
            "mx_field": "RmtInf/Ustrd",
            "mt_present": false,
            "mx_present": false,
            "note": ":70: allows 4 lines x 35 chars = 140 chars. RmtInf/Ustrd max 140 chars. Near-identical capacity but line concatenation must not lose data."
          },
          {
            "mt_field": ":71A DetailsOfCharges",
            "mx_field": "ChrgBr",
            "mt_present": false,
            "mx_present": false,
            "note": "OUR->DEBT, SHA->SHAR, BEN->CRED. Direct table mapping."
          }
        ],
        "truncation_risks": [],
        "issues": [
          {
            "code": "UETR_ABSENT",
            "severity": "ERROR",
            "field": "mx_uetr",
            "message": "UETR absent in pacs.008 output. A new UUIDv4 UETR must be generated for each pacs.008 instruction (GPI mandatory)."
          }
        ],
        "charge_bearer_map": {
          "OUR": "DEBT",
          "SHA": "SHAR",
          "BEN": "CRED"
        },
        "cbpr_plus_deadline": "2026-11-14",
        "pii_note": "MT and pacs.008 field values are processed structurally (presence, length, code mapping). No real party PII processed. Use synthetic message fields for testing.",
        "table_version": "MT103-PACS008-FIELD-MAP-CBPR-V1",
        "table_source": "SWIFT Standards Release Guide MT103 (swift.com/standards); ISO 20022 pacs.008.001.10 message definition (iso20022.org); SWIFT CBPR+ Translation Rules for MT103 to pacs.008 migration",
        "regulatory_basis": "SWIFT CBPR+ mandatory migration deadline 14 Nov 2026; SWIFT MT103 Standards Release Guide; ISO 20022 pacs.008.001.10"
      },
      "golden_hash": "9a5723f7c42fd90f643b358a1949c1b11c68ca13f7a069d1741c9f00c4336fdb"
    }
  ]
}
