Skip to content
Business BenchA benchmark for AI agents on business work

Desk track·1,122 attempts·release complete-desk-comparison-2026-09-16

What the desk results establish

The headline is a comparison of two configured systems on one authored workload. The analyses below explain what changes when the question is complete acceptance, repeatability, category mix, or evaluator choice. Use the results page to inspect individual tasks and the paper for formal definitions.

Reading the measures

QuestionMeasureWhat it observes
Did the handoff satisfy every required test?Attempt acceptanceAccepted attempts divided by all scheduled attempts.
How much of the declared contract passed?Mean within-attempt check fractionCompute a fraction for each attempt, then average with equal attempt weights.
Was any run accepted?At least one of 3Tasks with an accepted run, selected with hindsight.
Was every run accepted?All 3 of 3Tasks accepted in every observed execution of the same inputs.

Acceptance means that all required predicates pass. A predicate can contain several rules or a tolerance, so passing the contract does not prove every possible property of an artifact. The payment example shows an actual contract with a 90% agreement threshold inside one required predicate.

1. Check completion exceeds complete acceptance

Figure 1. Both measures give every attempt equal weight. Their difference measures how much required-check completion exceeds acceptance of the whole contract.
SystemAttempt acceptanceMean check fractionDifference (pp)Pooled checks passed
Proto / DeepSeek V4.1 Flash90.37%97.34%6.9697.29%
Codex / GPT-5.6 sol84.31%94.42%10.1093.61%

Averaging check outcomes gives partial credit to rejected artifacts. That is useful for diagnosis, but the mean fraction and complete acceptance answer different questions. Their difference is 6.96 points for Proto and 10.10 points for Codex.

The pooled fraction divides all passed checks by all required checks. It gives more weight to tasks with more predicates and cannot be substituted for the attempt-weighted mean. Duplicating a predicate can change either partial-check metric without changing acceptance. The number of failed checks also does not establish repair effort or failure severity.

2. One failed predicate does not mean one small mistake

Figure 2. Proto: 34/54 rejected attempts (63.0%) fail exactly one required predicate; Codex: 39/88 rejected attempts (44.3%) fail exactly one required predicate.
SystemFailed attemptsExactly one failed predicateMean check fraction within failuresSingle failed predicate types
Proto / DeepSeek V4.1 Flash543472.3%custom 18csv_values_match 4text_sentence_matches 4text_not_contains 4
Codex / GPT-5.6 sol883964.4%custom 12text_sentence_matches 9csv_values_match 6xlsx_value_present 5

A custom predicate can bundle many business rules. The ledger establishes which tests failed; it does not show that the artifact was almost correct, that a single edit would repair it, or that the agent skipped self-verification. Distinguishing an agent error from an overly strict check requires artifact review against the task's requirements. That independent review has not been completed.

3. Passing once and passing every time are different observations

Figure 3. Whiskers use 20,000 task-bootstrap resamples, keeping repetitions together. They describe the empirical resampling scheme; related task families, scorer selection, and deployment changes are outside it.
SystemAttempt acceptanceAt least one of 3All 3 of 3Tasks with mixed outcomes
Proto / DeepSeek V4.1 Flash90.4%98.4%78.6%37 / 187
Codex / GPT-5.6 sol84.3%93.0%75.4%33 / 187

At-least-one acceptance uses the grader to identify a successful output after observing all runs. It does not establish a practical retry policy: a user needs a way to recognize success. All-3 acceptance records repeatability on fixed inputs; it is not the probability that a monthly production workflow will succeed.

The all-repetitions interpretation follows τ-bench's passk. Here, different task difficulties and only 3 observations per fixture prevent a pooled pass rate from serving as a general reliability model. New fixtures and held-out templates test different forms of generalization.

4. The comparison depends on which work receives weight

CategoryTasksProto acceptedCodex acceptedDifference (pp)Pass difference
Spreadsheet41115/123109/123+4.88+6
Bookkeeping3699/10898/108+0.93+1
Reports3081/9056/90+27.78+25
Reformatting2674/7878/78−5.13-4
Extraction2670/7869/78+1.28+1
Drafting1949/5737/57+21.05+12
Tooling919/2726/27−25.93-7

Reports and drafting contribute 37 additional Proto passes, exceeding the net difference of 34. Across the other 138 tasks, the counts are 377/414 for Proto and 380/414 for Codex. This post hoc calculation locates the observed difference; it does not justify replacing the full comparison with a selected subset.

Weighting each category equally changes the gap from 6.06 to 3.55 points. Neither weighting measures business demand. Use the workload comparison to inspect this sensitivity, then inspect relevant task contracts before treating a category label as a match for your own work. The data do not isolate whether differences arise from models, harnesses, skills, or evaluator coverage.

5. Spending per accepted attempt is an accounting ratio

SystemEst. model cost, USDAccepted attemptsUSD per accepted attemptMedian / p90 secondsInput tokens
Proto / DeepSeek V4.1 Flash22.065070.0435124.9 / 455.6823.6M
Codex / GPT-5.6 sol219.134730.4633135.2 / 403.3166.0M

Total captured estimated model spending divided by accepted attempts allocates spending on failures to the accepted outputs. It excludes human review, repairs, infrastructure, and uncaptured request usage. It is neither a provider invoice nor an expected cost for retrying until success.

Proto has lower estimated spending and median time, but more tokens, slightly more summed task time, and a worse p90. The cheaper model route therefore does not dominate every resource dimension. Resource accounting gives the price basis and missing observations.

6. Retrospective scoring changes the gap by 3.21 points

SystemOriginal passesFail → passUngraded → passPass → failFrozen passes
Proto / DeepSeek V4.1 Flash4475640507
Codex / GPT-5.6 sol4314031473

The original gap is 2.85 points; the frozen gap is 6.06. The 3.21-point change comes from evaluating the same retained outputs differently, including recovery from original grader errors. It is not agent improvement and does not by itself establish scorer bias.

The frozen scorer was constructed after outputs existed by the organization developing Proto. Sharing one scorer makes the primary comparison consistent, while freezing its fingerprint makes later changes detectable. Neither establishes that the scoring choices were independent of the observed outputs. Independent adjudication is needed to decide which verdicts better reflect business acceptance. See the full transition accounting and self-audit.

7. Broader evidence needs new tests, not a stronger label

Both systems pass all repetitions on 116/187 tasks; 15 tasks have at least one system fail every repetition, and 1 have neither system pass. Their acceptance counts differ on 59 tasks. These observations describe this public suite; high scores on a development-exposed task set do not establish that a class of business work is solved.

The next useful evidence is a scorer reviewed before execution, sealed fixtures and templates, and independent judgments of retained artifacts. A same-model harness experiment would address a different question from this system comparison. The research roadmap separates these planned tests from the released desk results and the process pilot.


Calculations use the public attempt ledger. The measurement helpers and release tests reconcile counts and denominators. Raw outputs remain private, so this arithmetic audit does not substitute for reviewing the artifacts.