Pragmatikos

Benchmarks score models. You run setups.

A benchmark is a clean task, a hidden test and a single model. Real work is a messy repo, your tools, your steering — and increasingly one model planning while another builds. Pragmatikos scores that: every model and every planner → builder pairing, on real sessions, by what actually shipped.

Rankings below are pooled from real developer sessions.

poolHigher ship %Higher one-shot %Fewer turns/shipFewer hours/shipFewer $/shipFewer edit errorsFewer abortsHigher verified %More edits/turnFaster stepsclaude-fable → muse-spark — score 54 / 100claude-opus → claude-opus — score 53 / 100claude-fable → grok — score 51 / 100claude-fable → claude-fable — score 46 / 100muse-spark → muse-spark — score 42 / 100claude-opus → claude-sonnet — score 40 / 100grok → grok — score 40 / 100

claude-fable → muse-spark · 54 / 100

the rankings

Models and pairings, ranked by what ships

Did the work land in a commit, how many nudges did it take, how clean was it, what did it cost. Scored on real sessions, not lab tasks. Thin evidence gets pulled toward the middle so one lucky run can't top the chart.

Last update
Group by
OutcomeCost of a shipPrecisionDisciplineEfficiencyLatency
01
claude-fable → muse-spark
54
02
claude-opus → claude-opus
53
03
claude-fable → grok
51
04
claude-fable → claude-fable
46
05
muse-spark → muse-spark
42
06
claude-opus → claude-sonnet
40
07
grok → grok
40
Higher is betterLower is betterShip %One-shot %Verified %Edits/turnTurns/shipHours/ship$/shipEdit err %Abort %s/step×0.25×0.5pool×2×4← lowerhigher →claude-fable → muse-spark — Ship rate: 67% (pool 80%)claude-fable → muse-spark — One-shot rate: 36% (pool 31%)claude-fable → muse-spark — Verified cycles: 65% (pool 62%)claude-fable → muse-spark — Edits per turn: 7.8 (pool 4.8)claude-fable → muse-spark — Turns per ship: 3.6 (pool 4.3)claude-fable → muse-spark — Hours per ship: 0.5 (pool 0.6)claude-fable → muse-spark — Dollars per ship: $9.11 (pool $15.65)claude-fable → muse-spark — Edit errors: 4.1% (pool 2.4%)claude-fable → muse-spark — Aborts: 3.1% (pool 5.0%)claude-fable → muse-spark — Seconds per step: 4.5 (pool 8.6)claude-opus → claude-opus — Ship rate: 85% (pool 80%)claude-opus → claude-opus — One-shot rate: 30% (pool 31%)claude-opus → claude-opus — Verified cycles: 66% (pool 62%)claude-opus → claude-opus — Edits per turn: 3.8 (pool 4.8)claude-opus → claude-opus — Turns per ship: 4.4 (pool 4.3)claude-opus → claude-opus — Hours per ship: 0.6 (pool 0.6)claude-opus → claude-opus — Dollars per ship: $14.38 (pool $15.65)claude-opus → claude-opus — Edit errors: 2.0% (pool 2.4%)claude-opus → claude-opus — Aborts: 4.6% (pool 5.0%)claude-opus → claude-opus — Seconds per step: 8.8 (pool 8.6)claude-fable → grok — Ship rate: 68% (pool 80%)claude-fable → grok — One-shot rate: 49% (pool 31%)claude-fable → grok — Verified cycles: 53% (pool 62%)claude-fable → grok — Edits per turn: 11.2 (pool 4.8)claude-fable → grok — Turns per ship: 3.4 (pool 4.3)claude-fable → grok — Hours per ship: 0.6 (pool 0.6)claude-fable → grok — Dollars per ship: $15.47 (pool $15.65)claude-fable → grok — Edit errors: 2.6% (pool 2.4%)claude-fable → grok — Aborts: 7.9% (pool 5.0%)claude-fable → grok — Seconds per step: 8.0 (pool 8.6)claude-fable → claude-fable — Ship rate: 87% (pool 80%)claude-fable → claude-fable — One-shot rate: 19% (pool 31%)claude-fable → claude-fable — Verified cycles: 55% (pool 62%)claude-fable → claude-fable — Edits per turn: 6.0 (pool 4.8)claude-fable → claude-fable — Turns per ship: 4.9 (pool 4.3)claude-fable → claude-fable — Hours per ship: 0.8 (pool 0.6)claude-fable → claude-fable — Dollars per ship: $34.03 (pool $15.65)claude-fable → claude-fable — Edit errors: 1.2% (pool 2.4%)claude-fable → claude-fable — Aborts: 6.3% (pool 5.0%)claude-fable → claude-fable — Seconds per step: 9.9 (pool 8.6)muse-spark → muse-spark — Ship rate: 55% (pool 80%)muse-spark → muse-spark — One-shot rate: 24% (pool 31%)muse-spark → muse-spark — Verified cycles: 56% (pool 62%)muse-spark → muse-spark — Edits per turn: 3.9 (pool 4.8)muse-spark → muse-spark — Turns per ship: 4.3 (pool 4.3)muse-spark → muse-spark — Hours per ship: 0.6 (pool 0.6)muse-spark → muse-spark — Dollars per ship: $13.76 (pool $15.65)muse-spark → muse-spark — Edit errors: 3.1% (pool 2.4%)muse-spark → muse-spark — Aborts: 2.5% (pool 5.0%)muse-spark → muse-spark — Seconds per step: 5.9 (pool 8.6)claude-opus → claude-sonnet — Ship rate: 78% (pool 80%)claude-opus → claude-sonnet — One-shot rate: 31% (pool 31%)claude-opus → claude-sonnet — Verified cycles: 41% (pool 62%)claude-opus → claude-sonnet — Edits per turn: 5.2 (pool 4.8)claude-opus → claude-sonnet — Turns per ship: 5.0 (pool 4.3)claude-opus → claude-sonnet — Hours per ship: 0.8 (pool 0.6)claude-opus → claude-sonnet — Dollars per ship: $16.15 (pool $15.65)claude-opus → claude-sonnet — Edit errors: 3.5% (pool 2.4%)claude-opus → claude-sonnet — Aborts: 9.3% (pool 5.0%)claude-opus → claude-sonnet — Seconds per step: 10.1 (pool 8.6)grok → grok — Ship rate: 41% (pool 80%)grok → grok — One-shot rate: 33% (pool 31%)grok → grok — Verified cycles: 32% (pool 62%)grok → grok — Edits per turn: 6.5 (pool 4.8)grok → grok — Turns per ship: 3.7 (pool 4.3)grok → grok — Hours per ship: 0.4 (pool 0.6)grok → grok — Dollars per ship: $9.61 (pool $15.65)grok → grok — Edit errors: 3.8% (pool 2.4%)grok → grok — Aborts: 4.0% (pool 5.0%)grok → grok — Seconds per step: 6.1 (pool 8.6)

join in

This is a first answer, not the final one. It's built from the sessions developers have shared so far. The more histories in the pool, the harder the ranking gets to argue with.

why it exists

Three questions. Three instruments.

The first two are useful and stay useful. Developers choosing a model and a workflow are missing the third answer.

question 01 · the lab

Benchmarks ask: how capable is this model?

SWE-bench, Terminal-bench, Aider, LMArena. Controlled tasks, hidden tests, preference votes — the best way to compare models on equal footing and know each model’s ceiling.

signal
pass rate · votes
blind spot
One model, a clean task, nobody steering.
task_0042.pyhidden test · unseenPASS

question 02 · the crowd

Usage rankings ask: what is the market using?

opencode.ai/data, OpenRouter. Tokens, users, retention, dollars per session — the best way to see adoption and where the mix is shifting.

signal
tokens · users · $/session
blind spot
Popular is not productive — and still one model at a time.
tokens this weekModel A24T$0.03 / sessionModel B12TModel C9TModel D3T

question 03 · the recorder

Pragmatikos asks: what ships in real work?

Turns, phases, edits and errors from real sessions, correlated with what shipped. The one instrument that scores the setups developers actually run.

signal
session record × shipped outcomes
blind spot
Anything it never saw. Observational, not a benchmark.
session recordcommits · confirmationshippedcorrelated: record × commits

Capable. Popular. Effective.

Only one of them has a row for the setup you actually run.

the blind spot both miss

Same builder. Different planner. Opposite results.

The build model is identical. One planner got it to a commit in a few turns; the other burned dozens and shipped nothing. A model ranking can't see this. A pairing ranking can.

claude-fable-5 → grok-4.6

0 turns

grok-4.6 → grok-4.6

0 turns

turn 1planturn 3shippedturn 1turn 1turn 2turn 3unshipped
ship rate: 72% vs 34%turns to ship: 3.0 vs 3.4same builder: 2.1× the ship rate

Real sessions. Unshipped work counts against the model.

how the score works · scroll to explode

Six tiers, ten axes, one weighted mean

pool

Outcome

Ship rate and one-shot rate (prompt plus approval).

Ship %One-shot %

Cost of a ship

Turns, hours and dollars per shipped cycle.

Turns/shipHours/ship$/ship

Precision

Edit errors and human interventions.

Edit err %Abort %

Discipline

Share of cycles verified after the last edit.

Verified %

Efficiency

Edits per human turn.

Edits/turn

Latency

Median seconds per assistant step.

s/step

Pool-relative

Every axis is a log distance to the pooled average — log odds for rates — on a fixed ×4 span, so ×2 and ÷2 sit the same distance from the line.

Evidence-weighted

Small groups shrink toward the pool with k = 10 pseudo-cycles. A two-cycle fluke nearly vanishes.

Failure lowers the rate

Unshipped cycles stay in the ship-rate denominator, so few-turn dead ends can never look good. Turns, hours and dollars are priced per shipped cycle.

two records, correlated

The session record comes first

Every turn, plan and build phase, edit, tool error and dollar is read from the agent's own record — that is where every axis is measured. Commits only decide which cycles count as shipped: a window from the previous commit, file overlap decides credit, active-but-absent sessions advised only.

session recordplan → build phasesplanbuildhuman turnsedits · same filesedits · other filescommits · confirmationC1 · file overlap → creditC2 · advised only → no creditt−6ht−3ht
edit landed in commit active, touched nothing → advised only

contribute

Make the ranking yours to trust

  1. 1

    Run it locally

    Clone ocInsights, make install-plugin, open the deck — your card is computed where the work happened.

  2. 2

    Check your card

    One number per model and per planner → builder pair.

  3. 3

    Share the numbers

    One history is anecdote; pooled histories are evidence. Run make contribute — twenty fields per cycle, nothing else.

Twenty fields per cycle — day, models, turns, edits, cost, shipping. No paths, prompts, session ids or projects. Preview with make contribute-preview before anything leaves your machine.