{"abstract":"Slips longer than six digits receive the wrong verifying digit.","category":"Check-digit algorithms","checks":8,"contract":"Bank-slip style mod-11 verifying digit: nonempty ASCII digits (else None); weights 2,3,...,9 cycle from the rightmost digit; r = 11 - sum mod 11; results 10 and 11 are replaced by 1.","contract_signature":"s","evaluation_group":"w2-check_digit_algorithms-boleto-mod11","failed_approach":"Cycling through 2..10 keeps one weight too many.","family":"w2-check_digit_algorithms-boleto-mod11-weight-cycle-length","id":"FA-72811","implementations":{"attempt":{"sha256":"afb59a7151990f786be70c8d27af2d415e3e58ea6750a6c702cef76d14094bb0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    if not s or not s.isascii() or not s.isdigit():\n        return None\n    total = 0\n    for i, ch in enumerate(reversed(s)):\n        total += int(ch) * (2 + i % 9)\n    r = 11 - total % 11\n    return 1 if r in (10, 11) else r\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"067817050276532142767980812420339104011\"]', ['067817050276532142767980812420339104011'], 1], ['regression [\"81787654\"]', ['81787654'], 5], ['partial-repair [\"19275955179485910051680234501004684803\"]', ['19275955179485910051680234501004684803'], 1], ['partial-repair [\"4216186312776190006424731500839778176090\"]', ['4216186312776190006424731500839778176090'], 9], ['control [\"20974\"]', ['20974'], 1], ['control [\"54\"]', ['54'], 1], ['control [\"0\"]', ['0'], 1], ['control [\"1\"]', ['1'], 9]], [['regression [\"0154413110088423\"]', ['0154413110088423'], 4], ['regression [\"2265387292381697\"]', ['2265387292381697'], 4], ['partial-repair [\"157141363073674774805\"]', ['157141363073674774805'], 2], ['control [\"12x\"]', ['12x'], None], ['control [\"00000000\"]', ['00000000'], 1], ['control [\"20974\"]', ['20974'], 1], ['control [\"54\"]', ['54'], 1], ['control [\"0\"]', ['0'], 1]], [['regression [\"32390980174642183951992567\"]', ['32390980174642183951992567'], 6], ['regression [\"883588303\"]', ['883588303'], 1], ['partial-repair [\"31028572572652095\"]', ['31028572572652095'], 8], ['control [\"1\"]', ['1'], 9], ['control [\"\"]', [''], None], ['control [\"12x\"]', ['12x'], None], ['control [\"00000000\"]', ['00000000'], 1], ['control [\"20974\"]', ['20974'], 1]], [['regression [\"1013803677685407598527336083735651\"]', ['1013803677685407598527336083735651'], 1], ['regression [\"90636853841379\"]', ['90636853841379'], 8], ['partial-repair [\"541856920526325212396079880824962283\"]', ['541856920526325212396079880824962283'], 9], ['control [\"54\"]', ['54'], 1], ['control [\"0\"]', ['0'], 1], ['control [\"1\"]', ['1'], 9], ['control [\"\"]', [''], None], ['control [\"12x\"]', ['12x'], None]], [['regression [\"866534787261435696309320\"]', ['866534787261435696309320'], 1], ['regression [\"59608070035358359099925603574938148494060\"]', ['59608070035358359099925603574938148494060'], 2], ['control [\"00000000\"]', ['00000000'], 1], ['control [\"20974\"]', ['20974'], 1], ['control [\"54\"]', ['54'], 1], ['control [\"0\"]', ['0'], 1], ['control [\"1\"]', ['1'], 9], ['control [\"\"]', [''], None]]]\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":"26f69480d48422fbd5e8dfc98b9f3f37f2e69539564c81bfb1892c0e42ec94fa","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(s):\n    if not s or not s.isascii() or not s.isdigit():\n        return None\n    total = 0\n    for i, ch in enumerate(reversed(s)):\n        total += int(ch) * (2 + i % 6)\n    r = 11 - total % 11\n    return 1 if r in (10, 11) else r\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression [\"067817050276532142767980812420339104011\"]', ['067817050276532142767980812420339104011'], 1], ['regression [\"81787654\"]', ['81787654'], 5], ['partial-repair [\"19275955179485910051680234501004684803\"]', ['19275955179485910051680234501004684803'], 1], ['partial-repair [\"4216186312776190006424731500839778176090\"]', ['4216186312776190006424731500839778176090'], 9], ['control [\"20974\"]', ['20974'], 1], ['control [\"54\"]', ['54'], 1], ['control [\"0\"]', ['0'], 1], ['control [\"1\"]', ['1'], 9]], [['regression [\"0154413110088423\"]', ['0154413110088423'], 4], ['regression [\"2265387292381697\"]', ['2265387292381697'], 4], ['partial-repair [\"157141363073674774805\"]', ['157141363073674774805'], 2], ['control [\"12x\"]', ['12x'], None], ['control [\"00000000\"]', ['00000000'], 1], ['control [\"20974\"]', ['20974'], 1], ['control [\"54\"]', ['54'], 1], ['control [\"0\"]', ['0'], 1]], [['regression [\"32390980174642183951992567\"]', ['32390980174642183951992567'], 6], ['regression [\"883588303\"]', ['883588303'], 1], ['partial-repair [\"31028572572652095\"]', ['31028572572652095'], 8], ['control [\"1\"]', ['1'], 9], ['control [\"\"]', [''], None], ['control [\"12x\"]', ['12x'], None], ['control [\"00000000\"]', ['00000000'], 1], ['control [\"20974\"]', ['20974'], 1]], [['regression [\"1013803677685407598527336083735651\"]', ['1013803677685407598527336083735651'], 1], ['regression [\"90636853841379\"]', ['90636853841379'], 8], ['partial-repair [\"541856920526325212396079880824962283\"]', ['541856920526325212396079880824962283'], 9], ['control [\"54\"]', ['54'], 1], ['control [\"0\"]', ['0'], 1], ['control [\"1\"]', ['1'], 9], ['control [\"\"]', [''], None], ['control [\"12x\"]', ['12x'], None]], [['regression [\"866534787261435696309320\"]', ['866534787261435696309320'], 1], ['regression [\"59608070035358359099925603574938148494060\"]', ['59608070035358359099925603574938148494060'], 2], ['control [\"00000000\"]', ['00000000'], 1], ['control [\"20974\"]', ['20974'], 1], ['control [\"54\"]', ['54'], 1], ['control [\"0\"]', ['0'], 1], ['control [\"1\"]', ['1'], 9], ['control [\"\"]', [''], None]]]\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-boleto-mod11-weight-cycle-length","generated_at":"2026-09-29T14:48:41.791460+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Payment slip barcodes carry a general verifying digit that banks recompute on capture.","root_cause":"The weights wrap after 7 (2 + i % 6), the cycle used by other mod-11 schemes.","sha256":"607a9421a348380d3368c1c3acb0d18c8e5b08dc1e97b4caeddffd53affe1ca1","title":"Bank-slip mod 11 cycles weights 2 to 7 · 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":37.456,"exit_code":1,"observations":[{"actual":1,"check":"regression [\"067817050276532142767980812420339104011\"]","expected":1,"passed":true},{"actual":5,"check":"regression [\"81787654\"]","expected":5,"passed":true},{"actual":6,"check":"partial-repair [\"19275955179485910051680234501004684803\"]","expected":1,"passed":false},{"actual":1,"check":"partial-repair [\"4216186312776190006424731500839778176090\"]","expected":9,"passed":false},{"actual":1,"check":"control [\"20974\"]","expected":1,"passed":true},{"actual":1,"check":"control [\"54\"]","expected":1,"passed":true},{"actual":1,"check":"control [\"0\"]","expected":1,"passed":true},{"actual":9,"check":"control [\"1\"]","expected":9,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"067817050276532142767980812420339104011\\\"]\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"regression [\\\"81787654\\\"]\", \"actual\": 5, \"expected\": 5, \"passed\": true}, {\"check\": \"partial-repair [\\\"19275955179485910051680234501004684803\\\"]\", \"actual\": 6, \"expected\": 1, \"passed\": false}, {\"check\": \"partial-repair [\\\"4216186312776190006424731500839778176090\\\"]\", \"actual\": 1, \"expected\": 9, \"passed\": false}, {\"check\": \"control [\\\"20974\\\"]\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"control [\\\"54\\\"]\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"control [\\\"0\\\"]\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"control [\\\"1\\\"]\", \"actual\": 9, \"expected\": 9, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.489,"exit_code":1,"observations":[{"actual":2,"check":"regression [\"067817050276532142767980812420339104011\"]","expected":1,"passed":false},{"actual":4,"check":"regression [\"81787654\"]","expected":5,"passed":false},{"actual":1,"check":"partial-repair [\"19275955179485910051680234501004684803\"]","expected":1,"passed":true},{"actual":7,"check":"partial-repair [\"4216186312776190006424731500839778176090\"]","expected":9,"passed":false},{"actual":1,"check":"control [\"20974\"]","expected":1,"passed":true},{"actual":1,"check":"control [\"54\"]","expected":1,"passed":true},{"actual":1,"check":"control [\"0\"]","expected":1,"passed":true},{"actual":9,"check":"control [\"1\"]","expected":9,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression [\\\"067817050276532142767980812420339104011\\\"]\", \"actual\": 2, \"expected\": 1, \"passed\": false}, {\"check\": \"regression [\\\"81787654\\\"]\", \"actual\": 4, \"expected\": 5, \"passed\": false}, {\"check\": \"partial-repair [\\\"19275955179485910051680234501004684803\\\"]\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"partial-repair [\\\"4216186312776190006424731500839778176090\\\"]\", \"actual\": 7, \"expected\": 9, \"passed\": false}, {\"check\": \"control [\\\"20974\\\"]\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"control [\\\"54\\\"]\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"control [\\\"0\\\"]\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"control [\\\"1\\\"]\", \"actual\": 9, \"expected\": 9, \"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."}}