{"abstract":"A 25.00 credit code on a 7.00 ride shows -18.00 due.","category":"Ride-hailing fare and surge pricing","checks":7,"contract":"Validate a promo in order: expired if now_day is after expires_day (the expiry day itself is valid), exhausted if no uses remain, not_first if first-ride-only and the rider has prior rides, min_fare if the fare (cents) is below min_fare. A valid pct promo takes value% of the fare (floored), capped at cap cents when cap is not None (a cap of 0 means a zero discount); a flat promo takes value but never more than the fare. Ride credits then cover up to the remaining fare. Return discount, credit used, amount due and reason.","contract_signature":"promo, ride, now_day","evaluation_group":"w2-ride-hailing-fare-surge-promo-and-credits","failed_approach":"Leaving one cent due still misstates a fully covered ride.","family":"w2-ride-hailing-fare-surge-promo-and-credits-flat-promo-above-fare","id":"FA-85596","implementations":{"attempt":{"sha256":"cfbada1ab0f3a19420ea492213b5de170be7913a72b6614bdccd6ed0886bc231","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(promo, ride, now_day):\n    reason = None\n    if now_day > promo['expires_day']:\n        reason = 'expired'\n    elif promo['uses_left'] <= 0:\n        reason = 'exhausted'\n    elif promo['first_ride_only'] and ride['rider_rides'] > 0:\n        reason = 'not_first'\n    elif ride['fare'] < promo['min_fare']:\n        reason = 'min_fare'\n    disc = 0\n    if reason is None:\n        if promo['kind'] == 'pct':\n            disc = ride['fare'] * promo['value'] // 100\n            if promo['cap'] is not None:\n                disc = min(disc, promo['cap'])\n        else:\n            disc = min(promo['value'], ride['fare'] - 1)\n    credit = min(ride['credits'], ride['fare'] - disc)\n    return {'discount': disc, 'credit_used': credit, 'due': ride['fare'] - disc - credit, 'reason': reason}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: flat promo above fare',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 2400, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 700, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 700, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1099, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 1000, 'due': 99, 'reason': None}),\n  ('normal control 2',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'not_first'})],\n [('regression: flat promo above fare',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 1099, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 0, 'fare': 700, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 175, 'due': 525, 'reason': None}),\n  ('normal control 2',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 500},\n    {'credits': 250, 'fare': 700, 'rider_rides': 0}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 450, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 5}, 100],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'not_first'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'exhausted'})],\n [('regression: flat promo above fare',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1342, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 1342, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 5000, 'fare': 821, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 821, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 2400, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 500, 'due': 349, 'reason': None}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1394, 'rider_rides': 0}, 99],\n   {'credit_used': 394, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('normal control 3',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 250, 'fare': 1605, 'rider_rides': 1}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 1355, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 250, 'fare': 700, 'rider_rides': 5}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 450, 'reason': 'expired'})],\n [('regression: flat promo above fare',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 2400, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1262, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 1262, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'exhausted'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 250, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 250, 'discount': 262, 'due': 538, 'reason': None}),\n  ('normal control 3',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 825, 'discount': 274, 'due': 0, 'reason': None})],\n [('regression: flat promo above fare',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 1099, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 1050, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'not_first'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 250, 'fare': 2400, 'rider_rides': 5}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 2150, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 5}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 250, 'fare': 855, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 605, 'reason': 'exhausted'})]]\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":"c9273bc4bae32edee5da579a6f9e68d5c65728d17846354e84bd80271eb4bb21","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(promo, ride, now_day):\n    reason = None\n    if now_day > promo['expires_day']:\n        reason = 'expired'\n    elif promo['uses_left'] <= 0:\n        reason = 'exhausted'\n    elif promo['first_ride_only'] and ride['rider_rides'] > 0:\n        reason = 'not_first'\n    elif ride['fare'] < promo['min_fare']:\n        reason = 'min_fare'\n    disc = 0\n    if reason is None:\n        if promo['kind'] == 'pct':\n            disc = ride['fare'] * promo['value'] // 100\n            if promo['cap'] is not None:\n                disc = min(disc, promo['cap'])\n        else:\n            disc = promo['value']\n    credit = min(ride['credits'], ride['fare'] - disc)\n    return {'discount': disc, 'credit_used': credit, 'due': ride['fare'] - disc - credit, 'reason': reason}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: flat promo above fare',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 2400, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 700, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 700, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1099, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 1000, 'due': 99, 'reason': None}),\n  ('normal control 2',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'not_first'})],\n [('regression: flat promo above fare',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 1099, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 0, 'fare': 700, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 175, 'due': 525, 'reason': None}),\n  ('normal control 2',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 500},\n    {'credits': 250, 'fare': 700, 'rider_rides': 0}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 450, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 5}, 100],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'not_first'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'exhausted'})],\n [('regression: flat promo above fare',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1342, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 1342, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 5000, 'fare': 821, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 821, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 2400, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 500, 'due': 349, 'reason': None}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1394, 'rider_rides': 0}, 99],\n   {'credit_used': 394, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('normal control 3',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 250, 'fare': 1605, 'rider_rides': 1}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 1355, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 250, 'fare': 700, 'rider_rides': 5}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 450, 'reason': 'expired'})],\n [('regression: flat promo above fare',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 2400, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1262, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 1262, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'exhausted'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 250, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 250, 'discount': 262, 'due': 538, 'reason': None}),\n  ('normal control 3',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 825, 'discount': 274, 'due': 0, 'reason': None})],\n [('regression: flat promo above fare',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 1099, 'due': 0, 'reason': None}),\n  ('partial repair probe: flat promo above fare',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 1050, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'not_first'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 250, 'fare': 2400, 'rider_rides': 5}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 2150, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 5}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 250, 'fare': 855, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 605, 'reason': 'exhausted'})]]\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-promo-and-credits-flat-promo-above-fare","generated_at":"2026-09-29T14:50:41.838948+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 flat discount is not limited to the fare.","sha256":"b10ecd194a659fafe6c247f195fed9370088b9ec1670b4c587cf062686e06766","title":"Flat promo larger than the fare creates negative amount due · 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.658,"exit_code":1,"observations":[{"actual":{"credit_used":0,"discount":2399,"due":1,"reason":null},"check":"regression: flat promo above fare","expected":{"credit_used":0,"discount":2400,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":0,"discount":699,"due":1,"reason":null},"check":"partial repair probe: flat promo above fare","expected":{"credit_used":0,"discount":700,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":0,"discount":1098,"due":1,"reason":null},"check":"second regression","expected":{"credit_used":0,"discount":1099,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":0,"discount":1000,"due":99,"reason":null},"check":"normal control 1","expected":{"credit_used":0,"discount":1000,"due":99,"reason":null},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":1000,"reason":"exhausted"},"check":"normal control 2","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"exhausted"},"passed":true},{"actual":{"credit_used":250,"discount":0,"due":849,"reason":"expired"},"check":"normal control 3","expected":{"credit_used":250,"discount":0,"due":849,"reason":"expired"},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":1000,"reason":"not_first"},"check":"normal control 4","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"not_first"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: flat promo above fare\", \"actual\": {\"discount\": 2399, \"credit_used\": 0, \"due\": 1, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 2400, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"partial repair probe: flat promo above fare\", \"actual\": {\"discount\": 699, \"credit_used\": 0, \"due\": 1, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 700, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"discount\": 1098, \"credit_used\": 0, \"due\": 1, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 1099, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 1000, \"credit_used\": 0, \"due\": 99, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 1000, \"due\": 99, \"reason\": null}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1000, \"reason\": \"exhausted\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"exhausted\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 0, \"credit_used\": 250, \"due\": 849, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 250, \"discount\": 0, \"due\": 849, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1000, \"reason\": \"not_first\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"not_first\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.924,"exit_code":1,"observations":[{"actual":{"credit_used":-100,"discount":2500,"due":0,"reason":null},"check":"regression: flat promo above fare","expected":{"credit_used":0,"discount":2400,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":-1800,"discount":2500,"due":0,"reason":null},"check":"partial repair probe: flat promo above fare","expected":{"credit_used":0,"discount":700,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":-1401,"discount":2500,"due":0,"reason":null},"check":"second regression","expected":{"credit_used":0,"discount":1099,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":0,"discount":1000,"due":99,"reason":null},"check":"normal control 1","expected":{"credit_used":0,"discount":1000,"due":99,"reason":null},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":1000,"reason":"exhausted"},"check":"normal control 2","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"exhausted"},"passed":true},{"actual":{"credit_used":250,"discount":0,"due":849,"reason":"expired"},"check":"normal control 3","expected":{"credit_used":250,"discount":0,"due":849,"reason":"expired"},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":1000,"reason":"not_first"},"check":"normal control 4","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"not_first"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: flat promo above fare\", \"actual\": {\"discount\": 2500, \"credit_used\": -100, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 2400, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"partial repair probe: flat promo above fare\", \"actual\": {\"discount\": 2500, \"credit_used\": -1800, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 700, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"discount\": 2500, \"credit_used\": -1401, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 1099, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 1000, \"credit_used\": 0, \"due\": 99, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 1000, \"due\": 99, \"reason\": null}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1000, \"reason\": \"exhausted\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"exhausted\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 0, \"credit_used\": 250, \"due\": 849, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 250, \"discount\": 0, \"due\": 849, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1000, \"reason\": \"not_first\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"not_first\"}, \"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."}}