{"abstract":"A reference opened with +++ and closed with *** is accepted.","category":"Check-digit algorithms","checks":8,"contract":"Belgian structured payment communication: optional surrounding +++...+++ or ***...*** (matching), slashes ignored, then exactly 12 ASCII digits (else \"malformed\"). The last two digits must equal the first ten digits mod 97, where a remainder of 0 is written 97. Return whether they match.","evaluation_group":"w2-check_digit_algorithms-be-structured-communication","failed_approach":"Requiring only that both ends are delimiter characters still mixes the forms.","family":"w2-check_digit_algorithms-be-structured-communication-delimiter-pairing","id":"FA-72686","implementations":{"attempt":{"sha256":"49e0def2400d5649caf17e8b056e7205771d0721dcef54835400ac71aa291a42","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    t = s.strip()\n    if len(t) > 6 and t[:3] in ('+++', '***') and t[-3:] in ('+++', '***'):\n        t = t[3:-3]\n    t = t.replace('/', '')\n    if len(t) != 12 or not t.isascii() or not t.isdigit():\n        return 'malformed'\n    r = int(t[:10]) % 97\n    if r == 0:\n        r = 97\n    return r == int(t[10:])\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"621266857360\"]', ['621266857360'], True], ['control [\"+++865/5789/93879+++\"]', ['+++865/5789/93879+++'], True], ['control [\"***035/9935/50934***\"]', ['***035/9935/50934***'], True], ['control [\"371789633519\"]', ['371789633519'], True], ['control [\"+++131/9631/75508+++\"]', ['+++131/9631/75508+++'], True], ['control [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['control [\"640618349478\"]', ['640618349478'], True]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['control [\"640618349478\"]', ['640618349478'], True], ['control [\"+++990/8748/13965+++\"]', ['+++990/8748/13965+++'], True], ['control [\"***930/2019/38809***\"]', ['***930/2019/38809***'], True], ['control [\"646994510702\"]', ['646994510702'], True], ['control [\"+++001/1569/26676+++\"]', ['+++001/1569/26676+++'], True], ['control [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"+++001/1569/26676+++\"]', ['+++001/1569/26676+++'], True], ['control [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True], ['control [\"000000009797\"]', ['000000009797'], True], ['control [\"000000009700\"]', ['000000009700'], False], ['control [\"000000019497\"]', ['000000019497'], True], ['control [\"000000019400\"]', ['000000019400'], False], ['control [\"123456780211\"]', ['123456780211'], True]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"000000019400\"]', ['000000019400'], False], ['control [\"123456780211\"]', ['123456780211'], True], ['control [\"123456780200\"]', ['123456780200'], False], ['control [\"999999997019\"]', ['999999997019'], True], ['control [\"999999997000\"]', ['999999997000'], False], ['control [\"000000000097\"]', ['000000000097'], True], ['control [\"000000000000\"]', ['000000000000'], False]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"000000000097\"]', ['000000000097'], True], ['control [\"000000000000\"]', ['000000000000'], False], ['control [\"+++123/4567/89002+++\"]', ['+++123/4567/89002+++'], True], ['control [\"123456789002\"]', ['123456789002'], True], ['control [\"12345678900\"]', ['12345678900'], 'malformed'], ['control [\"+++123/4567/8900A+++\"]', ['+++123/4567/8900A+++'], 'malformed'], ['control [\"***090/9337/55493***\"]', ['***090/9337/55493***'], True]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"2ba339b8060e6cef45020dbb6aa03190354917b70ccc64055fa533c9cc53842e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    t = s.strip()\n    if len(t) > 6 and t[:3] in ('+++', '***'):\n        t = t[3:-3]\n    t = t.replace('/', '')\n    if len(t) != 12 or not t.isascii() or not t.isdigit():\n        return 'malformed'\n    r = int(t[:10]) % 97\n    if r == 0:\n        r = 97\n    return r == int(t[10:])\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"621266857360\"]', ['621266857360'], True], ['control [\"+++865/5789/93879+++\"]', ['+++865/5789/93879+++'], True], ['control [\"***035/9935/50934***\"]', ['***035/9935/50934***'], True], ['control [\"371789633519\"]', ['371789633519'], True], ['control [\"+++131/9631/75508+++\"]', ['+++131/9631/75508+++'], True], ['control [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['control [\"640618349478\"]', ['640618349478'], True]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['control [\"640618349478\"]', ['640618349478'], True], ['control [\"+++990/8748/13965+++\"]', ['+++990/8748/13965+++'], True], ['control [\"***930/2019/38809***\"]', ['***930/2019/38809***'], True], ['control [\"646994510702\"]', ['646994510702'], True], ['control [\"+++001/1569/26676+++\"]', ['+++001/1569/26676+++'], True], ['control [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"+++001/1569/26676+++\"]', ['+++001/1569/26676+++'], True], ['control [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True], ['control [\"000000009797\"]', ['000000009797'], True], ['control [\"000000009700\"]', ['000000009700'], False], ['control [\"000000019497\"]', ['000000019497'], True], ['control [\"000000019400\"]', ['000000019400'], False], ['control [\"123456780211\"]', ['123456780211'], True]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"000000019400\"]', ['000000019400'], False], ['control [\"123456780211\"]', ['123456780211'], True], ['control [\"123456780200\"]', ['123456780200'], False], ['control [\"999999997019\"]', ['999999997019'], True], ['control [\"999999997000\"]', ['999999997000'], False], ['control [\"000000000097\"]', ['000000000097'], True], ['control [\"000000000000\"]', ['000000000000'], False]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"000000000097\"]', ['000000000097'], True], ['control [\"000000000000\"]', ['000000000000'], False], ['control [\"+++123/4567/89002+++\"]', ['+++123/4567/89002+++'], True], ['control [\"123456789002\"]', ['123456789002'], True], ['control [\"12345678900\"]', ['12345678900'], 'malformed'], ['control [\"+++123/4567/8900A+++\"]', ['+++123/4567/8900A+++'], 'malformed'], ['control [\"***090/9337/55493***\"]', ['***090/9337/55493***'], True]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"cf22a06f19ea89e893e2b91dbac9d7cae0400761e2aefeab3581bcbcc578dc2f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    t = s.strip()\n    if len(t) > 6 and t[:3] == t[-3:] and t[:3] in ('+++', '***'):\n        t = t[3:-3]\n    t = t.replace('/', '')\n    if len(t) != 12 or not t.isascii() or not t.isdigit():\n        return 'malformed'\n    r = int(t[:10]) % 97\n    if r == 0:\n        r = 97\n    return r == int(t[10:])\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"621266857360\"]', ['621266857360'], True], ['control [\"+++865/5789/93879+++\"]', ['+++865/5789/93879+++'], True], ['control [\"***035/9935/50934***\"]', ['***035/9935/50934***'], True], ['control [\"371789633519\"]', ['371789633519'], True], ['control [\"+++131/9631/75508+++\"]', ['+++131/9631/75508+++'], True], ['control [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['control [\"640618349478\"]', ['640618349478'], True]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['control [\"640618349478\"]', ['640618349478'], True], ['control [\"+++990/8748/13965+++\"]', ['+++990/8748/13965+++'], True], ['control [\"***930/2019/38809***\"]', ['***930/2019/38809***'], True], ['control [\"646994510702\"]', ['646994510702'], True], ['control [\"+++001/1569/26676+++\"]', ['+++001/1569/26676+++'], True], ['control [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"+++001/1569/26676+++\"]', ['+++001/1569/26676+++'], True], ['control [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True], ['control [\"000000009797\"]', ['000000009797'], True], ['control [\"000000009700\"]', ['000000009700'], False], ['control [\"000000019497\"]', ['000000019497'], True], ['control [\"000000019400\"]', ['000000019400'], False], ['control [\"123456780211\"]', ['123456780211'], True]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"000000019400\"]', ['000000019400'], False], ['control [\"123456780211\"]', ['123456780211'], True], ['control [\"123456780200\"]', ['123456780200'], False], ['control [\"999999997019\"]', ['999999997019'], True], ['control [\"999999997000\"]', ['999999997000'], False], ['control [\"000000000097\"]', ['000000000097'], True], ['control [\"000000000000\"]', ['000000000000'], False]], [['regression [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"000000000097\"]', ['000000000097'], True], ['control [\"000000000000\"]', ['000000000000'], False], ['control [\"+++123/4567/89002+++\"]', ['+++123/4567/89002+++'], True], ['control [\"123456789002\"]', ['123456789002'], True], ['control [\"12345678900\"]', ['12345678900'], 'malformed'], ['control [\"+++123/4567/8900A+++\"]', ['+++123/4567/8900A+++'], 'malformed'], ['control [\"***090/9337/55493***\"]', ['***090/9337/55493***'], True]]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic, bounded teaching model of the named scheme under the stated contract; not a certified validator. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-check_digit_algorithms-be-structured-communication-delimiter-pairing","generated_at":"2026-09-29T14:48:40.723033+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Banks reconcile incoming transfers by validating the structured reference before matching invoices.","repair":"Strip delimiters only when the first three and last three characters are the same delimiter.","root_cause":"The delimiters are stripped without requiring the opening and closing forms to match.","sha256":"1b2b5d676d0f1a02c080dfa7340868e61bac2827e06047d4dad0454177531533","title":"Structured communication accepts mismatched delimiters · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.747,"exit_code":1,"observations":[{"actual":true,"check":"regression [\"+++090/9337/55493***\"]","expected":"malformed","passed":false},{"actual":true,"check":"control [\"621266857360\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++865/5789/93879+++\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"***035/9935/50934***\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"371789633519\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++131/9631/75508+++\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"***078/2001/09694***\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"640618349478\"]","expected":true,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"+++090/9337/55493***\\\"]\", \"actual\": true, \"expected\": \"malformed\", \"passed\": false}, {\"check\": \"control [\\\"621266857360\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++865/5789/93879+++\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"***035/9935/50934***\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"371789633519\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++131/9631/75508+++\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"***078/2001/09694***\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"640618349478\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.382,"exit_code":1,"observations":[{"actual":true,"check":"regression [\"+++090/9337/55493***\"]","expected":"malformed","passed":false},{"actual":true,"check":"control [\"621266857360\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++865/5789/93879+++\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"***035/9935/50934***\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"371789633519\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++131/9631/75508+++\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"***078/2001/09694***\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"640618349478\"]","expected":true,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"+++090/9337/55493***\\\"]\", \"actual\": true, \"expected\": \"malformed\", \"passed\": false}, {\"check\": \"control [\\\"621266857360\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++865/5789/93879+++\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"***035/9935/50934***\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"371789633519\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++131/9631/75508+++\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"***078/2001/09694***\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"640618349478\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":36.972,"exit_code":0,"observations":[{"actual":"malformed","check":"regression [\"+++090/9337/55493***\"]","expected":"malformed","passed":true},{"actual":true,"check":"control [\"621266857360\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++865/5789/93879+++\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"***035/9935/50934***\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"371789633519\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++131/9631/75508+++\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"***078/2001/09694***\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"640618349478\"]","expected":true,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"+++090/9337/55493***\\\"]\", \"actual\": \"malformed\", \"expected\": \"malformed\", \"passed\": true}, {\"check\": \"control [\\\"621266857360\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++865/5789/93879+++\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"***035/9935/50934***\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"371789633519\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++131/9631/75508+++\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"***078/2001/09694***\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"640618349478\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}