Report quarter-end headcount and attrition from an effective-dated HR export with corrections, rehires, future-dated leavers and contractors
Exact prompt
# Quarter-end headcount and attrition from the HR system export Inputs: `job_history.csv` (one row per change to a worker's record: each row is the full state of the record from its effective date) and `request.json` (the reporting date and window). Report headcount and FTE by department as of the reporting date, and voluntary attrition over the trailing 12 months. - A record's state on a date is its row with the latest effective date on or before that date. Rows effective after that date haven't happened yet. - When two rows share an employee and an effective date, the one entered later is a correction and replaces the other. - Count people, not employee ids: someone who left and came back has a new employee id but the same person id. Contractors are not headcount. - Voluntary attrition = voluntary leavers in the window / average of the headcount at the window's start date and at the reporting date x 100. A leaver is a person whose employee record changes to terminated with a voluntary reason and an effective date inside the window (after the start date, on or before the reporting date). A person who left and was rehired within the window still counts as a leaver. Write `out/headcount.json`: `{"headcount_by_dept": {"<dept>": <n>, ...}, "fte_by_dept": {"<dept>": <sum, 2 decimals>, ...}, "total_headcount": <n>, "voluntary_leavers": <n>, "voluntary_attrition_pct": <2 decimals half-up>}`. Leave out departments with no headcount. ## 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.
Reconstruct each worker record as of a reporting date from about 300 shuffled snapshot rows. Same-day corrections (including rescinded terminations) replace earlier entries, terminations dated after the reporting date have not happened, rehired people carry a new employee id, and contractors are mixed in. Taking each id's latest row, ignoring corrections, or counting ids instead of people each gives a different headcount or attrition rate. 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). Folder-restore note: this run's output files under work/out/ were lost in a 1:22 AM ET restore on Oct 21, 2026. The trace, step-in exchanges and output-hash list were checked against the recorded SHA-256 values and match; the hashes of the individual output files inside that list can no longer be recomputed. Measured data unchanged.
Success criteria: headcount fte as_of_and_corrections attrition
Best model for this task so far: Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) (success, $0.01, 37s).
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-21 | |
| AClaude Haiku 5.5default · thinking on | $0.01 | 37s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-21 | |
| AClaude Sonnet 5.5default · thinking on | $0.06 | 15s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-21 |
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.