FA-85446 / Ride-hailing fare and surge pricing / Open access
Rider charged when the driver cancels · case 01
Riders receive cancellation fees for trips the driver cancelled.
ROOT CAUSE
The driver-cancel exemption is missing.
VERIFIED REPAIR
Return no charge for every driver cancellation.
Unsuccessful approach: Exempting driver cancels only before arrival still charges riders when the driver cancels at the curb.
Case contract
Decide a cancellation charge [cents, reason]. Driver cancellations are free. A rider cancelling at or after driver arrival pays the no-show fee if at least noshow_wait seconds passed since arrival, else the regular fee. Before arrival, cancelling within free_window seconds of acceptance is free; it is also free if the ETA grew by more than late_margin since acceptance, or if the driver is more than late_margin past the ETA promised at acceptance; otherwise the regular fee applies.
Why this case matters
Ride-hailing prices are computed per trip at scale; ordering, unit and boundary slips become systematic over- or under-charging.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(ev, policy):
if ev['arrived_t'] is not None and ev['cancel_t'] >= ev['arrived_t']:
if ev['cancel_t'] - ev['arrived_t'] >= policy['noshow_wait']:
return [policy['noshow_fee'], 'no_show']
return [policy['fee'], 'after_arrival']
if ev['cancel_t'] - ev['accept_t'] <= policy['free_window']:
return [0, 'free_window']
if ev['eta_latest'] - ev['eta_at_accept'] > policy['late_margin']:
return [0, 'driver_late']
if ev['cancel_t'] > ev['accept_t'] + ev['eta_at_accept'] + policy['late_margin']:
return [0, 'driver_late']
return [policy['fee'], 'late_cancel']
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1440,
'cancel_by': 'driver',
'cancel_t': 1740,
'eta_at_accept': 240,
'eta_latest': 541},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1240,
'cancel_by': 'driver',
'cancel_t': 1541,
'eta_at_accept': 240,
'eta_latest': 120},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 2200,
'eta_at_accept': 240,
'eta_latest': -160},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'rider',
'cancel_t': 1979,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1121,
'eta_at_accept': 900,
'eta_latest': 780},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'late_cancel']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 2200,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'late_cancel']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': 1900,
'cancel_by': 'rider',
'cancel_t': 2201,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1120,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1440,
'cancel_by': 'driver',
'cancel_t': 1060,
'eta_at_accept': 240,
'eta_latest': 120},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1121,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1781,
'eta_at_accept': 480,
'eta_latest': 781},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': 1300,
'cancel_by': 'rider',
'cancel_t': 1600,
'eta_at_accept': 300,
'eta_latest': 900},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'rider',
'cancel_t': 1300,
'eta_at_accept': 480,
'eta_latest': 1080},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'rider',
'cancel_t': 2180,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'driver',
'cancel_t': 1780,
'eta_at_accept': 480,
'eta_latest': 80},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 2100,
'cancel_by': 'driver',
'cancel_t': 2401,
'eta_at_accept': 900,
'eta_latest': 1201},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1600,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1900,
'cancel_by': 'rider',
'cancel_t': 1900,
'eta_at_accept': 900,
'eta_latest': 780},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1980,
'eta_at_accept': 480,
'eta_latest': 80},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1120,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'free_window']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1300,
'eta_at_accept': 480,
'eta_latest': 781},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1120,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'driver',
'cancel_t': 1600,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1120,
'eta_at_accept': 240,
'eta_latest': 240},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1240,
'cancel_by': 'rider',
'cancel_t': 1340,
'eta_at_accept': 240,
'eta_latest': 840},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': 2100,
'cancel_by': 'rider',
'cancel_t': 2399,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1780,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1300,
'eta_at_accept': 300,
'eta_latest': 601},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 2100,
'cancel_by': 'driver',
'cancel_t': 2200,
'eta_at_accept': 900,
'eta_latest': 1200},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1240,
'cancel_by': 'driver',
'cancel_t': 1060,
'eta_at_accept': 240,
'eta_latest': 541},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1900,
'eta_at_accept': 240,
'eta_latest': 541},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 2200,
'eta_at_accept': 300,
'eta_latest': 601},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1120,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'free_window']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1600,
'eta_at_accept': 300,
'eta_latest': 900},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1900,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late'])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: driver-initiated cancel | [700, 'no_show'] | [0, 'driver'] | Failed |
| partial repair probe: driver-initiated cancel | [700, 'no_show'] | [0, 'driver'] | Failed |
| second regression | [0, 'driver_late'] | [0, 'driver'] | Failed |
| normal control 1 | [500, 'after_arrival'] | [500, 'after_arrival'] | Passed |
| normal control 2 | [500, 'late_cancel'] | [500, 'late_cancel'] | Passed |
| normal control 3 | [500, 'late_cancel'] | [500, 'late_cancel'] | Passed |
| normal control 4 | [700, 'no_show'] | [700, 'no_show'] | Passed |
SHA-256 / ce55f21d5fc4a1724d9fbb19718be8aa182c063970d7a6c7947b0080afd7181a
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(ev, policy):
if ev['cancel_by'] == 'driver' and ev['arrived_t'] is None:
return [0, 'driver']
if ev['arrived_t'] is not None and ev['cancel_t'] >= ev['arrived_t']:
if ev['cancel_t'] - ev['arrived_t'] >= policy['noshow_wait']:
return [policy['noshow_fee'], 'no_show']
return [policy['fee'], 'after_arrival']
if ev['cancel_t'] - ev['accept_t'] <= policy['free_window']:
return [0, 'free_window']
if ev['eta_latest'] - ev['eta_at_accept'] > policy['late_margin']:
return [0, 'driver_late']
if ev['cancel_t'] > ev['accept_t'] + ev['eta_at_accept'] + policy['late_margin']:
return [0, 'driver_late']
return [policy['fee'], 'late_cancel']
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1440,
'cancel_by': 'driver',
'cancel_t': 1740,
'eta_at_accept': 240,
'eta_latest': 541},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1240,
'cancel_by': 'driver',
'cancel_t': 1541,
'eta_at_accept': 240,
'eta_latest': 120},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 2200,
'eta_at_accept': 240,
'eta_latest': -160},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'rider',
'cancel_t': 1979,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1121,
'eta_at_accept': 900,
'eta_latest': 780},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'late_cancel']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 2200,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'late_cancel']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': 1900,
'cancel_by': 'rider',
'cancel_t': 2201,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1120,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1440,
'cancel_by': 'driver',
'cancel_t': 1060,
'eta_at_accept': 240,
'eta_latest': 120},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1121,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1781,
'eta_at_accept': 480,
'eta_latest': 781},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': 1300,
'cancel_by': 'rider',
'cancel_t': 1600,
'eta_at_accept': 300,
'eta_latest': 900},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'rider',
'cancel_t': 1300,
'eta_at_accept': 480,
'eta_latest': 1080},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'rider',
'cancel_t': 2180,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'driver',
'cancel_t': 1780,
'eta_at_accept': 480,
'eta_latest': 80},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 2100,
'cancel_by': 'driver',
'cancel_t': 2401,
'eta_at_accept': 900,
'eta_latest': 1201},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1600,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1900,
'cancel_by': 'rider',
'cancel_t': 1900,
'eta_at_accept': 900,
'eta_latest': 780},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1980,
'eta_at_accept': 480,
'eta_latest': 80},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1120,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'free_window']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1300,
'eta_at_accept': 480,
'eta_latest': 781},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1120,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'driver',
'cancel_t': 1600,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1120,
'eta_at_accept': 240,
'eta_latest': 240},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1240,
'cancel_by': 'rider',
'cancel_t': 1340,
'eta_at_accept': 240,
'eta_latest': 840},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': 2100,
'cancel_by': 'rider',
'cancel_t': 2399,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1780,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1300,
'eta_at_accept': 300,
'eta_latest': 601},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 2100,
'cancel_by': 'driver',
'cancel_t': 2200,
'eta_at_accept': 900,
'eta_latest': 1200},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1240,
'cancel_by': 'driver',
'cancel_t': 1060,
'eta_at_accept': 240,
'eta_latest': 541},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1900,
'eta_at_accept': 240,
'eta_latest': 541},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 2200,
'eta_at_accept': 300,
'eta_latest': 601},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1120,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'free_window']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1600,
'eta_at_accept': 300,
'eta_latest': 900},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1900,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late'])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: driver-initiated cancel | [700, 'no_show'] | [0, 'driver'] | Failed |
| partial repair probe: driver-initiated cancel | [700, 'no_show'] | [0, 'driver'] | Failed |
| second regression | [0, 'driver'] | [0, 'driver'] | Passed |
| normal control 1 | [500, 'after_arrival'] | [500, 'after_arrival'] | Passed |
| normal control 2 | [500, 'late_cancel'] | [500, 'late_cancel'] | Passed |
| normal control 3 | [500, 'late_cancel'] | [500, 'late_cancel'] | Passed |
| normal control 4 | [700, 'no_show'] | [700, 'no_show'] | Passed |
SHA-256 / 158556d1e6cc13c7a60d1e81780db6f36637b91022510f74a523da065d5909ef
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(ev, policy):
if ev['cancel_by'] == 'driver':
return [0, 'driver']
if ev['arrived_t'] is not None and ev['cancel_t'] >= ev['arrived_t']:
if ev['cancel_t'] - ev['arrived_t'] >= policy['noshow_wait']:
return [policy['noshow_fee'], 'no_show']
return [policy['fee'], 'after_arrival']
if ev['cancel_t'] - ev['accept_t'] <= policy['free_window']:
return [0, 'free_window']
if ev['eta_latest'] - ev['eta_at_accept'] > policy['late_margin']:
return [0, 'driver_late']
if ev['cancel_t'] > ev['accept_t'] + ev['eta_at_accept'] + policy['late_margin']:
return [0, 'driver_late']
return [policy['fee'], 'late_cancel']
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1440,
'cancel_by': 'driver',
'cancel_t': 1740,
'eta_at_accept': 240,
'eta_latest': 541},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1240,
'cancel_by': 'driver',
'cancel_t': 1541,
'eta_at_accept': 240,
'eta_latest': 120},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 2200,
'eta_at_accept': 240,
'eta_latest': -160},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'rider',
'cancel_t': 1979,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1121,
'eta_at_accept': 900,
'eta_latest': 780},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'late_cancel']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 2200,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'late_cancel']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': 1900,
'cancel_by': 'rider',
'cancel_t': 2201,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1120,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1440,
'cancel_by': 'driver',
'cancel_t': 1060,
'eta_at_accept': 240,
'eta_latest': 120},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1121,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1781,
'eta_at_accept': 480,
'eta_latest': 781},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': 1300,
'cancel_by': 'rider',
'cancel_t': 1600,
'eta_at_accept': 300,
'eta_latest': 900},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'rider',
'cancel_t': 1300,
'eta_at_accept': 480,
'eta_latest': 1080},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'rider',
'cancel_t': 2180,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'driver',
'cancel_t': 1780,
'eta_at_accept': 480,
'eta_latest': 80},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 2100,
'cancel_by': 'driver',
'cancel_t': 2401,
'eta_at_accept': 900,
'eta_latest': 1201},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1600,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1900,
'cancel_by': 'rider',
'cancel_t': 1900,
'eta_at_accept': 900,
'eta_latest': 780},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1980,
'eta_at_accept': 480,
'eta_latest': 80},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1120,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'free_window']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1300,
'eta_at_accept': 480,
'eta_latest': 781},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1120,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1680,
'cancel_by': 'driver',
'cancel_t': 1600,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1120,
'eta_at_accept': 240,
'eta_latest': 240},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': 1240,
'cancel_by': 'rider',
'cancel_t': 1340,
'eta_at_accept': 240,
'eta_latest': 840},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': 2100,
'cancel_by': 'rider',
'cancel_t': 2399,
'eta_at_accept': 900,
'eta_latest': 500},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[500, 'after_arrival']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': 1480,
'cancel_by': 'rider',
'cancel_t': 1780,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[700, 'no_show']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1300,
'eta_at_accept': 300,
'eta_latest': 601},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late'])],
[('regression: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 2100,
'cancel_by': 'driver',
'cancel_t': 2200,
'eta_at_accept': 900,
'eta_latest': 1200},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('partial repair probe: driver-initiated cancel',
[{'accept_t': 1000,
'arrived_t': 1240,
'cancel_by': 'driver',
'cancel_t': 1060,
'eta_at_accept': 240,
'eta_latest': 541},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('second regression',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'driver',
'cancel_t': 1900,
'eta_at_accept': 240,
'eta_latest': 541},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver']),
('normal control 1',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 2200,
'eta_at_accept': 300,
'eta_latest': 601},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late']),
('normal control 2',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1120,
'eta_at_accept': 480,
'eta_latest': 480},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'free_window']),
('normal control 3',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1600,
'eta_at_accept': 300,
'eta_latest': 900},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late']),
('normal control 4',
[{'accept_t': 1000,
'arrived_t': None,
'cancel_by': 'rider',
'cancel_t': 1900,
'eta_at_accept': 300,
'eta_latest': 300},
{'fee': 500, 'free_window': 120, 'late_margin': 300, 'noshow_fee': 700, 'noshow_wait': 300}],
[0, 'driver_late'])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: driver-initiated cancel | [0, 'driver'] | [0, 'driver'] | Passed |
| partial repair probe: driver-initiated cancel | [0, 'driver'] | [0, 'driver'] | Passed |
| second regression | [0, 'driver'] | [0, 'driver'] | Passed |
| normal control 1 | [500, 'after_arrival'] | [500, 'after_arrival'] | Passed |
| normal control 2 | [500, 'late_cancel'] | [500, 'late_cancel'] | Passed |
| normal control 3 | [500, 'late_cancel'] | [500, 'late_cancel'] | Passed |
| normal control 4 | [700, 'no_show'] | [700, 'no_show'] | Passed |
SHA-256 / a568955d3dfadfc655e5a89b914aa8e5bcffd5aaa4113a45a4805ec47aaaeb10
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:50:40.496352+00:00.
Case digest / e3a788d61378c16a1de909763fd31643f05f0a19c3bc7be19208d9f6151db414