Skip to content

Final standings with tie-breaks for a club Swiss tournament (Buchholz Cut-1 with virtual opponents, Sonneborn-Berger, direct encounter)

Exact prompt

# Final standings with tie-breaks for a club Swiss tournament `players.csv` (name, rating) and `results.csv` (round, white, black, result; rows in any order) hold a finished event. Write `standings.py` (Python 3 stdlib only) that, run as `python standings.py` in a directory with those two files, writes `standings.csv`. We also run it on other events, so do not hard-code anything. ## Results 1. `result` is `1-0`, `0-1`, `1/2-1/2` (games played over the board), `+-` / `-+` (forfeit: white / black gets 1 point, the other 0; **not** played over the board), or, with `black` empty, `BYE` (white gets 1 point) or `HALF` (white gets 1/2). A player with no row in a round got 0 points that round. R = the highest round number in the file. 2. **Points** = sum of points from all rows. ## Tie-breaks (higher is better at every step) 3. **Buchholz Cut-1 (`bh_cut1`)**: for each round 1..R take a contribution: the opponent's final points if the player played that round **over the board**, otherwise (bye, half bye, forfeit win or loss, absent) the player's **own** final points. Sum all R contributions and subtract the single smallest one. 4. **Sonneborn-Berger (`sb`)**: sum over games played over the board of opponent's final points x points the player scored in that game (1, 1/2 or 0). Unplayed rounds add nothing. 5. Rank by points, then bh_cut1, then sb. 6. **Direct encounter**: players still equal on all of points, bh_cut1 and sb form a group. If the group has 2+ players **and every pair in it played each other over the board** (in some round), order them by points scored in over-the-board games against other group members. Otherwise this step does nothing for the group. 7. Remaining ties: more over-the-board wins (forfeit wins do not count), then higher rating, then name (ascending, plain string order). 8. Use exact arithmetic (all values are multiples of 1/4). ## Output 9. `standings.csv`: header `rank,name,points,bh_cut1,sb,wins`; ranks 1..n without gaps (every player gets a distinct rank); `points` and `bh_cut1` with 1 decimal, `sb` with 2 decimals, `wins` = over-the-board wins as an integer. Every player in `players.csv` is listed. ## Scoring Hidden checks (partial credit = fraction passed; all must pass), each comparing `standings.csv` exactly: `fixture_exact` (this directory's files), `forfeits_and_byes` (1-2, 7), `buchholz_virtual` (3), `sonneborn_berger` (4), `direct_encounter` (6), `final_tiebreaks` (7), `fresh_event_exact` (a freshly generated event). Each run has a 30-second limit.

Forfeits count for points but not for tie-breaks, unplayed rounds use the player's own score, Cut-1 drops one contribution, direct encounter applies only when every pair in a tie group met over the board; hand-made events isolate each rule. 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: 1. fixture_exact 2. forfeits_and_byes 3. buchholz_virtual 4. sonneborn_berger 5. direct_encounter 6. final_tiebreaks 7. fresh_event_exact

Best model for this task so far: Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) (success, $0.0086, 40s).

Run this on another model

All runs (4)

100% pass rate across 4 eligible runs: 4 pass, 0 partial, 0 fail. Partial and failed runs are listed below with everything else.ⓘ

Runs for this use case
ModelCostTimeStep-insⓘAutonomyOutcomeTrustⓘDateCompare
OGPT-6.1 Soldefault · thinking on$0.0557s0Fully autonomouspassTrust 80%2026-10-22
AClaude Haiku 5.5default · thinking on$0.008640s0Fully autonomouspassTrust 80%2026-10-20
AClaude Opus 5.5default · thinking on$0.1732s0Fully autonomouspassTrust 80%2026-10-20
AClaude Sonnet 5.5default · thinking on$0.0617s0Fully autonomouspassTrust 80%2026-10-20

Embed this result

A live badge for this use case. It links back here and updates as new runs are published.

UseCaseRank badge for Final standings with tie-breaks for a club Swiss tournament (Buchholz Cut-1 with virtual opponents, Sonneborn-Berger, direct encounter)

Get new runs and ranking changes weekly

Which models got better or cheaper on real tasks like this one.