Decide which ride offers a driver should accept from their own trip history, costs and stated rules
Exact prompt
# Decide which ride offers a driver should accept from their own trip history, costs and stated rules Inputs: `trips.csv` (the driver's own past trips: trip_id, date, pickup_min, trip_min, pickup_miles, trip_miles, fare, tip), `offers.json` (tonight's incoming offers in the order they arrive: id, offered_at HH:MM, pickup_min, pickup_miles, trip_min, trip_miles, fare, surge, dropoff_zone) and `driver-rules.json` (cost_per_mile, min_rate_pct, max_pickup_miles, surge_relax_at, surge_extra_pickup_miles, min_net_per_mile, shift_end HH:MM on the same evening, possibly 24:00, end_window_min, home_zones). All trips, offers and places are synthetic; amounts are in dollars. These are the driver's own rules; where `forum-tips.txt` disagrees, the rules win. Rules: - Baseline rate: from trips.csv, (sum of fare + tip − cost_per_mile × sum of pickup_miles + trip_miles) ÷ (sum of pickup_min + trip_min ÷ 60), rounded half-up to the cent. The hourly bar is baseline rate × min_rate_pct ÷ 100, rounded half-up to the cent. - Offer money: gross = fare × surge, rounded half-up to the cent. Net = gross − cost_per_mile × (pickup_miles + trip_miles), rounded half-up to the cent. Net per hour = net ÷ ((pickup_min + trip_min) ÷ 60) and net per mile = net ÷ (pickup_miles + trip_miles), each rounded half-up to the cent. Compare the rounded values. - Decide each offer in arrival order and give the first reason that applies: busy (it arrives before the previously accepted trip ends; a trip ends at offered_at + pickup_min + trip_min), past_shift_end (it would end after shift_end), end_of_shift_zone (it would end at or after shift_end − end_window_min minutes, and dropoff_zone is not in home_zones), deadhead (pickup_miles is above max_pickup_miles, or above max_pickup_miles + surge_extra_pickup_miles when surge is at least surge_relax_at), per_hour (net per hour is below the hourly bar), per_mile (net per mile is below min_net_per_mile). If none applies, accept with reason accept. - Write `out/decisions.json`: `{"baseline_rate": <dollars per hour>, "hourly_bar": <dollars per hour>, "offers": {"<id>": {"decision": "accept"|"decline", "reason": "<reason>", "net": <dollars>, "net_per_hour": <dollars>}, ...}, "accepted": [<ids in arrival order>], "accepted_net_total": <dollars>}`. ## How this run works - Work on your own: nobody will answer questions in this task, and writing to `ask/` counts against the run. - Write only under `out/`. Create `out/` if it is missing. Inputs are synthetic; don't fetch anything from the network. - Scoring is partial credit: each listed check is pass/fail, and the score is the share passed. Numbers are compared to within 0.005 unless the task says otherwise.
Screen a synthetic evening of ride offers for a driver. The driver's own baseline hourly rate comes from their past trips after per-mile costs, including the unpaid drive to each pickup. Each offer is priced with surge and costs, then accepted or declined by the driver's rules in order: already busy, past the shift end, ending near the shift end outside home zones, too far to the pickup (relaxed under high surge), below the hourly bar, below the per-mile floor. A forum-tips file gets the costs, stacking and rate rules wrong. Original benchmark task written for usecaserank.com (not based on a specific public post). Headless, offline run on a reproducible fixture. Each run's notes say how its cost was measured (estimates are marked).
Success criteria: baseline_rate offer_money decisions accepted_total
Best model for this task so far: Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) (success, $0.0049, 25s).
All runs (3)
100% pass rate across 3 eligible runs: 3 pass, 0 partial, 0 fail. Partial and failed runs are listed below with everything else.ⓘ
| Model | Cost | Time | Step-insⓘ | Autonomy | Outcome | Trustⓘ | Date | Compare |
|---|---|---|---|---|---|---|---|---|
| AClaude Opus 5.5default · thinking on | $0.15 | 27s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-25 | |
| AClaude Haiku 5.5default · thinking on | $0.0049 | 25s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-25 | |
| AClaude Sonnet 5.5default · thinking on | $0.06 | 12s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-25 |
Embed this result
A live badge for this use case. It links back here and updates as new runs are published.
Get new runs and ranking changes weekly
Which models got better or cheaper on real tasks like this one.