Skip to content

Work out a tax year's realised gains with FIFO lots, a stock split, cancelled trades, fees and euro-priced shares

Exact prompt

# Realised gains for the 2026 tax year Inputs: `trades.csv` (every buy, sell and cancellation since the account opened, in no order), `splits.csv`, `fx.csv` (USD per EUR on each EUR trade date) and `request.json`. Report realised gains for sales in the tax year, by symbol, matching each sale to the oldest shares still held (FIFO). - A row with side `cancel` voids the trade named in its `cancels` column; the voided trade never happened. - Sales before the tax year still use up the oldest shares, but their gains aren't reported. - A split with ratio `2:1` doubles the shares held before its effective date and halves their per-share cost; total cost is unchanged. Quantities on trades after the split are already in post-split shares. - Cost basis includes the buy fee; proceeds are net of the sell fee. Fees are in the trade's currency. - Convert EUR trades to USD at that trade date's rate in `fx.csv`, for both cost and proceeds. - Shares held 365 days or fewer are short term; more than 365 days is long term. Holding days = sale date minus buy date. When one sale uses shares from several lots, split its proceeds across them in proportion to the shares. - Work exactly; round only the reported figures to cents, half-up. Write `out/gains.json`: `{"gain_by_symbol": {"<symbol>": <gain, negative for a loss>, ... every symbol with a sale in the tax year}, "short_term_total": <amount>, "long_term_total": <amount>}`. ## 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 25-50 shuffled trades across 4-6 symbols to FIFO lots and report the tax year's realised gains, split into short and long term. Earlier-year sales use up lots without being reported, one symbol has a 2:1 split, one buy was later cancelled, fees adjust basis and proceeds, and some shares trade in euros at per-day rates. Average cost, keeping the cancelled buy, or ignoring fees and FX each gives different gains. 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: gain_by_symbol short_term long_term costs_fx_and_cancels

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

Run this on another model

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.ⓘ

Runs for this use case
ModelCostTimeStep-insⓘAutonomyOutcomeTrustⓘDateCompare
AClaude Opus 5.5default · thinking on$0.1424s0Fully autonomouspassTrust 80%2026-10-21
AClaude Haiku 5.5default · thinking on$0.0146s0Fully autonomouspassTrust 80%2026-10-21
AClaude Sonnet 5.5default · thinking on$0.0725s0Fully autonomouspassTrust 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.

UseCaseRank badge for Work out a tax year's realised gains with FIFO lots, a stock split, cancelled trades, fees and euro-priced shares

Get new runs and ranking changes weekly

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