{"abstract":"Riders who chose pool but were never matched pay the full solo price.","category":"Ride-hailing fare and surge pricing","checks":7,"contract":"In a shared ride, a rider counts as matched if they shared at least min_overlap_s seconds with another rider; a match needs at least two such riders, otherwise nobody is matched. Matched riders pay solo x (100 - discount_pct)% and unmatched riders pay solo x 95%, both floored to the cent in the rider's favor. Return id -> price.","contract_signature":"riders, discount_pct, min_overlap_s","evaluation_group":"w2-ride-hailing-fare-surge-shared-ride-discount","failed_approach":"Deriving the unmatched discount from the matched rate gives the wrong percentage.","family":"w2-ride-hailing-fare-surge-shared-ride-discount-unmatched-commitment-discount","id":"FA-85561","implementations":{"attempt":{"sha256":"d9e446a9e1532320f1791c771f107f5d73696aa1e3739c61f98b6ebc12ff64a8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(riders, discount_pct, min_overlap_s):\n    matched = [r['id'] for r in riders if r['overlap_s'] >= min_overlap_s]\n    if len(matched) < 2:\n        matched = []\n    out = {}\n    for r in riders:\n        pct = discount_pct if r['id'] in matched else discount_pct // 5\n        out[r['id']] = r['solo'] * (100 - pct) // 100\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 0, 'solo': 1999}, {'id': 'r1', 'overlap_s': 181, 'solo': 2505},\n     {'id': 'r2', 'overlap_s': 180, 'solo': 877}],\n    30, 180],\n   {'r0': 1899, 'r1': 1753, 'r2': 613}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 2505}, {'id': 'r1', 'overlap_s': 0, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 1234}, {'id': 'r3', 'overlap_s': 181, 'solo': 1999}],\n    30, 180],\n   {'r0': 1753, 'r1': 833, 'r2': 863, 'r3': 1399}),\n  ('second regression', [[{'id': 'r0', 'overlap_s': 0, 'solo': 1234}], 25, 180], {'r0': 1172}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 180, 'solo': 1234},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 877}],\n    30, 180],\n   {'r0': 863, 'r1': 863, 'r2': 613}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 180, 'solo': 2505},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 877}, {'id': 'r3', 'overlap_s': 181, 'solo': 2505}],\n    25, 180],\n   {'r0': 925, 'r1': 1878, 'r2': 657, 'r3': 1878}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 877}, {'id': 'r1', 'overlap_s': 181, 'solo': 1234}], 25, 180],\n   {'r0': 657, 'r1': 925}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1999}, {'id': 'r1', 'overlap_s': 181, 'solo': 877}], 30, 180],\n   {'r0': 1399, 'r1': 613})],\n [('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 1234}, {'id': 'r1', 'overlap_s': 0, 'solo': 1999}], 30, 180],\n   {'r0': 1172, 'r1': 1899}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1999}, {'id': 'r1', 'overlap_s': 0, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 0, 'solo': 1999}],\n    30, 180],\n   {'r0': 1899, 'r1': 1899, 'r2': 1899}),\n  ('second regression', [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}], 25, 180], {'r0': 1172}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 2505}, {'id': 'r1', 'overlap_s': 600, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 180, 'solo': 1234}],\n    30, 180],\n   {'r0': 1753, 'r1': 1399, 'r2': 863}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 2505}, {'id': 'r1', 'overlap_s': 181, 'solo': 1234}], 30, 180],\n   {'r0': 1753, 'r1': 863}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 1234}, {'id': 'r1', 'overlap_s': 180, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 2505}],\n    40, 180],\n   {'r0': 740, 'r1': 526, 'r2': 1503}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 877}, {'id': 'r1', 'overlap_s': 600, 'solo': 1234}], 40, 180],\n   {'r0': 526, 'r1': 740})],\n [('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 1234}, {'id': 'r1', 'overlap_s': 3, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 877}, {'id': 'r3', 'overlap_s': 180, 'solo': 1234}],\n    40, 180],\n   {'r0': 740, 'r1': 1899, 'r2': 526, 'r3': 740}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 1999}, {'id': 'r1', 'overlap_s': 179, 'solo': 877}], 40, 180],\n   {'r0': 1899, 'r1': 833}),\n  ('second regression',\n   [[{'id': 'r0', 'overlap_s': 179, 'solo': 2505}, {'id': 'r1', 'overlap_s': 179, 'solo': 1234},\n     {'id': 'r2', 'overlap_s': 3, 'solo': 1234}, {'id': 'r3', 'overlap_s': 179, 'solo': 1234}],\n    30, 180],\n   {'r0': 2379, 'r1': 1172, 'r2': 1172, 'r3': 1172}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1234}, {'id': 'r1', 'overlap_s': 181, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 1999}, {'id': 'r3', 'overlap_s': 600, 'solo': 877}],\n    25, 180],\n   {'r0': 925, 'r1': 657, 'r2': 1499, 'r3': 657}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1999}, {'id': 'r1', 'overlap_s': 180, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 1999}, {'id': 'r3', 'overlap_s': 180, 'solo': 877}],\n    25, 180],\n   {'r0': 1499, 'r1': 1499, 'r2': 1499, 'r3': 657}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1999}, {'id': 'r1', 'overlap_s': 180, 'solo': 1234}], 25, 180],\n   {'r0': 1499, 'r1': 925}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1999}, {'id': 'r1', 'overlap_s': 600, 'solo': 1999}], 25, 180],\n   {'r0': 1499, 'r1': 1499})],\n [('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 0, 'solo': 2505}, {'id': 'r1', 'overlap_s': 181, 'solo': 877}], 40, 180],\n   {'r0': 2379, 'r1': 833}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 3, 'solo': 877}, {'id': 'r1', 'overlap_s': 0, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 0, 'solo': 2505}, {'id': 'r3', 'overlap_s': 0, 'solo': 1234}],\n    40, 180],\n   {'r0': 833, 'r1': 1899, 'r2': 2379, 'r3': 1172}),\n  ('second regression',\n   [[{'id': 'r0', 'overlap_s': 0, 'solo': 877}, {'id': 'r1', 'overlap_s': 3, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 2505}],\n    25, 180],\n   {'r0': 833, 'r1': 1899, 'r2': 2379}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1999}, {'id': 'r1', 'overlap_s': 180, 'solo': 877}], 30, 180],\n   {'r0': 1399, 'r1': 613}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 600, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 180, 'solo': 877}],\n    40, 180],\n   {'r0': 740, 'r1': 526, 'r2': 526}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 181, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 877}, {'id': 'r3', 'overlap_s': 181, 'solo': 877}],\n    25, 180],\n   {'r0': 925, 'r1': 1499, 'r2': 657, 'r3': 657}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 2505}, {'id': 'r1', 'overlap_s': 180, 'solo': 2505}], 25, 180],\n   {'r0': 1878, 'r1': 1878})],\n [('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1999}, {'id': 'r1', 'overlap_s': 180, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 3, 'solo': 2505}, {'id': 'r3', 'overlap_s': 3, 'solo': 1234}],\n    40, 180],\n   {'r0': 1199, 'r1': 526, 'r2': 2379, 'r3': 1172}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 3, 'solo': 1234},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 1999}, {'id': 'r3', 'overlap_s': 0, 'solo': 2505}],\n    30, 180],\n   {'r0': 863, 'r1': 1172, 'r2': 1399, 'r3': 2379}),\n  ('second regression',\n   [[{'id': 'r0', 'overlap_s': 3, 'solo': 1999}, {'id': 'r1', 'overlap_s': 181, 'solo': 1234},\n     {'id': 'r2', 'overlap_s': 180, 'solo': 2505}],\n    30, 180],\n   {'r0': 1899, 'r1': 863, 'r2': 1753}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1999}, {'id': 'r1', 'overlap_s': 600, 'solo': 2505}], 25, 180],\n   {'r0': 1499, 'r1': 1878}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 877}, {'id': 'r1', 'overlap_s': 600, 'solo': 2505}], 30, 180],\n   {'r0': 613, 'r1': 1753}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1234}, {'id': 'r1', 'overlap_s': 600, 'solo': 1234}], 30, 180],\n   {'r0': 863, 'r1': 863}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 877}, {'id': 'r1', 'overlap_s': 600, 'solo': 877}], 40, 180],\n   {'r0': 526, 'r1': 526})]]\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":"6a6f10a5fce1d54dd9df15716a5332461babfd12ca124200fea02d98282c8b30","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(riders, discount_pct, min_overlap_s):\n    matched = [r['id'] for r in riders if r['overlap_s'] >= min_overlap_s]\n    if len(matched) < 2:\n        matched = []\n    out = {}\n    for r in riders:\n        pct = discount_pct if r['id'] in matched else 0\n        out[r['id']] = r['solo'] * (100 - pct) // 100\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 0, 'solo': 1999}, {'id': 'r1', 'overlap_s': 181, 'solo': 2505},\n     {'id': 'r2', 'overlap_s': 180, 'solo': 877}],\n    30, 180],\n   {'r0': 1899, 'r1': 1753, 'r2': 613}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 2505}, {'id': 'r1', 'overlap_s': 0, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 1234}, {'id': 'r3', 'overlap_s': 181, 'solo': 1999}],\n    30, 180],\n   {'r0': 1753, 'r1': 833, 'r2': 863, 'r3': 1399}),\n  ('second regression', [[{'id': 'r0', 'overlap_s': 0, 'solo': 1234}], 25, 180], {'r0': 1172}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 180, 'solo': 1234},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 877}],\n    30, 180],\n   {'r0': 863, 'r1': 863, 'r2': 613}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 180, 'solo': 2505},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 877}, {'id': 'r3', 'overlap_s': 181, 'solo': 2505}],\n    25, 180],\n   {'r0': 925, 'r1': 1878, 'r2': 657, 'r3': 1878}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 877}, {'id': 'r1', 'overlap_s': 181, 'solo': 1234}], 25, 180],\n   {'r0': 657, 'r1': 925}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1999}, {'id': 'r1', 'overlap_s': 181, 'solo': 877}], 30, 180],\n   {'r0': 1399, 'r1': 613})],\n [('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 1234}, {'id': 'r1', 'overlap_s': 0, 'solo': 1999}], 30, 180],\n   {'r0': 1172, 'r1': 1899}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1999}, {'id': 'r1', 'overlap_s': 0, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 0, 'solo': 1999}],\n    30, 180],\n   {'r0': 1899, 'r1': 1899, 'r2': 1899}),\n  ('second regression', [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}], 25, 180], {'r0': 1172}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 2505}, {'id': 'r1', 'overlap_s': 600, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 180, 'solo': 1234}],\n    30, 180],\n   {'r0': 1753, 'r1': 1399, 'r2': 863}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 2505}, {'id': 'r1', 'overlap_s': 181, 'solo': 1234}], 30, 180],\n   {'r0': 1753, 'r1': 863}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 1234}, {'id': 'r1', 'overlap_s': 180, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 2505}],\n    40, 180],\n   {'r0': 740, 'r1': 526, 'r2': 1503}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 877}, {'id': 'r1', 'overlap_s': 600, 'solo': 1234}], 40, 180],\n   {'r0': 526, 'r1': 740})],\n [('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 1234}, {'id': 'r1', 'overlap_s': 3, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 877}, {'id': 'r3', 'overlap_s': 180, 'solo': 1234}],\n    40, 180],\n   {'r0': 740, 'r1': 1899, 'r2': 526, 'r3': 740}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 181, 'solo': 1999}, {'id': 'r1', 'overlap_s': 179, 'solo': 877}], 40, 180],\n   {'r0': 1899, 'r1': 833}),\n  ('second regression',\n   [[{'id': 'r0', 'overlap_s': 179, 'solo': 2505}, {'id': 'r1', 'overlap_s': 179, 'solo': 1234},\n     {'id': 'r2', 'overlap_s': 3, 'solo': 1234}, {'id': 'r3', 'overlap_s': 179, 'solo': 1234}],\n    30, 180],\n   {'r0': 2379, 'r1': 1172, 'r2': 1172, 'r3': 1172}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1234}, {'id': 'r1', 'overlap_s': 181, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 1999}, {'id': 'r3', 'overlap_s': 600, 'solo': 877}],\n    25, 180],\n   {'r0': 925, 'r1': 657, 'r2': 1499, 'r3': 657}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1999}, {'id': 'r1', 'overlap_s': 180, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 1999}, {'id': 'r3', 'overlap_s': 180, 'solo': 877}],\n    25, 180],\n   {'r0': 1499, 'r1': 1499, 'r2': 1499, 'r3': 657}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1999}, {'id': 'r1', 'overlap_s': 180, 'solo': 1234}], 25, 180],\n   {'r0': 1499, 'r1': 925}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1999}, {'id': 'r1', 'overlap_s': 600, 'solo': 1999}], 25, 180],\n   {'r0': 1499, 'r1': 1499})],\n [('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 0, 'solo': 2505}, {'id': 'r1', 'overlap_s': 181, 'solo': 877}], 40, 180],\n   {'r0': 2379, 'r1': 833}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 3, 'solo': 877}, {'id': 'r1', 'overlap_s': 0, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 0, 'solo': 2505}, {'id': 'r3', 'overlap_s': 0, 'solo': 1234}],\n    40, 180],\n   {'r0': 833, 'r1': 1899, 'r2': 2379, 'r3': 1172}),\n  ('second regression',\n   [[{'id': 'r0', 'overlap_s': 0, 'solo': 877}, {'id': 'r1', 'overlap_s': 3, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 600, 'solo': 2505}],\n    25, 180],\n   {'r0': 833, 'r1': 1899, 'r2': 2379}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1999}, {'id': 'r1', 'overlap_s': 180, 'solo': 877}], 30, 180],\n   {'r0': 1399, 'r1': 613}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 600, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 180, 'solo': 877}],\n    40, 180],\n   {'r0': 740, 'r1': 526, 'r2': 526}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 181, 'solo': 1999},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 877}, {'id': 'r3', 'overlap_s': 181, 'solo': 877}],\n    25, 180],\n   {'r0': 925, 'r1': 1499, 'r2': 657, 'r3': 657}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 2505}, {'id': 'r1', 'overlap_s': 180, 'solo': 2505}], 25, 180],\n   {'r0': 1878, 'r1': 1878})],\n [('regression: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1999}, {'id': 'r1', 'overlap_s': 180, 'solo': 877},\n     {'id': 'r2', 'overlap_s': 3, 'solo': 2505}, {'id': 'r3', 'overlap_s': 3, 'solo': 1234}],\n    40, 180],\n   {'r0': 1199, 'r1': 526, 'r2': 2379, 'r3': 1172}),\n  ('partial repair probe: unmatched commitment discount',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 1234}, {'id': 'r1', 'overlap_s': 3, 'solo': 1234},\n     {'id': 'r2', 'overlap_s': 181, 'solo': 1999}, {'id': 'r3', 'overlap_s': 0, 'solo': 2505}],\n    30, 180],\n   {'r0': 863, 'r1': 1172, 'r2': 1399, 'r3': 2379}),\n  ('second regression',\n   [[{'id': 'r0', 'overlap_s': 3, 'solo': 1999}, {'id': 'r1', 'overlap_s': 181, 'solo': 1234},\n     {'id': 'r2', 'overlap_s': 180, 'solo': 2505}],\n    30, 180],\n   {'r0': 1899, 'r1': 863, 'r2': 1753}),\n  ('normal control 1',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1999}, {'id': 'r1', 'overlap_s': 600, 'solo': 2505}], 25, 180],\n   {'r0': 1499, 'r1': 1878}),\n  ('normal control 2',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 877}, {'id': 'r1', 'overlap_s': 600, 'solo': 2505}], 30, 180],\n   {'r0': 613, 'r1': 1753}),\n  ('normal control 3',\n   [[{'id': 'r0', 'overlap_s': 180, 'solo': 1234}, {'id': 'r1', 'overlap_s': 600, 'solo': 1234}], 30, 180],\n   {'r0': 863, 'r1': 863}),\n  ('normal control 4',\n   [[{'id': 'r0', 'overlap_s': 600, 'solo': 877}, {'id': 'r1', 'overlap_s': 600, 'solo': 877}], 40, 180],\n   {'r0': 526, 'r1': 526})]]\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-shared-ride-discount-unmatched-commitment-discount","generated_at":"2026-09-29T14:50:41.581995+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.","root_cause":"Unmatched riders receive no discount.","sha256":"1d33e9c8882f4bb6c8fd20cb604c148ee24305a3746467979468d35c57603d3c","title":"Unmatched pool riders lose the commitment discount · 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":42.104,"exit_code":1,"observations":[{"actual":{"r0":1879,"r1":1753,"r2":613},"check":"regression: unmatched commitment discount","expected":{"r0":1899,"r1":1753,"r2":613},"passed":false},{"actual":{"r0":1753,"r1":824,"r2":863,"r3":1399},"check":"partial repair probe: unmatched commitment discount","expected":{"r0":1753,"r1":833,"r2":863,"r3":1399},"passed":false},{"actual":{"r0":1172},"check":"second regression","expected":{"r0":1172},"passed":true},{"actual":{"r0":863,"r1":863,"r2":613},"check":"normal control 1","expected":{"r0":863,"r1":863,"r2":613},"passed":true},{"actual":{"r0":925,"r1":1878,"r2":657,"r3":1878},"check":"normal control 2","expected":{"r0":925,"r1":1878,"r2":657,"r3":1878},"passed":true},{"actual":{"r0":657,"r1":925},"check":"normal control 3","expected":{"r0":657,"r1":925},"passed":true},{"actual":{"r0":1399,"r1":613},"check":"normal control 4","expected":{"r0":1399,"r1":613},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: unmatched commitment discount\", \"actual\": {\"r0\": 1879, \"r1\": 1753, \"r2\": 613}, \"expected\": {\"r0\": 1899, \"r1\": 1753, \"r2\": 613}, \"passed\": false}, {\"check\": \"partial repair probe: unmatched commitment discount\", \"actual\": {\"r0\": 1753, \"r1\": 824, \"r2\": 863, \"r3\": 1399}, \"expected\": {\"r0\": 1753, \"r1\": 833, \"r2\": 863, \"r3\": 1399}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"r0\": 1172}, \"expected\": {\"r0\": 1172}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"r0\": 863, \"r1\": 863, \"r2\": 613}, \"expected\": {\"r0\": 863, \"r1\": 863, \"r2\": 613}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"r0\": 925, \"r1\": 1878, \"r2\": 657, \"r3\": 1878}, \"expected\": {\"r0\": 925, \"r1\": 1878, \"r2\": 657, \"r3\": 1878}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"r0\": 657, \"r1\": 925}, \"expected\": {\"r0\": 657, \"r1\": 925}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"r0\": 1399, \"r1\": 613}, \"expected\": {\"r0\": 1399, \"r1\": 613}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.344,"exit_code":1,"observations":[{"actual":{"r0":1999,"r1":1753,"r2":613},"check":"regression: unmatched commitment discount","expected":{"r0":1899,"r1":1753,"r2":613},"passed":false},{"actual":{"r0":1753,"r1":877,"r2":863,"r3":1399},"check":"partial repair probe: unmatched commitment discount","expected":{"r0":1753,"r1":833,"r2":863,"r3":1399},"passed":false},{"actual":{"r0":1234},"check":"second regression","expected":{"r0":1172},"passed":false},{"actual":{"r0":863,"r1":863,"r2":613},"check":"normal control 1","expected":{"r0":863,"r1":863,"r2":613},"passed":true},{"actual":{"r0":925,"r1":1878,"r2":657,"r3":1878},"check":"normal control 2","expected":{"r0":925,"r1":1878,"r2":657,"r3":1878},"passed":true},{"actual":{"r0":657,"r1":925},"check":"normal control 3","expected":{"r0":657,"r1":925},"passed":true},{"actual":{"r0":1399,"r1":613},"check":"normal control 4","expected":{"r0":1399,"r1":613},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: unmatched commitment discount\", \"actual\": {\"r0\": 1999, \"r1\": 1753, \"r2\": 613}, \"expected\": {\"r0\": 1899, \"r1\": 1753, \"r2\": 613}, \"passed\": false}, {\"check\": \"partial repair probe: unmatched commitment discount\", \"actual\": {\"r0\": 1753, \"r1\": 877, \"r2\": 863, \"r3\": 1399}, \"expected\": {\"r0\": 1753, \"r1\": 833, \"r2\": 863, \"r3\": 1399}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"r0\": 1234}, \"expected\": {\"r0\": 1172}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"r0\": 863, \"r1\": 863, \"r2\": 613}, \"expected\": {\"r0\": 863, \"r1\": 863, \"r2\": 613}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"r0\": 925, \"r1\": 1878, \"r2\": 657, \"r3\": 1878}, \"expected\": {\"r0\": 925, \"r1\": 1878, \"r2\": 657, \"r3\": 1878}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"r0\": 657, \"r1\": 925}, \"expected\": {\"r0\": 657, \"r1\": 925}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"r0\": 1399, \"r1\": 613}, \"expected\": {\"r0\": 1399, \"r1\": 613}, \"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."}}