Price a pet-grooming salon's appointments by weight band and coat, with same-day multi-pet discounts, add-ons and matting time
Exact prompt
# Price a pet-grooming salon's appointments by weight band and coat, with same-day multi-pet discounts, add-ons and matting time Inputs: `appointments.csv` (appt_id, pet_id, groomer_id, date, addons, matting_min), `pets.csv` (pet_id, owner_id, name, weight_kg, coat), `owners.csv` (owner_id, name), `groomers.csv` (groomer_id, name) and `prices.json` (bands, coat_pct, addons, matting_per_15, multi_pet_pct). All owners, pets and groomers are synthetic; amounts are in dollars. These rules are the salon's policy; where `front-desk-note.txt` disagrees, the rules win. Rules: - Band: a pet's band is the first entry in bands whose max_kg is at least its weight_kg (null = no limit); base = the band's base plus coat_pct for the pet's coat, rounded half-up to the cent. - Same-day discount: when one owner has two or more appointments on the same date, each of them except the one with that owner's lowest appt_id that date gets multi_pet_pct off its base, rounded half-up to the cent; add-ons and matting are never discounted. - Extras: add-ons is a semicolon-separated list (blank = none), each charged at its addons price; matting is charged at matting_per_15 for each started 15 minutes of matting_min (0 = none); extras = add-ons + matting. - Write `out/grooming.json`: `{"appointments": {"<appt_id>": {"band": "<band>", "base": <dollars>, "discount": <dollars>, "extras": <dollars>, "total": <base − discount + extras>}, ...}, "owners": {"<owner_id>": <sum of the owner's appointment totals>, ...}, "groomers": {"<groomer_id>": <number of appointments>, ...}}`. `appointments` has one entry per row of appointments.csv. - Roll-ups: Owners in owners.csv with no appointments are left out. Groomers in groomers.csv with no appointments 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.
Price a synthetic grooming salon's appointments. Pets fall in weight bands (some weights sit exactly on a band limit), coats add a percent, owners with several pets in on the same day get a discount on all but their first appointment, and add-ons and matting time are extras. The prompt says owners with no appointments are left out and idle groomers are listed at 0. A front-desk note gets the discount, matting 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: size_band same_day_discount extras owner_totals groomer_counts
Best model for this task so far: Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) (success, $0.0050, 17s).
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.14 | 24s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-25 | |
| AClaude Haiku 5.5default · thinking on | $0.0050 | 17s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-25 | |
| AClaude Sonnet 5.5default · thinking on | $0.05 | 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.