Reconcile a laundromat's machine payments against its cycle log and work out refunds owed and takings
Exact prompt
# Reconcile a laundromat's machine payments against its cycle log and work out refunds owed and takings Inputs: `machines.csv` (machine_id, kind, price), `payments.csv` (pay_id, ts, machine_id, amount, method), `cycles.csv` (cycle_id, machine_id, start, minutes, end_reason), `counter-refunds.csv` (refund_id, pay_id, amount) and `period.json` (period_start, period_end, both dates included). Timestamps are the shop's local time, `YYYY-MM-DD HH:MM:SS`. All machines, customers and payments are synthetic; amounts are in dollars. These rules are the shop's; where `attendant-notes.txt` disagrees, the rules win. Rules: - Matching: take the payments in ts order (then pay_id order). Each payment funds the earliest cycle on the same machine that starts at or after the payment's ts and no more than 5 minutes (300 seconds) after it, and that no earlier payment has already funded. A payment with no such cycle funds nothing; a cycle no payment funds is unpaid. - Refunds owed: a payment is owed back in full when it funds nothing, or when the cycle it funds has end_reason `power_cut`. A cycle that ended `door_opened` was stopped by the customer and is not refunded. A payment that already has a row in counter-refunds.csv is not owed again. - Faulty machines: a machine is flagged when it has 2 or more unpaid cycles in the period. - Takings: a payment's takings are its amount, minus any counter refund paid against it, minus the amount if it is owed back. Takings by machine and by day (the payment's ts date) are the sums of those takings. - Write `out/reconciliation.json`: `{"refunds_owed": [<sorted pay_ids>], "refunds_owed_total": <dollars>, "unpaid_cycles": [<sorted cycle_ids>], "faulty_machines": [<sorted machine_ids>], "takings_by_machine": {"<machine_id>": <dollars>, ...}, "takings_by_day": {"<YYYY-MM-DD>": <dollars>, ...}}`. - Roll-ups: Machines in machines.csv with no payments are included at 0. Days in the period with no payments are included at 0. ## 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.
Match a week of a synthetic self-service laundromat's card and coin payments to the machines' cycle log under a stated rule: each payment funds the earliest unfunded cycle on that machine starting within five minutes. Work out which payments are owed back (nothing started, or a power cut), which cycles ran unpaid, which machines look faulty, and net takings per machine and per day. A payment exactly five minutes ahead, a double payment already refunded at the counter and cycles stopped by the customer are decoys. The prompt says idle machines and closed days are listed at 0. Attendant notes get the refund, matching and roll-up 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: refunds_owed refunds_owed_total unpaid_cycles faulty_machines takings_by_machine takings_by_day
Best model for this task so far: Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) (success, $0.0056, 19s).
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.22 | 33s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-26 | |
| AClaude Haiku 5.5default · thinking on | $0.0056 | 19s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-26 | |
| AClaude Sonnet 5.5default · thinking on | $0.06 | 17s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-26 |
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.