Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Weekday computed with a Sunday-first convention · case 01
Friday late-night pricing shows up on Saturdays.
Weekday computed with a Sunday-first convention · case 02
Friday late-night pricing shows up on Saturdays.
Weekday computed with a Sunday-first convention · case 03
Friday late-night pricing shows up on Saturdays.
Weekday computed with a Sunday-first convention · case 04
Friday late-night pricing shows up on Saturdays.
Weekday computed with a Sunday-first convention · case 05
Friday late-night pricing shows up on Saturdays.
After-midnight part of a late-night window keyed to the new day · case 01
Friday 1 a.m. gets Thursday-night pricing and Sunday 1 a.m. gets none.
After-midnight part of a late-night window keyed to the new day · case 02
Friday 1 a.m. gets Thursday-night pricing and Sunday 1 a.m. gets none.
After-midnight part of a late-night window keyed to the new day · case 03
Friday 1 a.m. gets Thursday-night pricing and Sunday 1 a.m. gets none.
After-midnight part of a late-night window keyed to the new day · case 04
Friday 1 a.m. gets Thursday-night pricing and Sunday 1 a.m. gets none.
After-midnight part of a late-night window keyed to the new day · case 05
Friday 1 a.m. gets Thursday-night pricing and Sunday 1 a.m. gets none.
Rush window includes its end minute · case 01
Pickups at exactly 10:00 still pay rush pricing.
Rush window includes its end minute · case 02
Pickups at exactly 10:00 still pay rush pricing.
Rush window includes its end minute · case 03
Pickups at exactly 10:00 still pay rush pricing.
Rush window includes its end minute · case 04
Pickups at exactly 10:00 still pay rush pricing.
Rush window includes its end minute · case 05
Pickups at exactly 10:00 still pay rush pricing.
Holiday matched on the UTC date · case 01
In a city ahead of UTC the first hours of the holiday are priced normally.
Holiday matched on the UTC date · case 02
In a city ahead of UTC the first hours of the holiday are priced normally.
Holiday matched on the UTC date · case 03
In a city ahead of UTC the first hours of the holiday are priced normally.
Holiday matched on the UTC date · case 04
In a city ahead of UTC the first hours of the holiday are priced normally.
Holiday matched on the UTC date · case 05
In a city ahead of UTC the first hours of the holiday are priced normally.
Pings billed in arrival order · case 01
Out-of-order uploads zigzag the trace and inflate or reject distance.
Pings billed in arrival order · case 02
Out-of-order uploads zigzag the trace and inflate or reject distance.
Pings billed in arrival order · case 03
Out-of-order uploads zigzag the trace and inflate or reject distance.
Pings billed in arrival order · case 04
Out-of-order uploads zigzag the trace and inflate or reject distance.
Pings billed in arrival order · case 05
Out-of-order uploads zigzag the trace and inflate or reject distance.
Inaccurate duplicate hides a good ping · case 01
A bad fix sharing a timestamp with a good fix causes both to be dropped.
Inaccurate duplicate hides a good ping · case 02
A bad fix sharing a timestamp with a good fix causes both to be dropped.
Inaccurate duplicate hides a good ping · case 03
A bad fix sharing a timestamp with a good fix causes both to be dropped.
Inaccurate duplicate hides a good ping · case 04
A bad fix sharing a timestamp with a good fix causes both to be dropped.
Inaccurate duplicate hides a good ping · case 05
A bad fix sharing a timestamp with a good fix causes both to be dropped.
GPS jump becomes the new anchor · case 01
After a spurious jump, the next genuine segment is measured from the bogus point.
GPS jump becomes the new anchor · case 02
After a spurious jump, the next genuine segment is measured from the bogus point.
GPS jump becomes the new anchor · case 03
After a spurious jump, the next genuine segment is measured from the bogus point.
GPS jump becomes the new anchor · case 04
After a spurious jump, the next genuine segment is measured from the bogus point.
GPS jump becomes the new anchor · case 05
After a spurious jump, the next genuine segment is measured from the bogus point.
Segment leaving a paused point billed · case 01
The first segment after resuming a paused trip is charged.
Segment leaving a paused point billed · case 02
The first segment after resuming a paused trip is charged.
Segment leaving a paused point billed · case 03
The first segment after resuming a paused trip is charged.
Segment leaving a paused point billed · case 04
The first segment after resuming a paused trip is charged.
Segment leaving a paused point billed · case 05
The first segment after resuming a paused trip is charged.
Distance floored once on the trip total · case 01
Trips with many short segments bill a few more meters than the per-segment rule.
Distance floored once on the trip total · case 02
Trips with many short segments bill a few more meters than the per-segment rule.
Distance floored once on the trip total · case 03
Trips with many short segments bill a few more meters than the per-segment rule.
Distance floored once on the trip total · case 04
Trips with many short segments bill a few more meters than the per-segment rule.
Distance floored once on the trip total · case 05
Trips with many short segments bill a few more meters than the per-segment rule.
A single rider with overlap gets the shared discount · case 01
When only one rider meets the overlap threshold, that rider still receives the matched discount.
A single rider with overlap gets the shared discount · case 02
When only one rider meets the overlap threshold, that rider still receives the matched discount.
A single rider with overlap gets the shared discount · case 03
When only one rider meets the overlap threshold, that rider still receives the matched discount.
A single rider with overlap gets the shared discount · case 04
When only one rider meets the overlap threshold, that rider still receives the matched discount.
A single rider with overlap gets the shared discount · case 05
When only one rider meets the overlap threshold, that rider still receives the matched discount.
Exact minimum overlap does not count as matched · case 01
Riders sharing exactly three minutes lose the matched discount.
Exact minimum overlap does not count as matched · case 02
Riders sharing exactly three minutes lose the matched discount.
Exact minimum overlap does not count as matched · case 03
Riders sharing exactly three minutes lose the matched discount.
Exact minimum overlap does not count as matched · case 04
Riders sharing exactly three minutes lose the matched discount.
Exact minimum overlap does not count as matched · case 05
Riders sharing exactly three minutes lose the matched discount.
Shared price rounded up against the rider · case 01
Discounted prices are a cent higher than quoted whenever the discount leaves a fraction.
Shared price rounded up against the rider · case 02
Discounted prices are a cent higher than quoted whenever the discount leaves a fraction.
Shared price rounded up against the rider · case 03
Discounted prices are a cent higher than quoted whenever the discount leaves a fraction.
Shared price rounded up against the rider · case 04
Discounted prices are a cent higher than quoted whenever the discount leaves a fraction.
Shared price rounded up against the rider · case 05
Discounted prices are a cent higher than quoted whenever the discount leaves a fraction.
Unmatched pool riders lose the commitment discount · case 01
Riders who chose pool but were never matched pay the full solo price.
Unmatched pool riders lose the commitment discount · case 02
Riders who chose pool but were never matched pay the full solo price.
Unmatched pool riders lose the commitment discount · case 03
Riders who chose pool but were never matched pay the full solo price.
Unmatched pool riders lose the commitment discount · case 04
Riders who chose pool but were never matched pay the full solo price.
Unmatched pool riders lose the commitment discount · case 05
Riders who chose pool but were never matched pay the full solo price.
Platform commission taken from tips · case 01
Drivers receive only 75% of every tip.
Platform commission taken from tips · case 02
Drivers receive only 75% of every tip.
Platform commission taken from tips · case 03
Drivers receive only 75% of every tip.
Platform commission taken from tips · case 04
Drivers receive only 75% of every tip.
Platform commission taken from tips · case 05
Drivers receive only 75% of every tip.
Tips counted toward the minimum trip pay · case 01
A generous tip silently replaces the platform-funded minimum pay top-up.
Tips counted toward the minimum trip pay · case 02
A generous tip silently replaces the platform-funded minimum pay top-up.
Tips counted toward the minimum trip pay · case 03
A generous tip silently replaces the platform-funded minimum pay top-up.
Tips counted toward the minimum trip pay · case 04
A generous tip silently replaces the platform-funded minimum pay top-up.
Tips counted toward the minimum trip pay · case 05
A generous tip silently replaces the platform-funded minimum pay top-up.
Quest bonus paid on every trip after the threshold · case 01
After the tenth trip each further trip repeats the 10-trip bonus.
Quest bonus paid on every trip after the threshold · case 02
After the tenth trip each further trip repeats the 10-trip bonus.
Quest bonus paid on every trip after the threshold · case 03
After the tenth trip each further trip repeats the 10-trip bonus.
Quest bonus paid on every trip after the threshold · case 04
After the tenth trip each further trip repeats the 10-trip bonus.
Quest bonus paid on every trip after the threshold · case 05
After the tenth trip each further trip repeats the 10-trip bonus.
Booking fee shared with the driver · case 01
Driver pay rises by most of the booking fee on every trip.
Booking fee shared with the driver · case 02
Driver pay rises by most of the booking fee on every trip.
Booking fee shared with the driver · case 03
Driver pay rises by most of the booking fee on every trip.
Booking fee shared with the driver · case 04
Driver pay rises by most of the booking fee on every trip.
Booking fee shared with the driver · case 05
Driver pay rises by most of the booking fee on every trip.
Promo rejected on its expiry day · case 01
Riders using a code on the last valid day are told it expired.
Promo rejected on its expiry day · case 02
Riders using a code on the last valid day are told it expired.
Promo rejected on its expiry day · case 03
Riders using a code on the last valid day are told it expired.
Promo rejected on its expiry day · case 04
Riders using a code on the last valid day are told it expired.
Promo rejected on its expiry day · case 05
Riders using a code on the last valid day are told it expired.
Zero cap treated as uncapped · case 01
A paused campaign with cap 0 still gives full percentage discounts.
Zero cap treated as uncapped · case 02
A paused campaign with cap 0 still gives full percentage discounts.
Zero cap treated as uncapped · case 03
A paused campaign with cap 0 still gives full percentage discounts.
Zero cap treated as uncapped · case 04
A paused campaign with cap 0 still gives full percentage discounts.
Zero cap treated as uncapped · case 05
A paused campaign with cap 0 still gives full percentage discounts.
Flat promo larger than the fare creates negative amount due · case 01
A 25.00 credit code on a 7.00 ride shows -18.00 due.
Flat promo larger than the fare creates negative amount due · case 02
A 25.00 credit code on a 7.00 ride shows -18.00 due.
Flat promo larger than the fare creates negative amount due · case 03
A 25.00 credit code on a 7.00 ride shows -18.00 due.
Flat promo larger than the fare creates negative amount due · case 04
A 25.00 credit code on a 7.00 ride shows -18.00 due.
Flat promo larger than the fare creates negative amount due · case 05
A 25.00 credit code on a 7.00 ride shows -18.00 due.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗