{"abstract":"Any trip taking more than two thirds of the estimated time is metered.","category":"Ride-hailing fare and surge pricing","checks":7,"contract":"An upfront quote is honored unless (checked in this order) the destination changed, stops were added, actual distance exceeds the estimate by more than 25% (m*4 > est*5), or actual time exceeds it by more than 50% (s*2 > est*3). Otherwise-recomputed fares use actual meters and seconds: base + half-up(m*per_km/1000) + half-up(s*per_min/60). Return the charge and the reason code.","contract_signature":"quote, actual, rate","evaluation_group":"w2-ride-hailing-fare-surge-upfront-price-honor","failed_approach":"Also requiring a longer route ignores delays on the planned route.","family":"w2-ride-hailing-fare-surge-upfront-price-honor-time-deviation-ratio","id":"FA-85411","implementations":{"attempt":{"sha256":"1a674edffa27764bd17c8b010acc691575905db2b054db4c3cf1628f53156043","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(quote, actual, rate):\n    def metered():\n        return rate['base'] + (actual['m'] * rate['per_km'] * 2 + 1000) // 2000 + (actual['s'] * rate['per_min'] * 2 + 60) // 120\n    if actual['dest'] != quote['dest']:\n        reason = 'destination'\n    elif actual['stops_added'] > 0:\n        reason = 'stops'\n    elif actual['m'] * 4 > quote['est_m'] * 5:\n        reason = 'distance'\n    elif actual['s'] * 2 > quote['est_s'] * 3 and actual['m'] > quote['est_m']:\n        reason = 'time'\n    else:\n        reason = 'quote'\n    charged = quote['price'] if reason == 'quote' else metered()\n    return {'charged': charged, 'reason': reason}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 5000, 's': 800, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 802, 's': 3602, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1501, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 2100},\n    {'dest': 'D1', 'm': 8001, 's': 2701, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 1252, 's': 1351, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1145, 'reason': 'time'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1801, 'price': 2100},\n    {'dest': 'D1', 'm': 5001, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1801, 'reason': 'distance'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 2100},\n    {'dest': 'D2', 'm': 8001, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1551, 'reason': 'destination'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 1250},\n    {'dest': 'D2', 'm': 5000, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 992, 'reason': 'destination'})],\n [('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 7801, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 1002, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1710, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 4000, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1041, 'reason': 'time'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 12501, 's': 1800, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2813, 'reason': 'distance'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D2', 'm': 10000, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2850, 'reason': 'destination'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 1253, 's': 1351, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 807, 'reason': 'stops'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 3999},\n    {'dest': 'D2', 'm': 10000, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 2088, 'reason': 'destination'})],\n [('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 7801, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 7801, 's': 902, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1584, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 1252, 's': 800, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D2', 'm': 4000, 's': 3602, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1841, 'reason': 'destination'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D2', 'm': 5000, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1125, 'reason': 'destination'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D2', 'm': 3800, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1026, 'reason': 'destination'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 12001, 's': 601, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1720, 'reason': 'stops'})],\n [('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 12500, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 10000, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1851, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 4000, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1240, 'reason': 'time'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 1503, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1165, 'reason': 'distance'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 2100},\n    {'dest': 'D2', 'm': 10000, 's': 900, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1975, 'reason': 'destination'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 1250},\n    {'dest': 'D1', 'm': 10002, 's': 2701, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 2876, 'reason': 'distance'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 601, 'price': 1250},\n    {'dest': 'D2', 'm': 1503, 's': 1202, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1089, 'reason': 'destination'})],\n [('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 2100},\n    {'dest': 'D1', 'm': 4000, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 9800, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 2678, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 1002, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 1252, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 739, 'reason': 'time'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 12001, 's': 3602, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 2721, 'reason': 'distance'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 1252, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1389, 'reason': 'time'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 1253, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 938, 'reason': 'distance'})]]\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":"de5db6cac9e1762af63d7297048dc61246809aaf1d7b22effa209002c9e23e1e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(quote, actual, rate):\n    def metered():\n        return rate['base'] + (actual['m'] * rate['per_km'] * 2 + 1000) // 2000 + (actual['s'] * rate['per_min'] * 2 + 60) // 120\n    if actual['dest'] != quote['dest']:\n        reason = 'destination'\n    elif actual['stops_added'] > 0:\n        reason = 'stops'\n    elif actual['m'] * 4 > quote['est_m'] * 5:\n        reason = 'distance'\n    elif actual['s'] * 3 > quote['est_s'] * 2:\n        reason = 'time'\n    else:\n        reason = 'quote'\n    charged = quote['price'] if reason == 'quote' else metered()\n    return {'charged': charged, 'reason': reason}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 5000, 's': 800, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 802, 's': 3602, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1501, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 2100},\n    {'dest': 'D1', 'm': 8001, 's': 2701, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 1252, 's': 1351, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1145, 'reason': 'time'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1801, 'price': 2100},\n    {'dest': 'D1', 'm': 5001, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1801, 'reason': 'distance'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 2100},\n    {'dest': 'D2', 'm': 8001, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1551, 'reason': 'destination'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 1250},\n    {'dest': 'D2', 'm': 5000, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 992, 'reason': 'destination'})],\n [('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 7801, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 1002, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1710, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 4000, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1041, 'reason': 'time'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 12501, 's': 1800, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2813, 'reason': 'distance'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D2', 'm': 10000, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2850, 'reason': 'destination'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 1253, 's': 1351, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 807, 'reason': 'stops'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 3999},\n    {'dest': 'D2', 'm': 10000, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 2088, 'reason': 'destination'})],\n [('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 7801, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 7801, 's': 902, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1584, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 1252, 's': 800, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D2', 'm': 4000, 's': 3602, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1841, 'reason': 'destination'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D2', 'm': 5000, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1125, 'reason': 'destination'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D2', 'm': 3800, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1026, 'reason': 'destination'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 12001, 's': 601, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1720, 'reason': 'stops'})],\n [('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 12500, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 10000, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1851, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 4000, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1240, 'reason': 'time'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 1503, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1165, 'reason': 'distance'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 2100},\n    {'dest': 'D2', 'm': 10000, 's': 900, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1975, 'reason': 'destination'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 1250},\n    {'dest': 'D1', 'm': 10002, 's': 2701, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 2876, 'reason': 'distance'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 601, 'price': 1250},\n    {'dest': 'D2', 'm': 1503, 's': 1202, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1089, 'reason': 'destination'})],\n [('regression: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 2100},\n    {'dest': 'D1', 'm': 4000, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('partial repair probe: time deviation ratio',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 9800, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 2678, 'reason': 'time'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 1002, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 1252, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 739, 'reason': 'time'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 12001, 's': 3602, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 2721, 'reason': 'distance'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 1252, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1389, 'reason': 'time'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 1253, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 938, 'reason': 'distance'})]]\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-upfront-price-honor-time-deviation-ratio","generated_at":"2026-09-29T14:50:40.232155+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":"The 1.5 tolerance is written as 3/2 on the wrong side, becoming 2/3.","sha256":"1ff4b68636d708e1d3d50543b09f9abe93c9fda4ebf76116b51a3ee36891197d","title":"Time tolerance ratio inverted · 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":41.694,"exit_code":1,"observations":[{"actual":{"charged":1250,"reason":"quote"},"check":"regression: time deviation ratio","expected":{"charged":1250,"reason":"quote"},"passed":true},{"actual":{"charged":3999,"reason":"quote"},"check":"partial repair probe: time deviation ratio","expected":{"charged":1501,"reason":"time"},"passed":false},{"actual":{"charged":2100,"reason":"quote"},"check":"second regression","expected":{"charged":2100,"reason":"quote"},"passed":true},{"actual":{"charged":1145,"reason":"time"},"check":"normal control 1","expected":{"charged":1145,"reason":"time"},"passed":true},{"actual":{"charged":1801,"reason":"distance"},"check":"normal control 2","expected":{"charged":1801,"reason":"distance"},"passed":true},{"actual":{"charged":1551,"reason":"destination"},"check":"normal control 3","expected":{"charged":1551,"reason":"destination"},"passed":true},{"actual":{"charged":992,"reason":"destination"},"check":"normal control 4","expected":{"charged":992,"reason":"destination"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: time deviation ratio\", \"actual\": {\"charged\": 1250, \"reason\": \"quote\"}, \"expected\": {\"charged\": 1250, \"reason\": \"quote\"}, \"passed\": true}, {\"check\": \"partial repair probe: time deviation ratio\", \"actual\": {\"charged\": 3999, \"reason\": \"quote\"}, \"expected\": {\"charged\": 1501, \"reason\": \"time\"}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"charged\": 2100, \"reason\": \"quote\"}, \"expected\": {\"charged\": 2100, \"reason\": \"quote\"}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"charged\": 1145, \"reason\": \"time\"}, \"expected\": {\"charged\": 1145, \"reason\": \"time\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"charged\": 1801, \"reason\": \"distance\"}, \"expected\": {\"charged\": 1801, \"reason\": \"distance\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"charged\": 1551, \"reason\": \"destination\"}, \"expected\": {\"charged\": 1551, \"reason\": \"destination\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"charged\": 992, \"reason\": \"destination\"}, \"expected\": {\"charged\": 992, \"reason\": \"destination\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.537,"exit_code":1,"observations":[{"actual":{"charged":1017,"reason":"time"},"check":"regression: time deviation ratio","expected":{"charged":1250,"reason":"quote"},"passed":false},{"actual":{"charged":1501,"reason":"time"},"check":"partial repair probe: time deviation ratio","expected":{"charged":1501,"reason":"time"},"passed":true},{"actual":{"charged":2776,"reason":"time"},"check":"second regression","expected":{"charged":2100,"reason":"quote"},"passed":false},{"actual":{"charged":1145,"reason":"time"},"check":"normal control 1","expected":{"charged":1145,"reason":"time"},"passed":true},{"actual":{"charged":1801,"reason":"distance"},"check":"normal control 2","expected":{"charged":1801,"reason":"distance"},"passed":true},{"actual":{"charged":1551,"reason":"destination"},"check":"normal control 3","expected":{"charged":1551,"reason":"destination"},"passed":true},{"actual":{"charged":992,"reason":"destination"},"check":"normal control 4","expected":{"charged":992,"reason":"destination"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: time deviation ratio\", \"actual\": {\"charged\": 1017, \"reason\": \"time\"}, \"expected\": {\"charged\": 1250, \"reason\": \"quote\"}, \"passed\": false}, {\"check\": \"partial repair probe: time deviation ratio\", \"actual\": {\"charged\": 1501, \"reason\": \"time\"}, \"expected\": {\"charged\": 1501, \"reason\": \"time\"}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"charged\": 2776, \"reason\": \"time\"}, \"expected\": {\"charged\": 2100, \"reason\": \"quote\"}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"charged\": 1145, \"reason\": \"time\"}, \"expected\": {\"charged\": 1145, \"reason\": \"time\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"charged\": 1801, \"reason\": \"distance\"}, \"expected\": {\"charged\": 1801, \"reason\": \"distance\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"charged\": 1551, \"reason\": \"destination\"}, \"expected\": {\"charged\": 1551, \"reason\": \"destination\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"charged\": 992, \"reason\": \"destination\"}, \"expected\": {\"charged\": 992, \"reason\": \"destination\"}, \"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."}}