{"abstract":"A rider who lengthened the trip pays for the estimated distance.","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.","evaluation_group":"w2-ride-hailing-fare-surge-upfront-price-honor","failed_approach":"Using the estimated time instead of actual seconds still prices the old trip.","family":"w2-ride-hailing-fare-surge-upfront-price-honor-recompute-inputs","id":"FA-85421","implementations":{"attempt":{"sha256":"e2ab2ce759f7e28c5dfa763e0c37c3647aec795a17b52e40b0b96a566cb954e3","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 + (quote['est_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:\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: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 6000, 's': 900, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1385, 'reason': 'stops'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 6000, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1261, 'reason': 'distance'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 1250},\n    {'dest': 'D2', 'm': 5000, 's': 900, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1125, 'reason': 'destination'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 10001, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 10000, 's': 1801, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2501, 'reason': 'stops'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 2100},\n    {'dest': 'D1', 'm': 12500, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D1', 'm': 9800, 's': 1100, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 6000, 's': 1350, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1738, 'reason': 'stops'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D1', 'm': 10002, 's': 1100, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2092, 'reason': 'stops'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1801, 'price': 2100},\n    {'dest': 'D1', 'm': 1252, 's': 1701, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 905, 'reason': 'stops'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 10000, 's': 1800, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 1252, 's': 2701, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 4000, 's': 1200, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 3800, 's': 1100, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 10002, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2151, 'reason': 'distance'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 1250},\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': 1002, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 1002, 's': 1351, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 760, 'reason': 'stops'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 4000, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 3800, 's': 1200, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 5000, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 7801, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D2', 'm': 802, 's': 1100, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 667, 'reason': 'destination'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D2', 'm': 5001, 's': 1701, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1392, 'reason': 'destination'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D2', 'm': 10001, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1900, 'reason': 'destination'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 9800, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 802, 's': 1800, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 9800, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 4000, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D1', 'm': 10002, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2850, 'reason': 'distance'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 12501, 's': 902, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 2064, 'reason': 'stops'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 9800, 's': 900, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1578, 'reason': 'stops'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 8001, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 802, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 3800, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 802, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'})]]\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":"4a74e5874de2efa4974b1564c7b289e2fe42693907368a578bb9ca3e51f148c7","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'] + (quote['est_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:\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: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 6000, 's': 900, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1385, 'reason': 'stops'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 6000, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1261, 'reason': 'distance'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 1250},\n    {'dest': 'D2', 'm': 5000, 's': 900, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1125, 'reason': 'destination'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 10001, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 10000, 's': 1801, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2501, 'reason': 'stops'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 2100},\n    {'dest': 'D1', 'm': 12500, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D1', 'm': 9800, 's': 1100, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 6000, 's': 1350, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1738, 'reason': 'stops'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D1', 'm': 10002, 's': 1100, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2092, 'reason': 'stops'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1801, 'price': 2100},\n    {'dest': 'D1', 'm': 1252, 's': 1701, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 905, 'reason': 'stops'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 10000, 's': 1800, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 1252, 's': 2701, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 4000, 's': 1200, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 3800, 's': 1100, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 10002, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2151, 'reason': 'distance'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 1250},\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': 1002, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 1002, 's': 1351, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 760, 'reason': 'stops'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 4000, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 3800, 's': 1200, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 5000, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 7801, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D2', 'm': 802, 's': 1100, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 667, 'reason': 'destination'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D2', 'm': 5001, 's': 1701, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1392, 'reason': 'destination'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D2', 'm': 10001, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1900, 'reason': 'destination'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 9800, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 802, 's': 1800, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 9800, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 4000, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D1', 'm': 10002, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2850, 'reason': 'distance'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 12501, 's': 902, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 2064, 'reason': 'stops'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 9800, 's': 900, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1578, 'reason': 'stops'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 8001, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 802, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 3800, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 802, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'})]]\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":"7eacd7f17336ab47ac7a7e6e27bd5b566fd9716a80ebaa98df4098efbce5a419","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:\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: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 6000, 's': 900, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1385, 'reason': 'stops'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 6000, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1261, 'reason': 'distance'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 1250},\n    {'dest': 'D2', 'm': 5000, 's': 900, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1125, 'reason': 'destination'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 10001, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 10000, 's': 1801, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2501, 'reason': 'stops'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 2100},\n    {'dest': 'D1', 'm': 12500, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D1', 'm': 9800, 's': 1100, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 900, 'price': 1250},\n    {'dest': 'D1', 'm': 6000, 's': 1350, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1738, 'reason': 'stops'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D1', 'm': 10002, 's': 1100, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2092, 'reason': 'stops'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1801, 'price': 2100},\n    {'dest': 'D1', 'm': 1252, 's': 1701, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 905, 'reason': 'stops'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 10000, 's': 1800, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D1', 'm': 1252, 's': 2701, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 4000, 's': 1200, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 3800, 's': 1100, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 10002, 's': 1202, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2151, 'reason': 'distance'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 1250},\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': 1002, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 1002, 's': 1351, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 760, 'reason': 'stops'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 4000, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1200, 'price': 2100},\n    {'dest': 'D1', 'm': 3800, 's': 1200, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2100, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 5000, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 7801, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 3999, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D2', 'm': 802, 's': 1100, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 667, 'reason': 'destination'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D2', 'm': 5001, 's': 1701, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1392, 'reason': 'destination'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1801, 'price': 3999},\n    {'dest': 'D2', 'm': 10001, 's': 1801, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1900, 'reason': 'destination'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 9800, 's': 901, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 1200, 'price': 1250},\n    {'dest': 'D1', 'm': 802, 's': 1800, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 9800, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 4000, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 1250, 'reason': 'quote'})],\n [('regression: recompute inputs',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 1200, 'price': 3999},\n    {'dest': 'D1', 'm': 10002, 's': 2400, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 2850, 'reason': 'distance'}),\n  ('partial repair probe: recompute inputs',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 601, 'price': 2100},\n    {'dest': 'D1', 'm': 12501, 's': 902, 'stops_added': 1}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 2064, 'reason': 'stops'}),\n  ('second regression',\n   [{'dest': 'D1', 'est_m': 10000, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 9800, 's': 900, 'stops_added': 1}, {'base': 200, 'per_km': 110, 'per_min': 20}],\n   {'charged': 1578, 'reason': 'stops'}),\n  ('normal control 1',\n   [{'dest': 'D1', 'est_m': 8001, 'est_s': 601, 'price': 1250},\n    {'dest': 'D1', 'm': 8001, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 20}],\n   {'charged': 1250, 'reason': 'quote'}),\n  ('normal control 2',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 802, 's': 501, 'stops_added': 0}, {'base': 200, 'per_km': 125, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 3',\n   [{'dest': 'D1', 'est_m': 4000, 'est_s': 601, 'price': 3999},\n    {'dest': 'D1', 'm': 3800, 's': 601, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'}),\n  ('normal control 4',\n   [{'dest': 'D1', 'est_m': 1002, 'est_s': 900, 'price': 3999},\n    {'dest': 'D1', 'm': 802, 's': 1350, 'stops_added': 0}, {'base': 200, 'per_km': 110, 'per_min': 35}],\n   {'charged': 3999, 'reason': 'quote'})]]\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-recompute-inputs","generated_at":"2026-09-29T14:50:40.274295+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":"Recompute from actual meters and seconds.","root_cause":"The meter recompute uses the quote estimate instead of actual meters.","sha256":"e704d3efd46729452bdec5ec3bdd92006a9ba09630714615105f444ea392cf82","title":"Voided quote recomputed from the estimated distance · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.76,"exit_code":1,"observations":[{"actual":{"charged":1385,"reason":"stops"},"check":"regression: recompute inputs","expected":{"charged":1385,"reason":"stops"},"passed":true},{"actual":{"charged":1060,"reason":"distance"},"check":"partial repair probe: recompute inputs","expected":{"charged":1261,"reason":"distance"},"passed":false},{"actual":{"charged":1125,"reason":"destination"},"check":"second regression","expected":{"charged":1125,"reason":"destination"},"passed":true},{"actual":{"charged":2100,"reason":"quote"},"check":"normal control 1","expected":{"charged":2100,"reason":"quote"},"passed":true},{"actual":{"charged":2501,"reason":"stops"},"check":"normal control 2","expected":{"charged":2501,"reason":"stops"},"passed":true},{"actual":{"charged":2100,"reason":"quote"},"check":"normal control 3","expected":{"charged":2100,"reason":"quote"},"passed":true},{"actual":{"charged":3999,"reason":"quote"},"check":"normal control 4","expected":{"charged":3999,"reason":"quote"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: recompute inputs\", \"actual\": {\"charged\": 1385, \"reason\": \"stops\"}, \"expected\": {\"charged\": 1385, \"reason\": \"stops\"}, \"passed\": true}, {\"check\": \"partial repair probe: recompute inputs\", \"actual\": {\"charged\": 1060, \"reason\": \"distance\"}, \"expected\": {\"charged\": 1261, \"reason\": \"distance\"}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"charged\": 1125, \"reason\": \"destination\"}, \"expected\": {\"charged\": 1125, \"reason\": \"destination\"}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"charged\": 2100, \"reason\": \"quote\"}, \"expected\": {\"charged\": 2100, \"reason\": \"quote\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"charged\": 2501, \"reason\": \"stops\"}, \"expected\": {\"charged\": 2501, \"reason\": \"stops\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"charged\": 2100, \"reason\": \"quote\"}, \"expected\": {\"charged\": 2100, \"reason\": \"quote\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"charged\": 3999, \"reason\": \"quote\"}, \"expected\": {\"charged\": 3999, \"reason\": \"quote\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.331,"exit_code":1,"observations":[{"actual":{"charged":1165,"reason":"stops"},"check":"regression: recompute inputs","expected":{"charged":1385,"reason":"stops"},"passed":false},{"actual":{"charged":1041,"reason":"distance"},"check":"partial repair probe: recompute inputs","expected":{"charged":1261,"reason":"distance"},"passed":false},{"actual":{"charged":1000,"reason":"destination"},"check":"second regression","expected":{"charged":1125,"reason":"destination"},"passed":false},{"actual":{"charged":2100,"reason":"quote"},"check":"normal control 1","expected":{"charged":2100,"reason":"quote"},"passed":true},{"actual":{"charged":2501,"reason":"stops"},"check":"normal control 2","expected":{"charged":2501,"reason":"stops"},"passed":true},{"actual":{"charged":2100,"reason":"quote"},"check":"normal control 3","expected":{"charged":2100,"reason":"quote"},"passed":true},{"actual":{"charged":3999,"reason":"quote"},"check":"normal control 4","expected":{"charged":3999,"reason":"quote"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: recompute inputs\", \"actual\": {\"charged\": 1165, \"reason\": \"stops\"}, \"expected\": {\"charged\": 1385, \"reason\": \"stops\"}, \"passed\": false}, {\"check\": \"partial repair probe: recompute inputs\", \"actual\": {\"charged\": 1041, \"reason\": \"distance\"}, \"expected\": {\"charged\": 1261, \"reason\": \"distance\"}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"charged\": 1000, \"reason\": \"destination\"}, \"expected\": {\"charged\": 1125, \"reason\": \"destination\"}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"charged\": 2100, \"reason\": \"quote\"}, \"expected\": {\"charged\": 2100, \"reason\": \"quote\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"charged\": 2501, \"reason\": \"stops\"}, \"expected\": {\"charged\": 2501, \"reason\": \"stops\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"charged\": 2100, \"reason\": \"quote\"}, \"expected\": {\"charged\": 2100, \"reason\": \"quote\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"charged\": 3999, \"reason\": \"quote\"}, \"expected\": {\"charged\": 3999, \"reason\": \"quote\"}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.296,"exit_code":0,"observations":[{"actual":{"charged":1385,"reason":"stops"},"check":"regression: recompute inputs","expected":{"charged":1385,"reason":"stops"},"passed":true},{"actual":{"charged":1261,"reason":"distance"},"check":"partial repair probe: recompute inputs","expected":{"charged":1261,"reason":"distance"},"passed":true},{"actual":{"charged":1125,"reason":"destination"},"check":"second regression","expected":{"charged":1125,"reason":"destination"},"passed":true},{"actual":{"charged":2100,"reason":"quote"},"check":"normal control 1","expected":{"charged":2100,"reason":"quote"},"passed":true},{"actual":{"charged":2501,"reason":"stops"},"check":"normal control 2","expected":{"charged":2501,"reason":"stops"},"passed":true},{"actual":{"charged":2100,"reason":"quote"},"check":"normal control 3","expected":{"charged":2100,"reason":"quote"},"passed":true},{"actual":{"charged":3999,"reason":"quote"},"check":"normal control 4","expected":{"charged":3999,"reason":"quote"},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: recompute inputs\", \"actual\": {\"charged\": 1385, \"reason\": \"stops\"}, \"expected\": {\"charged\": 1385, \"reason\": \"stops\"}, \"passed\": true}, {\"check\": \"partial repair probe: recompute inputs\", \"actual\": {\"charged\": 1261, \"reason\": \"distance\"}, \"expected\": {\"charged\": 1261, \"reason\": \"distance\"}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"charged\": 1125, \"reason\": \"destination\"}, \"expected\": {\"charged\": 1125, \"reason\": \"destination\"}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"charged\": 2100, \"reason\": \"quote\"}, \"expected\": {\"charged\": 2100, \"reason\": \"quote\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"charged\": 2501, \"reason\": \"stops\"}, \"expected\": {\"charged\": 2501, \"reason\": \"stops\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"charged\": 2100, \"reason\": \"quote\"}, \"expected\": {\"charged\": 2100, \"reason\": \"quote\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"charged\": 3999, \"reason\": \"quote\"}, \"expected\": {\"charged\": 3999, \"reason\": \"quote\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}