Skip to content

Claude Opus 5.5 (effort default (no --effort flag) · thinking on) on Call six A/B tests correctly through traffic-split mismatches, burn-in effects, under-filled arms and guardrail breaches

AClaude Opus 5.5default · thinking on · Claude Code 2.1.299 (headless -p) · cloud · 2026-10-21 · by @bobsiopener

Trust 80%Fully autonomoussuccess · first try
Estimated cost
$0.15
Wall time
22s
Human step-ins
0
Outcome
Pass

Compare with other models on this task →

Summary

Exact prompt

# Make the call on six experiments Inputs: `experiments.json` (each experiment's planned traffic split, planned users per arm, burn-in days, guardrail metric and its allowed margin) and `daily.csv` (users, conversions and guardrail events per experiment, arm and day). Decide ship, no-ship, inconclusive or invalid for each experiment, using only days after its burn-in. - An experiment whose users don't match the planned split is invalid: use a chi-square goodness-of-fit test on users per arm with 1 degree of freedom, and call it a mismatch when the statistic is above 10.828. - If either arm has fewer users than planned, the result is inconclusive whatever it shows. - Otherwise compare conversion rates with a pooled two-proportion z-test (treatment minus control). Above 1.96 is a win, below -1.96 a loss, anything else inconclusive. - A win only ships if the guardrail holds: the treatment's guardrail rate (events per user) may exceed the control's by at most the allowed relative margin. A win that breaks the guardrail is a no-ship, and so is a loss. Write `out/decisions.json`: `{"decision": {"<experiment_id>": "ship|no-ship|inconclusive|invalid", ...}, "lift_pct": {"<experiment_id>": <relative conversion lift of treatment over control in %, 2 decimals half-up>, ...}, "invalid": [<ids, sorted>]}`. Give `lift_pct` for every experiment that isn't invalid. ## 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.

Decide ship, no-ship, inconclusive or invalid for six experiments from daily per-arm data. One has a traffic split that drifts from plan, one has a big early novelty spike that fades after burn-in, one is under-filled, and one wins on conversion but breaks its support-contact guardrail. Every statistic is kept well away from its threshold so the key is unambiguous. 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: decisions lifts invalid guardrail_and_power

Setup notes: Batch 19 case u05-experiment-readout-decisions (offline, synthetic inputs, seed 190333738). Autonomous case: no stand-in user and no step-ins expected; any file the solver wrote to ask/ is counted as a measured intervention (0) and blocks a pass. Prompt = TASK.md verbatim. Hidden key kept outside the solver's work dir. Scored with the case's scorer (python3 score.py WORKDIR KEYDIR, absolute paths); pass = every check true and no ask/ files. Tools: Read/Write/Edit/Glob/Grep/Bash, web disabled. Single run, no retries. 1-min load average at scoring 0.21 (8 cores). Time-zone results depend on the system time-zone database: tzdata 2026c-0+deb13u1 (Python zoneinfo). Claude Code's own reported cost for claude-opus-5.5: $0.146831. Score: 4/4. Cost is an ESTIMATE: measured tokens x pricing.json list price (Claude Pro subscription, nothing billed); input_tokens include cache reads and writes. Single run.

Estimated cost List-price estimate; not actually billed.

Metrics

Estimated cost
$0.15
Wall time
22s
Human step-ins
0
Turns
4
Model usage
ModelInput tokOutput tokCost
AClaude Opus 5.5anthropic/claude-opus-5.5effort default (no --effort flag) · thinking on81,5132,355$0.15

Reproduce this run

  1. Use the use case prompt on the use case page.
  2. Same setup: Claude Opus 5.5 (anthropic/claude-opus-5.5, effort default (no --effort flag) · thinking on) via Claude Code 2.1.299 (headless -p), cloud.
  3. It counts as a success only if it meets every success criterion: decisions lifts invalid guardrail_and_power
  4. Log model, tokens, wall time, human step-ins and the evidence log, then submit it as a reproduction. A different model? Submit a head-to-head rerun.

How runs are scored: Methodology.

Was this useful?

⇄ Rerun on another model

Automated checks

Trust 80% comes from these checks (how Trust % works).

Evidence log
[
 {
  "duration_api_ms": 21140,
  "stop_reason": "end_turn",
  "session_id": "[REDACTED]",
  "total_cost_usd": 0.1468306,
  "usage": {
   "input_tokens": 8,
   "cache_creation_input_tokens": 10692,
   "cache_read_input_tokens": 70813,
   "output_tokens": 2355,
   "output_tokens_details": {
    "thinking_tokens": 197
   },
   "server_tool_use": {
    "web_search_requests": 0,
    "web_fetch_requests": 0
   },
   "service_tier": "standard",
   "cache_creation": {
    "ephemeral_1h_input_tokens": 10692,
    "ephemeral_5m_input_tokens": 0
   },
   "inference_geo": "global",
   "iterations": [
    {
     "input_tokens": 2,
     "output_tokens": 683,
     "cache_read_input_tokens": 20897,
     "cache_creation_input_tokens": 1941,
     "cache_creation": {
      "ephemeral_5m_input_tokens": 0,
      "ephemeral_1h_input_tokens": 1941
     },
     "type": "message"
    }
   ],
   "speed": "standard",
   "fallback_credit": null
  },
  "modelUsage": {
   "claude-opus-5-5": {
    "inputTokens": 8,
    "outputTokens": 2355,
    "cacheReadInputTokens": 70813,
    "cacheCreationInputTokens": 10692,
    "webSearchRequests": 0,
    "costUSD": 0.1468306,
    "contextWindow": 1000000,
    "maxOutputTokens": 128000,
    "thinkingTokens": 197,
    "canonicalModel": "claude-opus-5-5",
    "provider": "firstParty",
    "costBasis": "list"
   }
  },
  "permission_denials": [],
  "terminal_reason": "completed",
  "fast_mode_state": "off",
  "fast_mode_disabled_reason": "sdk_opt_in_required",
  "subagent_stats": {
   "spawned": 0,
   "requested": {
    "background": 0,
    "foreground": 0,
    "unset": 0
   },
   "started_in_background": 0,
   "max_depth": 0,
   "spawned_by_subagents": 0,
   "completed": 0,
   "failed": 0,
   "killed": {
    "parent": 0,
    "user": 0,
    "system": 0
   },
   "refused": {
    "depth_limit": 0,
    "concurrency_limit": 0,
    "budget": 0
   },
   "by_type": {}
  },
  "safety_stops": 0,
  "is_error": false,
  "num_turns": 4,
  "subtype": "success",
  "api_error_status": null,
  "result": "I wrote `out/decisions.json` with a call for all six experiments. Each one was judged on the days after its burn-in only (the first 3 or 7 days were dropped).\n\n| Experiment | Decision | Lift | Why |\n|---|---|---|---|\n| EXP-onboard-1 | inconclusive | +6.20% | z = 1.58, not significant |\n| EXP-checkout-2 | inconclusive | \u22124.94% | z = \u22121.71, not significant |\n| EXP-pricing-3 | **no-ship** | +8.10% | Conversion win (z = 2.83), but support contacts per user rose 34.8%, well over the 10% allowed |\n| EXP-reco-4 | inconclusive | +10.29% | z = 2.78 would be a win, but each arm has about 23.8k users against 51,464 planned |\n| EXP-onboard-5 | **ship** | +10.76% | z = 3.32, and support contacts per user fell 3.7% |\n| EXP-reco-6 | **invalid** | \u2014 | Users don't match the planned 50/50 split: 21,176 control vs 25,410 treatment (chi-square 384.8, threshold 10.828) |\n\n- **Lift for every valid experiment:** EXP-reco-6 has no lift because it's invalid, as the task specifies. Lifts are rounded half-up to 2 decimals.\n- **EXP-onboard-1's uneven arms:** with its 80/20 split, the treatment arm has about 13.6k users and control about 54.6k. Both are above the 11,972 planned per arm, and the result isn't significant anyway, so it's inconclusive however \"planned users per arm\" is read.\n- **Data check:** the data was clean. Every row's day number matched its date counted from the experiment's start, with no gaps or duplicates.\n\nThe script that produced the file is `/tmp/s/run.py`, outside the work folder because only `out/` may be written to.",
  "ttft_ms": 2142,
  "type": "result",
  "duration_ms": 21572,
  "uuid": "[REDACTED]",
  "ttft_stream_ms": 1001,
  "time_to_request_ms": 254,
  "first_content_frame_ms": 1001,
  "queued_turn_count": 0,
  "result_index": 0
 }
]

Get new runs and ranking changes weekly