Business Bench

Desk track · complete-desk-comparison-2026-09-16 · snapshot 2026-09-16

Results

All 187 desk tasks, 3 repetitions per system, one shared frozen scorer. Every scheduled attempt is in the denominator. The numbers below are recomputed at build time from the released attempt ledger; raw verdicts from the runner's original grader are shown beside the frozen ones throughout.

What this table is. An end-to-end comparison of two configured systems on a development task set. They use different models and sampling controls, and their cohorts were not run at the same time. The Codex cohort is the same three repetitions recorded in the earlier four-system snapshot; the Proto cohort is a later runtime revision. Neither difference is a harness or model effect on its own. See scorer and provenance.

Frozen and raw scores

SystemFrozen pass rateFrozen / 561Raw / 561All 3 / 187Median minp90 minMean cost (USD)
Proto / DeepSeek V4.1 Flash
Proto CLI, runtime c8f62dd60 · DeepSeek only, no fallback, high reasoning, temperature 0
5074471472.087.590.0393
Codex / GPT-5.6 sol
Codex CLI 0.154.0 · OpenAI via Codex CLI, high reasoning, CLI-managed sampling
4734311412.256.720.3906

The lead is 6.06 percentage points under the frozen scorer. A paired, task-clustered bootstrap (20,000 resamples, seed 20260916, each task's 3 repetitions kept together) gives a descriptive 95% interval of +1.25 to +11.05 points. That is uncertainty over these task families, not evidence about unseen tasks.

By repetition

SystemRep 1 frozenRep 2 frozenRep 3 frozenRep 1 rawRep 2 rawRep 3 raw
Proto / DeepSeek V4.1 Flash171 / 187167 / 187169 / 187147 / 187148 / 187152 / 187
Codex / GPT-5.6 sol152 / 187160 / 187161 / 187138 / 187145 / 187148 / 187

An aggregate above 90% is not 90% in every repetition; the per-repetition rows are the reliability claim, not the total.

By category

Frozen passes out of tasks × 3 per category. Bars share one scale.

CategoryAttemptsProto / DeepSeek V4.1 FlashCodex / GPT-5.6 sol
Spreadsheet123
Bookkeeping108
Reports90
Reformatting78
Extraction78
Drafting57
Tooling27

What the frozen scorer changed

Every attempt was scored twice: once by the runner's grader at run time (the raw verdict) and once by the frozen conservative-v7 package released under scoring/frozen-v7 (the primary verdict). The frozen package carries its own copy of the task definitions and base grader, plus task-specific equivalence graders for 7 tasks that accept alternative valid representations (a rate written as a fraction or a percentage, a schedule laid out as a table or as cards). Its manifest digest is b4720db00f2a55461ca70767a4baf8dd2d25aa9d301e8fe22ea13d21ccca358f and every receipt in the ledger points to it.

SystemRaw passesFrozen passesFail → passPass → failOf which on equivalence tasksFail → pass by category
Proto / DeepSeek V4.1 Flash447507+60−08Drafting 21Reports 15Spreadsheet 10Bookkeeping 9Tooling 3Extraction 2
Codex / GPT-5.6 sol431473+43−10Reports 12Spreadsheet 11Drafting 9Bookkeeping 7Extraction 3Tooling 1

The scorer raised both systems. It raised the leader more, so the gap under the frozen scorer is larger than under the original grader. The equivalence tasks are price-list-page, event-schedule-page, returns-analysis, rent-roll-build, minutes-from-transcript, refund-apology-letter, sop-from-thread. Both verdicts are in attempts.jsonl as raw_passed and passed; the original grader had 4 (Proto) and 3 (Codex) grader-error attempts, the frozen scorer none.

Execution accounting

SystemTimed outNonzero exitPassing, abnormal exitRaw grader errorsFrozen grader errorsMissing usage
Proto / DeepSeek V4.1 Flash330400
Codex / GPT-5.6 sol000300

Every frozen pass also completed normally. The desk budget was 1,200 seconds per attempt.

Most-failed required check types

SystemFailed check types among frozen failures (count)
Proto / DeepSeek V4.1 Flashcustom 24csv_values_match 23xlsx_value_present 19
Codex / GPT-5.6 solxlsx_value_present 141xlsx_no_errors 31custom 28

Resource use

SystemInput tokensCached inputUncached inputOutput tokensEst. cost, sum USDSummed task time (h)Price basis, USD / 1M (in / cached / out)
Proto / DeepSeek V4.1 Flash823.6M775.7M47.9M20.9M22.0631.50.15 / 0.003 / 0.6
Codex / GPT-5.6 sol166.0M150.3M15.6M4.8M219.1330.94 / 0.4 / 20

Costs are captured-usage estimates under bench/prices.json, not invoices. Codex ran through a subscription and is priced at API list price. The cheaper system did far more token work; lower cost is not lower resource use. Summed task time is not elapsed campaign time.

Per-task matrix

3 squares per cell, one per repetition. Green is a frozen pass; a green square with a hollow centre passed under the frozen scorer but failed under the original grader; grey is a fail; a hollow grey centre is a timeout. One task passed nowhere; 116 passed everywhere.

pass pass, frozen scorer only fail fail, timed out
TaskCategoryProto / DeepSeek V4.1 FlashCodex / GPT-5.6 solFrozen / 6Raw / 6
Clean the catalog mailing list for the mail house
address-standardize
Reformatting66
Build the Amazon inventory upload from the product sheet
amazon-inventory-loader
Reformatting66
Payables aging by vendor for the line of credit review
ap-aging
Bookkeeping22
Spring no-show rates by tutor under the 24-hour policy
appointment-no-shows
Spreadsheet62
Receivables aging at month end for the bank
ar-aging-report
Reports44
August bank reconciliation for the checking account
bank-reconciliation
Bookkeeping55
Key the July and August bank statements into the transactions file
bank-statement-pdf
Extraction66
Material cost per product from the bill of materials
bom-cost-rollup
Spreadsheet44
First-half budget vs actual, line by line
budget-vs-actual
Spreadsheet66
CRM contacts from the scanned expo business cards
business-cards-scanned
Extraction55
Cost per lead by channel for the quarter
campaign-cpl-report
Reports66
Code August company-card charges to the ledger by item type
card-expense-coding
Bookkeeping66
August transactions from the company card statements
card-statements-pdf
Extraction66
August cash drawer variance by day
cash-drawer-variance
Bookkeeping66
Money in and out by month for the bank meeting
cash-flow-monthly
Reports43
Normalize the catalog sizes for the new POS
catalog-normalize-units
Spreadsheet60
Side-by-side table of the anniversary dinner catering quotes
catering-quotes-table
Extraction66
Chargeback tracker with evidence deadlines
chargeback-tracker
Bookkeeping44
Restate this year's GL lines on the new chart of accounts
chart-of-accounts-remap
Reformatting66
Fall to spring enrollment, adds and drops by course
class-roster-changes
Spreadsheet66
Q3 hours per client project, billable and not
client-hours-by-project
Spreadsheet66
Visits per provider and the no-show rate for Q1
clinic-visits-summary
Reports33
Weekly hours audit from time-clock punches
clock-punch-audit
Spreadsheet66
August sales commissions with refund recoveries
commission-calculation
Spreadsheet55
Commission clawbacks on refunded deals since June
commission-clawbacks
Bookkeeping66
First-half complaints by category and month
complaints-summary
Reports60
Pull key terms from our service contracts into a register
contract-key-terms
Extraction66
Renewal summary for the Wi-Fi services contract
contract-renewal-summary
Drafting54
2025 1099-NEC recipients into the e-file service's import file
contractor-1099-list
Reformatting66
Turn September returns into credit notes and apply them
credit-notes-apply
Bookkeeping66
Clean a legacy customer export for HubSpot import
customer-dedupe
Reformatting66
Lifetime value per customer from the shop export
customer-value-summary
Spreadsheet66
Applicant list from the operations coordinator resumes
cv-batch-extraction
Extraction66
2026 deferred revenue schedule for the annual plans
deferred-revenue-schedule
Bookkeeping43
On-time delivery by hub, and why the late ones were late
delivery-performance
Reports44
2026 depreciation schedule from the fixed asset register
depreciation-schedule
Bookkeeping66
Q2 expenses by department against budget
dept-expense-report
Reports43
FY2026 fundraising figures for the board
donor-annual-figures
Reports22
Per-donor giving totals for 2024 and 2025
donor-totals-by-year
Spreadsheet66
Find bills that were entered twice before the check run
duplicate-invoice-finder
Spreadsheet66
Find supplier payments we made twice
duplicate-payments
Bookkeeping66
Monthly electricity by building from meter reads
energy-usage-sites
Reports42
Announcement for the wine club harvest dinner
event-announcement
Drafting66
Door list for the author evening
event-attendee-merge
Spreadsheet55
Wrap-up numbers for the summit
event-postmortem
Reports63
Conference schedule page for the lobby screen
event-schedule-page
Tooling54
Load the concert sign-ups into Eventbrite
eventbrite-attendee-import
Reformatting66
Categorize card transactions per policy, with thread overrides
expense-categorize
Bookkeeping55
Audit August expense reports against the travel policy
expense-report-audit
Bookkeeping66
Website FAQ from the summer support tickets
faq-from-tickets
Drafting60
First-half FIFO cost of goods sold
fifo-cogs
Bookkeeping44
Cost per mile per vehicle for the first half
fleet-cost-per-mile
Reports66
Monthly miles per van for the insurer
fleet-mileage-monthly
Spreadsheet66
Boat campaign progress page with top donors
fundraiser-progress-page
Tooling55
Fall appeal letter for the Hatch Farm campaign
fundraising-appeal
Drafting66
Realized FX gain or loss on the euro invoices
fx-invoice-gains
Bookkeeping44
Gift card liability per card at year end
gift-card-liability
Bookkeeping66
Move the office phone list into Google Contacts
google-contacts-import
Reformatting66
Final weighted grades for the bookkeeping course
gradebook-weighted
Spreadsheet55
Log this year's grant award letters into the tracker
grant-award-letters
Extraction61
Grant budget tracking for the board packet
grant-budget-tracking
Bookkeeping66
Build the Gusto employee upload from the HR roster
gusto-employee-import
Reformatting66
May helpdesk tickets by category and SLA breaches
helpdesk-tickets-report
Reports33
Import the roofing pipeline into HubSpot deals
hubspot-deals-import
Reformatting66
Formal incident report for the Line 3 injury
incident-report
Drafting55
Half-year safety incidents by site and type
incident-summary
Reports55
Open findings from this season's inspection reports
inspection-findings
Extraction66
Log vendor insurance certificates and flag lapsed policies
insurance-certificates
Extraction66
Reconcile the physical count against the system stock
inventory-count-reconcile
Spreadsheet40
Shrinkage by department from the Sunday floor count
inventory-shrinkage
Bookkeeping63
Stock page for the workshop tablet
inventory-tracker-page
Tooling66
Stock valued at cost by department for the accountant
inventory-valuation
Spreadsheet66
Q2 investor update letter from the KPI tracker
investor-update
Drafting32
Write the front desk coordinator job posting
job-posting-from-notes
Drafting62
August operations scorecard page
kpi-scorecard-page
Tooling41
Q2 leads and won revenue by marketing source
lead-source-rollup
Spreadsheet66
Abstract the plaza leases for the lender
lease-abstracts
Extraction55
Check the gym loan's interest and principal split
loan-schedule-check
Bookkeeping66
Apply today's lockbox checks to open invoices
lockbox-apply
Bookkeeping66
Fall attendance grid for the district grant
long-to-wide-attendance
Reformatting66
Summer signups into one Mailchimp audience import
mailchimp-audience-import
Reformatting66
Water shutoff notices for the riser valve work
maintenance-notices
Drafting65
October renewal letters and the lapsed list
membership-renewals
Spreadsheet66
Cost out the fall menu, plate by plate
menu-cost-sheet
Spreadsheet66
August menu items ranked by sales and margin
menu-item-performance
Reports55
Fall menu page with allergens for the QR code
menu-page-allergens
Tooling66
August mileage reimbursement for the field staff
mileage-reimbursement
Bookkeeping60
Minutes from the leadership meeting recording
minutes-from-transcript
Drafting30
August accrual entry for the theatre
month-end-accruals
Bookkeeping66
Monthly revenue report by region from a messy sales export
monthly-report
Reports55
Monthly revenue report by region from a messy sales export
monthly-report-v9
Reports44
MRR by month and churn for the first half
mrr-report
Reports22
First-half sales in dollars across three currencies
multi-currency-sales
Spreadsheet66
Split the tracker notes into Pipedrive activities
notes-to-activities
Reformatting44
Q1 occupancy per cabin per month
occupancy-report
Reports60
Welcome email for the new project engineer
onboarding-welcome-email
Drafting50
What is still coming on our purchase orders
open-purchase-orders
Spreadsheet66
This week's orders page for the packing bench
orders-status-page
Tooling55
Write this month's past-due reminders
overdue-reminders
Drafting33
Match this week's packing slips to the open POs
packing-slips-vs-po
Extraction66
Key the August pay stubs for the CPA
pay-stubs-extraction
Extraction66
Match bank payments to open invoices
payments-match
Bookkeeping66
Match bank payments to open invoices, with card fees, short wires, and a wrong reference
payments-match-v2
Bookkeeping66
Journal entry for the 4 September payroll
payroll-journal-entry
Bookkeeping66
2025 payroll by quarter for the accountant
payroll-quarterly-summary
Reports66
Federal payroll tax deposits and due dates since the provider stopped
payroll-tax-deposits
Bookkeeping60
Match the scanned field trip slips to the class roster
permission-forms-scanned
Extraction44
Reconcile the front desk petty cash and code the top-up
petty-cash-reconcile
Bookkeeping66
Convert the CRM contact phones to the new phone system's import file
phones-to-e164
Reformatting66
Catch-up prorations for February to April plan changes
plan-change-proration
Bookkeeping66
Memo to the crews on the 2026 policy changes
policy-update-memo
Drafting40
Load the fall menu into the new POS with modifiers
pos-menu-import
Reformatting66
2026 prepaid expense amortization schedule
prepaid-amortization
Bookkeeping66
Draft the standing order price increase notice
price-increase-notice
Drafting21
Fall wholesale price list page for shop buyers
price-list-page
Tooling44
Apply the supplier's price letter to our master price list
price-list-update
Spreadsheet66
First-half purchasing savings by category
procurement-savings
Reports66
August yield and scrap by production line
production-yield
Reports33
West Gallery budget burn for the capital committee
project-budget-burn
Bookkeeping66
Margin by job, with the loss-makers flagged
project-margin
Reports61
Kitchen job task board for the crew wall
project-status-board
Tooling55
How the August promo codes did
promo-code-analysis
Spreadsheet55
Log this year's property tax bills
property-tax-bills
Extraction66
Write up the warehouse lighting proposal
proposal-from-notes
Drafting55
Key this week's customer POs into order entry
purchase-orders-pdf
Extraction66
Q3 wholesale sales by product, with the odd things called out
quarterly-sales-report
Reports54
CRM accounts into a QuickBooks Online customer import
quickbooks-customer-import
Reformatting66
Compare three laptop quotes (USD/EUR, hidden fees) and recommend one
quote-comparison
Extraction66
Expense table from scanned trip receipts
receipts-scanned
Extraction66
Reply to a customer about a cracked skillet
refund-apology-letter
Drafting21
Reconcile August refunds to the card processor
refund-reconciliation
Bookkeeping55
Q2 sales by territory from the monthly exports
regional-sales-monthly
Reports55
October rent roll for the bank
rent-roll-build
Spreadsheet54
Days out per machine per month for the insurer
rental-utilization
Spreadsheet66
This week's reorder list for the bike shop
reorder-list
Spreadsheet66
Customer cohort retention table for the first half
retention-cohorts
Reports43
Q2 return rate by product and reason
returns-analysis
Reports43
Request for quotation for the rolling bench parts
rfq-email
Drafting66
Rep by month sales table from the invoice export
sales-pivot-by-rep
Spreadsheet44
Sales tax on each September order
sales-tax-by-address
Spreadsheet66
Second-quarter sales tax due by local jurisdiction
sales-tax-liability
Bookkeeping66
Turn the Q3 leads sheet into a Salesforce lead import
salesforce-lead-import
Reformatting66
Schedule change notices for next week's revised rota
schedule-change-notices
Drafting64
Fall class schedule as a calendar file for the website
schedule-to-ics
Reformatting66
Allocate August overhead to departments
shared-cost-allocation
Bookkeeping66
How short the published week is against minimum coverage
shift-coverage-gaps
Spreadsheet66
Shipment weights and costs from last week's manifests
shipment-manifests
Extraction66
Work out what the carrier should charge per order
shipping-rate-lookup
Spreadsheet55
Fall catalog into Shopify's product import
shopify-product-import
Reformatting55
Move the shop inventory onto the new SKUs
sku-crosswalk-migration
Spreadsheet66
Turn the refunds email thread into a counter procedure
sop-from-thread
Drafting43
Load the stock count into Square's item import
square-inventory-import
Reformatting66
One staff directory from HR and IT
staff-directory-merge
Spreadsheet66
September billable utilization per person
staff-utilization
Spreadsheet22
Build the Stripe customer import from the old billing export
stripe-customer-import
Reformatting66
Active subscribers and cancellations by month
subscription-status-monthly
Spreadsheet33
Key this week's superbills for charge entry
superbill-codes
Extraction66
Metric supplier price list into our inch-and-pound catalog
supplier-catalog-imperial
Spreadsheet66
Dispute letter for a supplier invoice that does not match the PO
supplier-dispute-letter
Drafting33
Key August supplier bills into the AP import file
supplier-invoices-to-csv
Extraction22
Member survey scores per question
survey-tally
Spreadsheet66
Find double-booked tables in the reservations
table-double-bookings
Spreadsheet60
Staff directory page for the backstage screen
team-directory-page
Tooling55
August resident balances with late fees
tenant-ledger-balances
Bookkeeping66
Third-quarter ledger from the landlord statements
tenant-statements
Extraction00
Consolidate the crew timesheets for payroll
timesheet-consolidate
Spreadsheet66
Daily hours from the scanned caregiver time sheets
timesheets-scanned
Extraction66
Split last week's tip pool by shift
tip-pooling
Bookkeeping55
Spring tuition collected and outstanding by program
tuition-collections
Reports45
Monthly usage and charges from the utility bills
utility-bills-extraction
Extraction66
Flatten the nested fall catalog into the inventory platform's variant import
variants-flatten
Reformatting66
2025 reportable totals per vendor, cards and corporations out
vendor-1099-totals
Bookkeeping33
Merge the purchasing and accounting vendor lists
vendor-contact-merge
Spreadsheet66
Load the fall supplier price sheets for the ordering guide
vendor-price-sheets
Extraction44
Year-to-date spend by vendor and category
vendor-spend-categories
Spreadsheet33
Tie out the Keystone supply statement to our books
vendor-statement-reconcile
Bookkeeping66
Log new vendors' tax forms with masked TINs
vendor-tax-forms
Extraction55
Key the September venue invoices into job costing
venue-invoices
Extraction66
Volunteer hours per program for the county
volunteer-hours
Reports66
Equipment warranties running out in the next 90 days
warranty-expiry-list
Spreadsheet66
Spring website traffic by month, crawler taken out
web-traffic-summary
Reports66
One-page weekly KPIs from five system exports
weekly-kpi-dashboard
Reports33
Reshape the by-month sales report for the planning tool upload
wide-to-long-sales
Reformatting66
Turn August web store orders into journal entries
woocommerce-orders-to-journal
Reformatting66
August job invoices into Xero's sales invoice import
xero-sales-invoices-import
Reformatting55
September checking transactions into YNAB
ynab-transactions-import
Reformatting66
Import client contacts as Zendesk users
zendesk-users-import
Reformatting66

Provenance

Campaigncomplete-desk-comparison-2026-09-16
Ledger SHA-256559ba499d014e1bbf7a17afa132b504cdb2fd2740e6a7f319fec29b40560a242
Scorer manifest SHA-256b4720db00f2a55461ca70767a4baf8dd2d25aa9d301e8fe22ea13d21ccca358f
Original scorecard SHA-25604705007d04df365d8ba2b2debbeac109c47e3b6ab55ba1193f4b421e2f64485
Configuration: Protoruntime_commit: c8f62dd60model: deepseek/deepseek-v4.1-flashprovider: DeepSeek onlyfallbacks: falsereasoning: hightemperature: 0max_tokens: 65536
Configuration: Codexmodel: gpt-5.6-solreasoning: highcli_version: 0.154.0sampling: CLI-managed; not asserted matched to Proto
Source cohorts: Protobroad-desk-v43-c8f62dd60 r1; repeat-desk-v43-c8f62dd60 local r1/r2 map to logical r2/r3
Source cohorts: Codexfull-1-codex-sol r1/r2/r3
Evidence verificationOriginal result hashes, receipt scorer identity and frozen verdicts checked for every attempt during export; frozen scorer package file hashes verified.
Scorer noteImmutable manifest retains original assembly-status text; subsequent 1341-attempt replay reported zero differences. Original bytes are preserved.
Cost noteCaptured-usage API-equivalent estimate from the frozen pricing table, not subscription or reconciled provider billing. Errored/interrupted requests without captured usage have unknown additional cost, not proven zero cost.
LimitationsDevelopment task set; different models and non-contemporaneous cohorts. Not a causal harness-only or unseen-generalization comparison. Raw artifacts remain private; hashes identify but do not reconstruct them.
Build trackNo completed fully acceptance-validated build campaign published.
ExcludedLater Proto-vs-Proto experiments, pilots, tuning history, unrelated old arms, raw traces and credentials.

Recompute this page with python bench/export_campaign.py --verify, which checks matrix completeness, score arithmetic, the ledger hash, and every file in the frozen scorer package against results/latest/attempts.jsonl. It does not re-grade the original artifacts, which remain private; their hashes are in the ledger.