{"abstract":"The low end of the range can exceed 90% of the estimate.","category":"Ride-hailing fare and surge pricing","checks":7,"contract":"Show a fare range from a point estimate in cents: low = 90% of the estimate floored to whole dollars, but never below the minimum fare; high = 110% of the estimate rounded up to whole dollars; if the range is narrower than 2.00 the high end becomes low + 2.00. Return [low, high] cents.","evaluation_group":"w2-ride-hailing-fare-surge-estimate-range","failed_approach":"Nearest-dollar rounding with round() still rounds some low ends upward.","family":"w2-ride-hailing-fare-surge-estimate-range-low-end-rounding","id":"FA-85681","implementations":{"attempt":{"sha256":"fc213a8510320d86183453a3842f6479b1372f8a9cadd34c4d754c114d984863","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(est, minimum):\n    low = max(round(est * 0.9 / 100) * 100, minimum)\n    high = -(-(est * 11) // 1000) * 100\n    if high - low < 200:\n        high = low + 200\n    return [low, high]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: low end rounding', [1999, 800], [1700, 2200]),\n  ('partial repair probe: low end rounding', [2082, 800], [1800, 2300]),\n  ('second regression', [1111, 800], [900, 1300]), ('normal control 1', [1000, 1000], [1000, 1200]),\n  ('normal control 2', [1234, 500], [1100, 1400]), ('normal control 3', [2050, 1000], [1800, 2300]),\n  ('normal control 4', [1234, 800], [1100, 1400])],\n [('regression: low end rounding', [1999, 800], [1700, 2200]),\n  ('partial repair probe: low end rounding', [1999, 500], [1700, 2200]),\n  ('second regression', [2500, 500], [2200, 2800]), ('normal control 1', [700, 500], [600, 800]),\n  ('normal control 2', [1234, 500], [1100, 1400]), ('normal control 3', [4383, 1000], [3900, 4900]),\n  ('normal control 4', [1234, 800], [1100, 1400])],\n [('regression: low end rounding', [2500, 800], [2200, 2800]),\n  ('partial repair probe: low end rounding', [1999, 500], [1700, 2200]),\n  ('second regression', [2500, 500], [2200, 2800]), ('normal control 1', [1000, 500], [900, 1100]),\n  ('normal control 2', [1234, 800], [1100, 1400]), ('normal control 3', [2050, 500], [1800, 2300]),\n  ('normal control 4', [700, 500], [600, 800])],\n [('regression: low end rounding', [1999, 1000], [1700, 2200]),\n  ('partial repair probe: low end rounding', [1111, 500], [900, 1300]),\n  ('second regression', [2500, 500], [2200, 2800]), ('normal control 1', [1000, 800], [900, 1100]),\n  ('normal control 2', [1234, 800], [1100, 1400]), ('normal control 3', [1000, 1000], [1000, 1200]),\n  ('normal control 4', [700, 500], [600, 800])],\n [('regression: low end rounding', [4887, 500], [4300, 5400]),\n  ('partial repair probe: low end rounding', [1999, 500], [1700, 2200]),\n  ('second regression', [2500, 800], [2200, 2800]), ('normal control 1', [2050, 500], [1800, 2300]),\n  ('normal control 2', [2050, 800], [1800, 2300]), ('normal control 3', [700, 800], [800, 1000]),\n  ('normal control 4', [2904, 500], [2600, 3200])]]\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":"ffd3aee1329d3c1acd6dff9cfb530a6c70188957dc935bae6df67a630e60a00d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(est, minimum):\n    low = max((est * 9 // 10 + 50) // 100 * 100, minimum)\n    high = -(-(est * 11) // 1000) * 100\n    if high - low < 200:\n        high = low + 200\n    return [low, high]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: low end rounding', [1999, 800], [1700, 2200]),\n  ('partial repair probe: low end rounding', [2082, 800], [1800, 2300]),\n  ('second regression', [1111, 800], [900, 1300]), ('normal control 1', [1000, 1000], [1000, 1200]),\n  ('normal control 2', [1234, 500], [1100, 1400]), ('normal control 3', [2050, 1000], [1800, 2300]),\n  ('normal control 4', [1234, 800], [1100, 1400])],\n [('regression: low end rounding', [1999, 800], [1700, 2200]),\n  ('partial repair probe: low end rounding', [1999, 500], [1700, 2200]),\n  ('second regression', [2500, 500], [2200, 2800]), ('normal control 1', [700, 500], [600, 800]),\n  ('normal control 2', [1234, 500], [1100, 1400]), ('normal control 3', [4383, 1000], [3900, 4900]),\n  ('normal control 4', [1234, 800], [1100, 1400])],\n [('regression: low end rounding', [2500, 800], [2200, 2800]),\n  ('partial repair probe: low end rounding', [1999, 500], [1700, 2200]),\n  ('second regression', [2500, 500], [2200, 2800]), ('normal control 1', [1000, 500], [900, 1100]),\n  ('normal control 2', [1234, 800], [1100, 1400]), ('normal control 3', [2050, 500], [1800, 2300]),\n  ('normal control 4', [700, 500], [600, 800])],\n [('regression: low end rounding', [1999, 1000], [1700, 2200]),\n  ('partial repair probe: low end rounding', [1111, 500], [900, 1300]),\n  ('second regression', [2500, 500], [2200, 2800]), ('normal control 1', [1000, 800], [900, 1100]),\n  ('normal control 2', [1234, 800], [1100, 1400]), ('normal control 3', [1000, 1000], [1000, 1200]),\n  ('normal control 4', [700, 500], [600, 800])],\n [('regression: low end rounding', [4887, 500], [4300, 5400]),\n  ('partial repair probe: low end rounding', [1999, 500], [1700, 2200]),\n  ('second regression', [2500, 800], [2200, 2800]), ('normal control 1', [2050, 500], [1800, 2300]),\n  ('normal control 2', [2050, 800], [1800, 2300]), ('normal control 3', [700, 800], [800, 1000]),\n  ('normal control 4', [2904, 500], [2600, 3200])]]\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":"9efc5514f6d87c7ec4c71fe144c97e137238b0ac078c4d5f2634bbed59ac29da","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(est, minimum):\n    low = max(est * 9 // 10 // 100 * 100, minimum)\n    high = -(-(est * 11) // 1000) * 100\n    if high - low < 200:\n        high = low + 200\n    return [low, high]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: low end rounding', [1999, 800], [1700, 2200]),\n  ('partial repair probe: low end rounding', [2082, 800], [1800, 2300]),\n  ('second regression', [1111, 800], [900, 1300]), ('normal control 1', [1000, 1000], [1000, 1200]),\n  ('normal control 2', [1234, 500], [1100, 1400]), ('normal control 3', [2050, 1000], [1800, 2300]),\n  ('normal control 4', [1234, 800], [1100, 1400])],\n [('regression: low end rounding', [1999, 800], [1700, 2200]),\n  ('partial repair probe: low end rounding', [1999, 500], [1700, 2200]),\n  ('second regression', [2500, 500], [2200, 2800]), ('normal control 1', [700, 500], [600, 800]),\n  ('normal control 2', [1234, 500], [1100, 1400]), ('normal control 3', [4383, 1000], [3900, 4900]),\n  ('normal control 4', [1234, 800], [1100, 1400])],\n [('regression: low end rounding', [2500, 800], [2200, 2800]),\n  ('partial repair probe: low end rounding', [1999, 500], [1700, 2200]),\n  ('second regression', [2500, 500], [2200, 2800]), ('normal control 1', [1000, 500], [900, 1100]),\n  ('normal control 2', [1234, 800], [1100, 1400]), ('normal control 3', [2050, 500], [1800, 2300]),\n  ('normal control 4', [700, 500], [600, 800])],\n [('regression: low end rounding', [1999, 1000], [1700, 2200]),\n  ('partial repair probe: low end rounding', [1111, 500], [900, 1300]),\n  ('second regression', [2500, 500], [2200, 2800]), ('normal control 1', [1000, 800], [900, 1100]),\n  ('normal control 2', [1234, 800], [1100, 1400]), ('normal control 3', [1000, 1000], [1000, 1200]),\n  ('normal control 4', [700, 500], [600, 800])],\n [('regression: low end rounding', [4887, 500], [4300, 5400]),\n  ('partial repair probe: low end rounding', [1999, 500], [1700, 2200]),\n  ('second regression', [2500, 800], [2200, 2800]), ('normal control 1', [2050, 500], [1800, 2300]),\n  ('normal control 2', [2050, 800], [1800, 2300]), ('normal control 3', [700, 800], [800, 1000]),\n  ('normal control 4', [2904, 500], [2600, 3200])]]\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 toy pricing contract stipulated for this example; it does not reproduce the pricing of any real ride-hailing operator or regulator. 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-ride-hailing-fare-surge-estimate-range-low-end-rounding","generated_at":"2026-09-29T14:50:42.562328+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Ride-hailing prices are computed per trip at scale; ordering, unit and boundary slips become systematic over- or under-charging.","repair":"Floor the low bound to whole dollars.","root_cause":"The low bound rounds half up instead of flooring to a dollar.","sha256":"db38432185f0ecc78130bce7e3b6ff6427f1432a47615c461dbf76f03780d47d","title":"Low estimate rounded to the nearest dollar · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.102,"exit_code":1,"observations":[{"actual":[1800,2200],"check":"regression: low end rounding","expected":[1700,2200],"passed":false},{"actual":[1900,2300],"check":"partial repair probe: low end rounding","expected":[1800,2300],"passed":false},{"actual":[1000,1300],"check":"second regression","expected":[900,1300],"passed":false},{"actual":[1000,1200],"check":"normal control 1","expected":[1000,1200],"passed":true},{"actual":[1100,1400],"check":"normal control 2","expected":[1100,1400],"passed":true},{"actual":[1800,2300],"check":"normal control 3","expected":[1800,2300],"passed":true},{"actual":[1100,1400],"check":"normal control 4","expected":[1100,1400],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: low end rounding\", \"actual\": [1800, 2200], \"expected\": [1700, 2200], \"passed\": false}, {\"check\": \"partial repair probe: low end rounding\", \"actual\": [1900, 2300], \"expected\": [1800, 2300], \"passed\": false}, {\"check\": \"second regression\", \"actual\": [1000, 1300], \"expected\": [900, 1300], \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": [1000, 1200], \"expected\": [1000, 1200], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [1100, 1400], \"expected\": [1100, 1400], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [1800, 2300], \"expected\": [1800, 2300], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [1100, 1400], \"expected\": [1100, 1400], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.134,"exit_code":1,"observations":[{"actual":[1800,2200],"check":"regression: low end rounding","expected":[1700,2200],"passed":false},{"actual":[1900,2300],"check":"partial repair probe: low end rounding","expected":[1800,2300],"passed":false},{"actual":[1000,1300],"check":"second regression","expected":[900,1300],"passed":false},{"actual":[1000,1200],"check":"normal control 1","expected":[1000,1200],"passed":true},{"actual":[1100,1400],"check":"normal control 2","expected":[1100,1400],"passed":true},{"actual":[1800,2300],"check":"normal control 3","expected":[1800,2300],"passed":true},{"actual":[1100,1400],"check":"normal control 4","expected":[1100,1400],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: low end rounding\", \"actual\": [1800, 2200], \"expected\": [1700, 2200], \"passed\": false}, {\"check\": \"partial repair probe: low end rounding\", \"actual\": [1900, 2300], \"expected\": [1800, 2300], \"passed\": false}, {\"check\": \"second regression\", \"actual\": [1000, 1300], \"expected\": [900, 1300], \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": [1000, 1200], \"expected\": [1000, 1200], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [1100, 1400], \"expected\": [1100, 1400], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [1800, 2300], \"expected\": [1800, 2300], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [1100, 1400], \"expected\": [1100, 1400], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.386,"exit_code":0,"observations":[{"actual":[1700,2200],"check":"regression: low end rounding","expected":[1700,2200],"passed":true},{"actual":[1800,2300],"check":"partial repair probe: low end rounding","expected":[1800,2300],"passed":true},{"actual":[900,1300],"check":"second regression","expected":[900,1300],"passed":true},{"actual":[1000,1200],"check":"normal control 1","expected":[1000,1200],"passed":true},{"actual":[1100,1400],"check":"normal control 2","expected":[1100,1400],"passed":true},{"actual":[1800,2300],"check":"normal control 3","expected":[1800,2300],"passed":true},{"actual":[1100,1400],"check":"normal control 4","expected":[1100,1400],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: low end rounding\", \"actual\": [1700, 2200], \"expected\": [1700, 2200], \"passed\": true}, {\"check\": \"partial repair probe: low end rounding\", \"actual\": [1800, 2300], \"expected\": [1800, 2300], \"passed\": true}, {\"check\": \"second regression\", \"actual\": [900, 1300], \"expected\": [900, 1300], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": [1000, 1200], \"expected\": [1000, 1200], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [1100, 1400], \"expected\": [1100, 1400], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [1800, 2300], \"expected\": [1800, 2300], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [1100, 1400], \"expected\": [1100, 1400], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}