{"abstract":"References written with asterisks are reported malformed.","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.","contract_signature":"s","evaluation_group":"w2-check_digit_algorithms-be-structured-communication","failed_approach":"Stripping plus signs from both ends does nothing for the asterisk form.","family":"w2-check_digit_algorithms-be-structured-communication-asterisk-delimiter","id":"FA-72681","implementations":{"attempt":{"sha256":"5f3d871bcb178dad106a8aa81d8f418e0fa409a61e0bdc0a725cf88cc2c37c86","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    t = s.strip()\n    t = t.strip('+')\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 [\"***035/9935/50934***\"]', ['***035/9935/50934***'], True], ['regression [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['control [\"621266857360\"]', ['621266857360'], True], ['control [\"+++865/5789/93879+++\"]', ['+++865/5789/93879+++'], True], ['control [\"371789633519\"]', ['371789633519'], True], ['control [\"+++131/9631/75508+++\"]', ['+++131/9631/75508+++'], True], ['control [\"640618349478\"]', ['640618349478'], True], ['control [\"+++990/8748/13965+++\"]', ['+++990/8748/13965+++'], True]], [['regression [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True], ['regression [\"***090/9337/55493***\"]', ['***090/9337/55493***'], True], ['control [\"+++990/8748/13965+++\"]', ['+++990/8748/13965+++'], True], ['control [\"646994510702\"]', ['646994510702'], True], ['control [\"+++001/1569/26676+++\"]', ['+++001/1569/26676+++'], True], ['control [\"000000009797\"]', ['000000009797'], True], ['control [\"000000009700\"]', ['000000009700'], False], ['control [\"000000019497\"]', ['000000019497'], True]], [['regression [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['regression [\"***930/2019/38809***\"]', ['***930/2019/38809***'], True], ['control [\"000000019497\"]', ['000000019497'], True], ['control [\"000000019400\"]', ['000000019400'], False], ['control [\"123456780211\"]', ['123456780211'], True], ['control [\"123456780200\"]', ['123456780200'], False], ['control [\"999999997019\"]', ['999999997019'], True], ['control [\"999999997000\"]', ['999999997000'], False]], [['regression [\"***090/9337/55493***\"]', ['***090/9337/55493***'], True], ['regression [\"***035/9935/50934***\"]', ['***035/9935/50934***'], True], ['control [\"999999997000\"]', ['999999997000'], False], ['control [\"000000000097\"]', ['000000000097'], True], ['control [\"000000000000\"]', ['000000000000'], False], ['control [\"+++123/4567/89002+++\"]', ['+++123/4567/89002+++'], True], ['control [\"123456789002\"]', ['123456789002'], True], ['control [\"12345678900\"]', ['12345678900'], 'malformed']], [['regression [\"***930/2019/38809***\"]', ['***930/2019/38809***'], True], ['regression [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True], ['control [\"12345678900\"]', ['12345678900'], 'malformed'], ['control [\"+++123/4567/8900A+++\"]', ['+++123/4567/8900A+++'], 'malformed'], ['control [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"123456789003\"]', ['123456789003'], False], ['control [\"621266857360\"]', ['621266857360'], True], ['control [\"+++865/5789/93879+++\"]', ['+++865/5789/93879+++'], 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":"5f1d2c149b47671946bfc06a53cb6c05d5d873cee3a649c3a4ef9e3518f7c379","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] == '+++':\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 [\"***035/9935/50934***\"]', ['***035/9935/50934***'], True], ['regression [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['control [\"621266857360\"]', ['621266857360'], True], ['control [\"+++865/5789/93879+++\"]', ['+++865/5789/93879+++'], True], ['control [\"371789633519\"]', ['371789633519'], True], ['control [\"+++131/9631/75508+++\"]', ['+++131/9631/75508+++'], True], ['control [\"640618349478\"]', ['640618349478'], True], ['control [\"+++990/8748/13965+++\"]', ['+++990/8748/13965+++'], True]], [['regression [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True], ['regression [\"***090/9337/55493***\"]', ['***090/9337/55493***'], True], ['control [\"+++990/8748/13965+++\"]', ['+++990/8748/13965+++'], True], ['control [\"646994510702\"]', ['646994510702'], True], ['control [\"+++001/1569/26676+++\"]', ['+++001/1569/26676+++'], True], ['control [\"000000009797\"]', ['000000009797'], True], ['control [\"000000009700\"]', ['000000009700'], False], ['control [\"000000019497\"]', ['000000019497'], True]], [['regression [\"***078/2001/09694***\"]', ['***078/2001/09694***'], True], ['regression [\"***930/2019/38809***\"]', ['***930/2019/38809***'], True], ['control [\"000000019497\"]', ['000000019497'], True], ['control [\"000000019400\"]', ['000000019400'], False], ['control [\"123456780211\"]', ['123456780211'], True], ['control [\"123456780200\"]', ['123456780200'], False], ['control [\"999999997019\"]', ['999999997019'], True], ['control [\"999999997000\"]', ['999999997000'], False]], [['regression [\"***090/9337/55493***\"]', ['***090/9337/55493***'], True], ['regression [\"***035/9935/50934***\"]', ['***035/9935/50934***'], True], ['control [\"999999997000\"]', ['999999997000'], False], ['control [\"000000000097\"]', ['000000000097'], True], ['control [\"000000000000\"]', ['000000000000'], False], ['control [\"+++123/4567/89002+++\"]', ['+++123/4567/89002+++'], True], ['control [\"123456789002\"]', ['123456789002'], True], ['control [\"12345678900\"]', ['12345678900'], 'malformed']], [['regression [\"***930/2019/38809***\"]', ['***930/2019/38809***'], True], ['regression [\"***178/8225/23467***\"]', ['***178/8225/23467***'], True], ['control [\"12345678900\"]', ['12345678900'], 'malformed'], ['control [\"+++123/4567/8900A+++\"]', ['+++123/4567/8900A+++'], 'malformed'], ['control [\"+++090/9337/55493***\"]', ['+++090/9337/55493***'], 'malformed'], ['control [\"123456789003\"]', ['123456789003'], False], ['control [\"621266857360\"]', ['621266857360'], True], ['control [\"+++865/5789/93879+++\"]', ['+++865/5789/93879+++'], 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-asterisk-delimiter","generated_at":"2026-09-29T14:48:40.652901+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.","root_cause":"Only +++ delimiters are recognised.","sha256":"7fdd3cab2077c26b903a2bc6939c1e988cb2618b97e49ae318fc9a0aba94c339","title":"Structured communication rejects the *** delimiter · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":39.109,"exit_code":1,"observations":[{"actual":"malformed","check":"regression [\"***035/9935/50934***\"]","expected":true,"passed":false},{"actual":"malformed","check":"regression [\"***078/2001/09694***\"]","expected":true,"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 [\"371789633519\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++131/9631/75508+++\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"640618349478\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++990/8748/13965+++\"]","expected":true,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"***035/9935/50934***\\\"]\", \"actual\": \"malformed\", \"expected\": true, \"passed\": false}, {\"check\": \"regression [\\\"***078/2001/09694***\\\"]\", \"actual\": \"malformed\", \"expected\": true, \"passed\": false}, {\"check\": \"control [\\\"621266857360\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++865/5789/93879+++\\\"]\", \"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 [\\\"640618349478\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++990/8748/13965+++\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.871,"exit_code":1,"observations":[{"actual":"malformed","check":"regression [\"***035/9935/50934***\"]","expected":true,"passed":false},{"actual":"malformed","check":"regression [\"***078/2001/09694***\"]","expected":true,"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 [\"371789633519\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++131/9631/75508+++\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"640618349478\"]","expected":true,"passed":true},{"actual":true,"check":"control [\"+++990/8748/13965+++\"]","expected":true,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"***035/9935/50934***\\\"]\", \"actual\": \"malformed\", \"expected\": true, \"passed\": false}, {\"check\": \"regression [\\\"***078/2001/09694***\\\"]\", \"actual\": \"malformed\", \"expected\": true, \"passed\": false}, {\"check\": \"control [\\\"621266857360\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++865/5789/93879+++\\\"]\", \"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 [\\\"640618349478\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"control [\\\"+++990/8748/13965+++\\\"]\", \"actual\": true, \"expected\": true, \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}