{"abstract":"A house present on both sides of bad data is assigned to the right.","category":"Postal address normalization","checks":8,"contract":"Input [house, segment] where the segment maps \"left\"/\"right\" to [from, to] house ranges (either direction, both ends sharing parity). Check left, then right: a side matches when the house lies between the ends inclusive and has the parity of \"from\". Return [side, position] with position the reduced fraction (house - from) / (to - from) as a string, \"0\" for a single-address range, or None when no side matches.","evaluation_group":"w2-postal-address-normalization-range-side","failed_approach":"Iterating the segment in its stored key order follows whatever order the data used.","family":"w2-postal-address-normalization-range-side-side-precedence","id":"FA-96221","implementations":{"attempt":{"sha256":"87f0f25279ca298ed236fe71b47f6ef93ba849643a60e975b7470905711fbfd5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    house, seg = x\n    for side in seg:\n        lo_hi = seg.get(side)\n        if not lo_hi:\n            continue\n        a, b = lo_hi\n        if min(a, b) <= house <= max(a, b) and house % 2 == a % 2:\n            if a == b:\n                return [side, '0']\n            return [side, str(Fraction(house - a, b - a))]\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['odd house on odd left side', [103, {'left': [101, 199], 'right': [100, 198]}], ['left', '1/49']], ['even house on even right side', [152, {'left': [101, 199], 'right': [100, 198]}], ['right', '26/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [296, {'left': [298, 200], 'right': [299, 201]}], ['left', '1/49']], ['single-address range', [17, {'left': [17, 17], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [122, {'left': [100, 198], 'right': [101, 199]}], ['left', '11/49']], ['outside both ranges', [501, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [105, {'left': [101, 199], 'right': [100, 198]}], ['left', '2/49']], ['even house on even right side', [154, {'left': [101, 199], 'right': [100, 198]}], ['right', '27/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [294, {'left': [298, 200], 'right': [299, 201]}], ['left', '2/49']], ['single-address range', [19, {'left': [19, 19], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [124, {'left': [100, 198], 'right': [101, 199]}], ['left', '12/49']], ['outside both ranges', [502, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [107, {'left': [101, 199], 'right': [100, 198]}], ['left', '3/49']], ['even house on even right side', [156, {'left': [101, 199], 'right': [100, 198]}], ['right', '4/7']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [292, {'left': [298, 200], 'right': [299, 201]}], ['left', '3/49']], ['single-address range', [21, {'left': [21, 21], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [126, {'left': [100, 198], 'right': [101, 199]}], ['left', '13/49']], ['outside both ranges', [503, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [109, {'left': [101, 199], 'right': [100, 198]}], ['left', '4/49']], ['even house on even right side', [158, {'left': [101, 199], 'right': [100, 198]}], ['right', '29/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [290, {'left': [298, 200], 'right': [299, 201]}], ['left', '4/49']], ['single-address range', [23, {'left': [23, 23], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [128, {'left': [100, 198], 'right': [101, 199]}], ['left', '2/7']], ['outside both ranges', [504, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [111, {'left': [101, 199], 'right': [100, 198]}], ['left', '5/49']], ['even house on even right side', [160, {'left': [101, 199], 'right': [100, 198]}], ['right', '30/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [288, {'left': [298, 200], 'right': [299, 201]}], ['left', '5/49']], ['single-address range', [25, {'left': [25, 25], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [130, {'left': [100, 198], 'right': [101, 199]}], ['left', '15/49']], ['outside both ranges', [505, {'left': [101, 199], 'right': [100, 198]}], None]]]\nfor label, arg, expected in fixtures[N - 1]:\n    check(label, solve(arg), 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":"b8abbef6eead221f286da29d3c431410746ee26da19a8c2a137194f86583556e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    house, seg = x\n    for side in ('right', 'left'):\n        lo_hi = seg.get(side)\n        if not lo_hi:\n            continue\n        a, b = lo_hi\n        if min(a, b) <= house <= max(a, b) and house % 2 == a % 2:\n            if a == b:\n                return [side, '0']\n            return [side, str(Fraction(house - a, b - a))]\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['odd house on odd left side', [103, {'left': [101, 199], 'right': [100, 198]}], ['left', '1/49']], ['even house on even right side', [152, {'left': [101, 199], 'right': [100, 198]}], ['right', '26/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [296, {'left': [298, 200], 'right': [299, 201]}], ['left', '1/49']], ['single-address range', [17, {'left': [17, 17], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [122, {'left': [100, 198], 'right': [101, 199]}], ['left', '11/49']], ['outside both ranges', [501, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [105, {'left': [101, 199], 'right': [100, 198]}], ['left', '2/49']], ['even house on even right side', [154, {'left': [101, 199], 'right': [100, 198]}], ['right', '27/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [294, {'left': [298, 200], 'right': [299, 201]}], ['left', '2/49']], ['single-address range', [19, {'left': [19, 19], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [124, {'left': [100, 198], 'right': [101, 199]}], ['left', '12/49']], ['outside both ranges', [502, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [107, {'left': [101, 199], 'right': [100, 198]}], ['left', '3/49']], ['even house on even right side', [156, {'left': [101, 199], 'right': [100, 198]}], ['right', '4/7']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [292, {'left': [298, 200], 'right': [299, 201]}], ['left', '3/49']], ['single-address range', [21, {'left': [21, 21], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [126, {'left': [100, 198], 'right': [101, 199]}], ['left', '13/49']], ['outside both ranges', [503, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [109, {'left': [101, 199], 'right': [100, 198]}], ['left', '4/49']], ['even house on even right side', [158, {'left': [101, 199], 'right': [100, 198]}], ['right', '29/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [290, {'left': [298, 200], 'right': [299, 201]}], ['left', '4/49']], ['single-address range', [23, {'left': [23, 23], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [128, {'left': [100, 198], 'right': [101, 199]}], ['left', '2/7']], ['outside both ranges', [504, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [111, {'left': [101, 199], 'right': [100, 198]}], ['left', '5/49']], ['even house on even right side', [160, {'left': [101, 199], 'right': [100, 198]}], ['right', '30/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [288, {'left': [298, 200], 'right': [299, 201]}], ['left', '5/49']], ['single-address range', [25, {'left': [25, 25], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [130, {'left': [100, 198], 'right': [101, 199]}], ['left', '15/49']], ['outside both ranges', [505, {'left': [101, 199], 'right': [100, 198]}], None]]]\nfor label, arg, expected in fixtures[N - 1]:\n    check(label, solve(arg), 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":"c89a7ee23cf20a0eb58c6d40c40f23df4bafe8fb429196f33208107e1b323637","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    house, seg = x\n    for side in ('left', 'right'):\n        lo_hi = seg.get(side)\n        if not lo_hi:\n            continue\n        a, b = lo_hi\n        if min(a, b) <= house <= max(a, b) and house % 2 == a % 2:\n            if a == b:\n                return [side, '0']\n            return [side, str(Fraction(house - a, b - a))]\n    return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['odd house on odd left side', [103, {'left': [101, 199], 'right': [100, 198]}], ['left', '1/49']], ['even house on even right side', [152, {'left': [101, 199], 'right': [100, 198]}], ['right', '26/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [296, {'left': [298, 200], 'right': [299, 201]}], ['left', '1/49']], ['single-address range', [17, {'left': [17, 17], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [122, {'left': [100, 198], 'right': [101, 199]}], ['left', '11/49']], ['outside both ranges', [501, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [105, {'left': [101, 199], 'right': [100, 198]}], ['left', '2/49']], ['even house on even right side', [154, {'left': [101, 199], 'right': [100, 198]}], ['right', '27/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [294, {'left': [298, 200], 'right': [299, 201]}], ['left', '2/49']], ['single-address range', [19, {'left': [19, 19], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [124, {'left': [100, 198], 'right': [101, 199]}], ['left', '12/49']], ['outside both ranges', [502, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [107, {'left': [101, 199], 'right': [100, 198]}], ['left', '3/49']], ['even house on even right side', [156, {'left': [101, 199], 'right': [100, 198]}], ['right', '4/7']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [292, {'left': [298, 200], 'right': [299, 201]}], ['left', '3/49']], ['single-address range', [21, {'left': [21, 21], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [126, {'left': [100, 198], 'right': [101, 199]}], ['left', '13/49']], ['outside both ranges', [503, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [109, {'left': [101, 199], 'right': [100, 198]}], ['left', '4/49']], ['even house on even right side', [158, {'left': [101, 199], 'right': [100, 198]}], ['right', '29/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [290, {'left': [298, 200], 'right': [299, 201]}], ['left', '4/49']], ['single-address range', [23, {'left': [23, 23], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [128, {'left': [100, 198], 'right': [101, 199]}], ['left', '2/7']], ['outside both ranges', [504, {'left': [101, 199], 'right': [100, 198]}], None]], [['odd house on odd left side', [111, {'left': [101, 199], 'right': [100, 198]}], ['left', '5/49']], ['even house on even right side', [160, {'left': [101, 199], 'right': [100, 198]}], ['right', '30/49']], ['range end is inclusive', [199, {'left': [101, 199], 'right': [100, 198]}], ['left', '1']], ['descending range', [288, {'left': [298, 200], 'right': [299, 201]}], ['left', '5/49']], ['single-address range', [25, {'left': [25, 25], 'right': [16, 16]}], ['left', '0']], ['conflicting sides resolve to left', [5, {'right': [1, 9], 'left': [1, 9]}], ['left', '1/2']], ['even left side', [130, {'left': [100, 198], 'right': [101, 199]}], ['left', '15/49']], ['outside both ranges', [505, {'left': [101, 199], 'right': [100, 198]}], None]]]\nfor label, arg, expected in fixtures[N - 1]:\n    check(label, solve(arg), 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 toy contract over synthetic, obviously fictitious addresses. The rules are stipulated for this model only and make no claim of conformance with any postal authority standard. 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-postal-address-normalization-range-side-side-precedence","generated_at":"2026-09-29T14:52:20.781604+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Assigning a normalized address to the correct block face and position drives geocoding and carrier walk order.","repair":"Examine left before right.","root_cause":"Sides are examined right first.","sha256":"349c4cff7394bf88bb5b7334ae91b4d18449c7b54dc2ce4473d97cdc416de692","title":"Block range side assignment: right side wins a conflicting segment · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.177,"exit_code":1,"observations":[{"actual":["left","1/49"],"check":"odd house on odd left side","expected":["left","1/49"],"passed":true},{"actual":["right","26/49"],"check":"even house on even right side","expected":["right","26/49"],"passed":true},{"actual":["left","1"],"check":"range end is inclusive","expected":["left","1"],"passed":true},{"actual":["left","1/49"],"check":"descending range","expected":["left","1/49"],"passed":true},{"actual":["left","0"],"check":"single-address range","expected":["left","0"],"passed":true},{"actual":["right","1/2"],"check":"conflicting sides resolve to left","expected":["left","1/2"],"passed":false},{"actual":["left","11/49"],"check":"even left side","expected":["left","11/49"],"passed":true},{"actual":null,"check":"outside both ranges","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"odd house on odd left side\", \"actual\": [\"left\", \"1/49\"], \"expected\": [\"left\", \"1/49\"], \"passed\": true}, {\"check\": \"even house on even right side\", \"actual\": [\"right\", \"26/49\"], \"expected\": [\"right\", \"26/49\"], \"passed\": true}, {\"check\": \"range end is inclusive\", \"actual\": [\"left\", \"1\"], \"expected\": [\"left\", \"1\"], \"passed\": true}, {\"check\": \"descending range\", \"actual\": [\"left\", \"1/49\"], \"expected\": [\"left\", \"1/49\"], \"passed\": true}, {\"check\": \"single-address range\", \"actual\": [\"left\", \"0\"], \"expected\": [\"left\", \"0\"], \"passed\": true}, {\"check\": \"conflicting sides resolve to left\", \"actual\": [\"right\", \"1/2\"], \"expected\": [\"left\", \"1/2\"], \"passed\": false}, {\"check\": \"even left side\", \"actual\": [\"left\", \"11/49\"], \"expected\": [\"left\", \"11/49\"], \"passed\": true}, {\"check\": \"outside both ranges\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":47.47,"exit_code":1,"observations":[{"actual":["left","1/49"],"check":"odd house on odd left side","expected":["left","1/49"],"passed":true},{"actual":["right","26/49"],"check":"even house on even right side","expected":["right","26/49"],"passed":true},{"actual":["left","1"],"check":"range end is inclusive","expected":["left","1"],"passed":true},{"actual":["left","1/49"],"check":"descending range","expected":["left","1/49"],"passed":true},{"actual":["left","0"],"check":"single-address range","expected":["left","0"],"passed":true},{"actual":["right","1/2"],"check":"conflicting sides resolve to left","expected":["left","1/2"],"passed":false},{"actual":["left","11/49"],"check":"even left side","expected":["left","11/49"],"passed":true},{"actual":null,"check":"outside both ranges","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"odd house on odd left side\", \"actual\": [\"left\", \"1/49\"], \"expected\": [\"left\", \"1/49\"], \"passed\": true}, {\"check\": \"even house on even right side\", \"actual\": [\"right\", \"26/49\"], \"expected\": [\"right\", \"26/49\"], \"passed\": true}, {\"check\": \"range end is inclusive\", \"actual\": [\"left\", \"1\"], \"expected\": [\"left\", \"1\"], \"passed\": true}, {\"check\": \"descending range\", \"actual\": [\"left\", \"1/49\"], \"expected\": [\"left\", \"1/49\"], \"passed\": true}, {\"check\": \"single-address range\", \"actual\": [\"left\", \"0\"], \"expected\": [\"left\", \"0\"], \"passed\": true}, {\"check\": \"conflicting sides resolve to left\", \"actual\": [\"right\", \"1/2\"], \"expected\": [\"left\", \"1/2\"], \"passed\": false}, {\"check\": \"even left side\", \"actual\": [\"left\", \"11/49\"], \"expected\": [\"left\", \"11/49\"], \"passed\": true}, {\"check\": \"outside both ranges\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.571,"exit_code":0,"observations":[{"actual":["left","1/49"],"check":"odd house on odd left side","expected":["left","1/49"],"passed":true},{"actual":["right","26/49"],"check":"even house on even right side","expected":["right","26/49"],"passed":true},{"actual":["left","1"],"check":"range end is inclusive","expected":["left","1"],"passed":true},{"actual":["left","1/49"],"check":"descending range","expected":["left","1/49"],"passed":true},{"actual":["left","0"],"check":"single-address range","expected":["left","0"],"passed":true},{"actual":["left","1/2"],"check":"conflicting sides resolve to left","expected":["left","1/2"],"passed":true},{"actual":["left","11/49"],"check":"even left side","expected":["left","11/49"],"passed":true},{"actual":null,"check":"outside both ranges","expected":null,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"odd house on odd left side\", \"actual\": [\"left\", \"1/49\"], \"expected\": [\"left\", \"1/49\"], \"passed\": true}, {\"check\": \"even house on even right side\", \"actual\": [\"right\", \"26/49\"], \"expected\": [\"right\", \"26/49\"], \"passed\": true}, {\"check\": \"range end is inclusive\", \"actual\": [\"left\", \"1\"], \"expected\": [\"left\", \"1\"], \"passed\": true}, {\"check\": \"descending range\", \"actual\": [\"left\", \"1/49\"], \"expected\": [\"left\", \"1/49\"], \"passed\": true}, {\"check\": \"single-address range\", \"actual\": [\"left\", \"0\"], \"expected\": [\"left\", \"0\"], \"passed\": true}, {\"check\": \"conflicting sides resolve to left\", \"actual\": [\"left\", \"1/2\"], \"expected\": [\"left\", \"1/2\"], \"passed\": true}, {\"check\": \"even left side\", \"actual\": [\"left\", \"11/49\"], \"expected\": [\"left\", \"11/49\"], \"passed\": true}, {\"check\": \"outside both ranges\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}