Labs

Accounted Bench

How good are language models at real accounting work?

Key takeaways

    Background

    Why this benchmark exists, and what it measures that others do not.

    Swedish bookkeeping is not a matter of taste. Bokföringslagen fixes what a verifikat must contain, when a business event must be recorded, and how a mistake may be corrected; mervärdesskattelagen fixes which of ten VAT treatments applies and which ruta it lands in. An accounting agent that is fluent but wrong is worse than no agent, because its output enters a legally binding record that a human later signs.

    That makes the domain unusually testable. The correct end state of a booking is decidable, not a matter of preference, and Accounted's production database already enforces the law in triggers: an entry that does not balance, an edit to a posted voucher, a write into a locked period. Those triggers are the oracle. Where other agent benchmarks grade a transcript or ask a model to judge a model, this one asks a database whose constraints are the statute.

    That also fixes the scope of a single board. The oracle is national: the chart of accounts, the VAT act and the bookkeeping act are Swedish, so a model that books reverse charge correctly here has not been shown to know Norwegian mva or German Umsatzsteuer. Accounted Bench is therefore built one jurisdiction at a time, and Sweden is the first. The other countries on the selector below are named so the scope of this page is legible, not because a number exists for them: not one of them has a task written, and not one has been run.

    Accuracy is not the whole question. A model that books at 96% still cannot be trusted unattended unless it can tell you which 4% to check, so every task also elicits the model's own confidence, and the board reports how much a model could commit alone while staying right. That figure is measured out of sample, with the threshold fitted on tasks it is not then scored on. At this suite's size the honest version of that metric turns out to track raw accuracy closely: the models we would let book alone are simply the most accurate ones. Whether calibration earns a model more than its accuracy already does is a question a larger suite could answer and this one cannot yet.

    One thing to fix in your head before reading the board. The numbers here are higher than published accounting benchmarks report, and that is a property of the question, not of the models: APEX-Accounting asks nine frontier models to reconcile, accrue, post and report across ten environments and its best score is 56.4%; this suite asks for one account and one VAT treatment on one outgoing expense against one chart of accounts. A narrower question earns a higher number. It does not earn a broader claim, and nothing on this page should be read as "models can keep books".

    Leaderboard

    Four suites, four separate rankings, deliberately unblended: a model that reads receipts well but books reverse charge wrong is exactly the distinction an operator needs to see. Booking opens on strict (the single gold account and the right VAT), because the lenient rate beside it is biased upward by construction. The lenient ranking, and with it the statistical tie groups, is one click away in the legend.

    Score versus spend · strict pass rate against cost per task, Wilson ±1σ

    Model output examples

    The booking tasks where models most disagree, exactly as posed, with every model's actual answer.

    Head to head

    Pick any two models: per-suite results, run cost, unique solves and shared misses.

    A
    B

    Is the gold actually right?

    The booking tasks and their answers were authored with Claude, and Claude models are then ranked on them. That is the sharpest objection to this board, and it is addressed by the two checks below, each a re-runnable script in the repo. Neither is a substitute for review by practising accountants, which the gold has not yet had: a model auditing a model shares a model's blind spots, and a bias test rules out one mechanism rather than the whole objection. Read the correction log under them as what the process has caught so far, not as a guarantee.

    Every gold answer, audited by another vendor's model

    Did curation favour the authoring family?

    What the audit changed

    The agreement rate above is measured on the gold as the auditors saw it, before these changes, so it is the score the process earned rather than the score it was left with. Every disagreement that survived review is listed; the ones omitted proposed an account the task already accepted, so they cost the answering model nothing.

    Method, in short

    Every task, every raw run record and the source of this page are public in the Accounted Bench repository: tasks in tasks/, one JSON line per model call in results/runs/, the scoring in src/aggregate.ts, and the full methodology in README.md. Tasks and results are CC BY 4.0.

    Jurisdiction
    Sweden, and only Sweden. The chart of accounts is BAS, the VAT treatments and their rutor are mervärdesskattelagen's, and the constraints the database enforces are bokföringslagen's. A second jurisdiction is not a translation of this one: it needs its own chart, its own VAT act and return, native underlag rather than translated documents, and a ledger whose triggers encode that country's bookkeeping law. Otherwise the oracle stops being the statute and becomes our opinion of it. The selector on the board names the countries queued behind Sweden: the Nordics and the Baltics first, where the chart of accounts and the bookkeeping act sit closest to what already exists, then the larger EU markets and the UK. None of them has a task written, and nothing on this page describes them.
    What
    Booking (52): pick the BAS account + VAT treatment for an outgoing bank transaction. Every task on this board is an expense: revenue, payroll and balance-sheet movements are not covered yet, and the roadmap says what is staged. Reasoning (36): Swedish VAT/BFL law with one deterministic answer. Extraction (12): read fields off rendered Swedish documents; eleven of the fifteen models ran it. GPT-OSS-120B is text-only and cannot; DeepSeek V4 Pro, Qwen3.8 2.4T and Llama 4 Maverick were not attempted. Ledger-agent (3, run three times each): multi-turn tool use against a real Postgres ledger.
    Oracle
    Deterministic throughout. The agent suite is graded on the SQL end state of the books; the production database triggers (balance, immutability, period locks) stay live and refuse illegal writes. A self-test proves the oracle can detect failure before any model runs.
    Fairness
    Byte-identical prompts and tools for every model, vendor-default settings, pass@1, no fallbacks. Runs that never reached a model (rate limits, provider credits) are quarantined as not run, never scored as failures. Costs are measured tokens at each vendor's first-party list price (standard tier, no cache, batch or promo discounts); open-weights models without a vendor API are priced at Fireworks, following Ramp's convention.
    Lenient and strict
    Booking is scored twice. Pass accepts the gold account or any alternative listed on the task; Strict requires the single gold account and the right VAT. The acceptance lists were extended during curation when a model's answer proved defensible against the BAS chart, which makes the lenient number partly a function of what models answered: a known upward bias, stated rather than hidden. Strict carries no such bias, sits 21-31 points lower, and is what this board leads with: the chart, the first column and the default sort are all strict, and the lenient rate sits beside it as the number that inflates. The one thing strict cannot do is carry the tie test; see Statistics.
    Evidence split
    Booking reports two segments: invoice attached (the invoice states the VAT: measures reading) and bank feed only (counterparty and amount alone: measures knowing). v1.0 published only the blend and its VAT column saturated; v1.1 fixed that.
    Context
    The closest public benchmarks are Vals Finance Agent, which tops out at 64.4% on v1.1 and 60.6% on v2, and τ²-bench, whose ceiling has moved from roughly 88% at publication to about 99% on the Telecom domain. That movement is the point: τ² scores swing hard on domain, scaffold, user model and pass^k definition, so any single figure quoted for it, including ours, is a snapshot with a date on it. Neither benchmark is Swedish and neither is write-capable against a legally constrained ledger, so neither is a board this one can be scored against; the numbers here stand on their own oracle.
    Market context
    Where these numbers sit against published accounting work, so the headline is not read in isolation. The closest analogue is APEX-Accounting (Mercor with Ramp, July 2026): 160 real accounting tasks across ten environments (reconciling, accruing, posting, reporting), where the best of nine frontier models scores 56.4%, and no model exceeds 2.6% pass@8. On the narrower job closest to our booking suite, categorising a single transaction, Digits' Beyond the AI Hype benchmark (2 000 transactions, 13 frontier models, June 2026) puts frontier models above an outsourced-human baseline but still behind a purpose-built system. Read this board against those. Its 52 booking tasks ask a narrower question than any of them: one account and one VAT treatment, for one outgoing expense, against one chart of accounts. A higher number here is expected, and is not evidence that a model can keep books. The strict column is the one that belongs in that comparison. The lenient column measures whether a model picked a defensible account, not the right one, and should not be compared to anything.
    Statistics
    Wilson ±1σ intervals on every rate; paired McNemar exact tests group the ranking into statistical ties (models inside a group cannot be distinguished at p<0.05, marked by rules in the table); every task carries a published discrimination index (point-biserial), and tasks with negative discrimination are retired in review, applied to all models equally. A k=3 repeat study found single-run pass rates moving up to 25 pp between identical runs for one model; the tie groups, not the raw order, are the citable result. Three things qualify that, each computed from the task matrix on this page rather than asserted.
    Contamination
    Every task file carries a canary string (BIG-bench convention) so future training-data filters can exclude it, and the public split's exposure is stated rather than hidden. The prod-derived private split is the contamination-free instrument.
    Cost
    Measured tokens at each vendor's first-party list price, standard tier, no cache, batch or promotional discounts; open-weights models without a vendor API are priced at a named serving provider. Platform neutrality: every model on this board was served through one platform, OpenRouter, so no model is advantaged or penalised by where it happened to be hosted. The price applied is always the vendor's own first-party list rate, never OpenRouter's bill. What does differ between vendors is the tokenizer, and that is a real cost: the same Swedish chart of accounts costs Claude about 27 000 tokens and GPT-5.6 Luna about 18 000. What this cost is: the price of running these tasks through the neutral scaffold, where every booking ships the entire 1 290-account BAS chart as context, roughly 18 000 to 27 000 input tokens per task. Input therefore dominates, and the cost ranking is close to the input-price ranking. What it is not: the price of booking a transaction in production, where a retrieval step puts perhaps twenty candidate accounts in front of the model instead of all of them, and caching applies. Read it as a comparable price of the same work, not as an invoice. Per correct divides it by the strict pass rate, because a model that fails cheaply is not cheap. In units a practitioner buys: booking a thousand transactions costs about ; per thousand correct bookings that becomes , which reorders them, because the cheapest model here is right half the time. A cheaper model can also cost more than a dearer one: Qwen3.8 lists at $2/$6 against Opus 5's $5/$25 yet costs six times as much per reasoning task, because it spends about 5 700 output tokens per answer on hidden thinking where Opus spends 300. One artefact worth knowing: GPT-5.6 Terra Pro reports about four times the input tokens of GPT-5.6 Luna on the identical prompt (76 630 against 18 122), so the Pro tier evidently runs several internal passes and is billed for each. Its cost is what you would pay; its token count is not a prompt-size comparison.
    Frozen
    The scored task set and the scoring parameters are content-hashed into bench/freeze.json, and CI fails if either changes without that file being regenerated in the same commit. A gold correction is therefore a reviewable diff, never a silent adjustment: development happens on staged tasks, which are excluded from the board until a full run promotes them. Current frozen set: .
    Disclosure
    Tasks authored with Claude against cited law, machine-validated, public for review. Provider marks are their owners' trademarks, shown for identification only.

    How to argue with this benchmark

    The strongest objections we know of, stated by us rather than left for someone else to find.

    It cannot rank the frontier. With 52 booking tasks the top ten models are a single statistical tie. Nothing about the ordering inside that group is a result, and no presentation fixes it: only more tasks will.
    It measures one country. Every task is Swedish: the BAS chart, mervärdesskattelagen, bokföringslagen. Nothing here says how a model handles Norwegian mva, Danish moms, Finnish alv or German Umsatzsteuer, and the account-picking skill in particular may not transfer at all: a different chart is a different answer key. Read a score on this board as a score on Swedish books.
    Our own gold has been wrong, and probably still is somewhere. The first independent audit of these answers found a task that let a VAT-exempt dental practice deduct full input VAT, an import booked to a generic purchase account instead of the import account the VAT return is built on, and a machine filed as an inventory item. One further task was retired outright because nothing we hold settles it. Those are the errors a single audit pass caught in 53 tasks; the honest inference is not that the remainder is clean, but that the error rate is low and the process for finding them is public. Every one of them is listed above.
    The gold was written by a ranked model, then checked several ways. Tasks and answers were authored with Claude against the cited statutes, and Claude Fable 5 then ties for first. Machine validation, the discrimination audit, the retirement of a defective task, an independent cross-vendor audit of every gold answer, and a bias test on curated versus untouched tasks all reduce that risk. None removes it entirely: the strongest version would be a test set whose gold was authored by domain experts from the start, rather than authored by a model and reviewed after.
    The lenient score is biased upward by construction. Acceptance lists grew during curation partly in response to model answers, worth 21 to 31 points. The strict column exists because of this, now leads the board, and is the number to quote. The lenient rate is still printed, because the tie test can only be computed on it.
    Even the strict number is not comparable to published accounting benchmarks, and the lenient one is not comparable to anything. The best of nine frontier models scores 56.4% on APEX-Accounting's 160 real accounting tasks, and none exceeds 2.6% pass@8. This board's booking suite asks a far narrower question: one account, one VAT treatment, one expense, one chart. Its numbers sit above that and should not be quoted as though they measured the same thing. Anyone citing a figure from here should cite the task with it.
    Two models that could move the top of the board were not run. GPT-5.6 Sol, OpenAI's flagship tier, is absent: the best OpenAI entry here is Terra, the $2 tier, which trails Sol on deep reasoning (AA Intelligence 60.9 against 56.6, HLE 49.5 against 42.9), so the reasoning suite in particular understates OpenAI. Muse Spark 1.2, which leads Vals Finance Agent v2, is absent too. Neither omission is a judgement about those models. Read the board as fifteen models, not as the field.
    The automation gate is the weakest number here, and it is the one any routing decision would turn on. Three things stack up: the confidence is self-reported, and known to be format-sensitive; the threshold is fitted to the same 52 transactions it is scored on, with no held-out split, so the observed precision is optimistic by construction; and the selected subsets are small enough that every qualifying model shows zero errors, which a sample this size cannot distinguish from a true precision in the high eighties. Claude Sonnet 4.6's 5.8% coverage rests on three transactions. The page now prints the lower bound instead of the observed 100%, but the fix that would actually settle it is more tasks and a held-out threshold split, not better wording.
    Single run, and runs move. Results are pass@1, while our own repeat study found aggregate pass rates moving up to 25 points between identical runs for one model. Only the agent suite is repeated.
    One prompt, one scaffold. Every score is conditional on a single prompt and a minimal harness. A different prompt could plausibly reorder the field, and no prompt-sensitivity analysis has been run.
    The documents are too clean. Extraction uses twelve program-rendered PDFs. Real underlag is photographed, skewed, creased and sometimes upside down, and nothing here tests that.
    Three agent tasks is a probe, not a ranking. Eleven of fifteen models score 9 of 9 with pass^k of 1.0, so the suite separates three models and orders nothing above them. It has no locked periods, no dual-control interruptions and no adversarial states. It is listed beside the other three suites for completeness; treating its tab as a leaderboard reads noise as a result.
    The Auto column encodes our judgement, not a risk model. The gate targets 95% precision because we chose that number, and the coverage it reports is whatever the fitted threshold then selects. It is retunable and published, and moving it moves models. This board publishes no routing verdict per model: the column is evidence towards a deployment decision, not the decision.
    We are not disinterested. This is published by a company selling the capability it measures, using its own chart of accounts and its own observed error classes. Everything is open for that reason: the tasks, the raw runs, the scoring code and this page.

    What this measures next

    v2.1 measures models. The axes that follow measure everything else in the sentence "this model, with these instructions, in this system".

    What the suite does not test yet

    A coverage profile of the published 52 found them to be expenses without exception: no revenue, no payroll, no tax account, no financial items, no foreign currency, and one single company that is not VAT-registered. Twenty-five tasks covering everything but revenue are written and reviewed, and wait on a full run across all fifteen models before they join the board. Revenue needs a decision first, because the VAT treatment enum has no output-VAT value, so sales either force a change that invalidates the current board or belong in a suite of their own.

    Other jurisdictions

    Sweden is the first, not the only one worth measuring. The jurisdictions on the selector are the queue behind it, the Nordics and the Baltics first, then the larger EU markets and the UK. Nothing has been run for any of them: each needs its own chart of accounts, its own VAT act, native documents and a ledger whose triggers enforce that country's bookkeeping law. Until that exists the selector shows what is missing rather than a placeholder score, because a benchmark whose oracle is the law cannot be ported by translating the prompts.

    Skills and instructions

    The same model, given different instruction sets, is a different bookkeeper. The next axis holds the model fixed and varies the skill: a bare prompt, a domain skill with the BAS chart and VAT rules loaded, a full agent briefing. What a skill is worth, in points and in kronor, is measurable.

    Harnesses

    Accounted Bench deliberately uses one minimal scaffold so models are comparable. That makes the scaffold itself an untested variable. Running the same tasks through retrieval-backed, self-consistency and staged-approval harnesses says how much of the remaining error is the model and how much is the plumbing around it.

    Systems

    The end state is a sentence a buyer can act on: this model books at X% inside Accounted, and at Y% inside another Swedish ledger. Tool surfaces, account defaults and posting rules differ between systems, and that difference is a property of the system, not of the model. Measuring it is the point of owning the benchmark.

    Planned, not measured. Nothing in this section has been run; it is published so the direction is on the record before the numbers exist.

    References

    1. Jimenez, C. E., et al. (2024). SWE-bench: Can Language Models Resolve Real-world GitHub Issues? ICLR. arXiv:2310.06770 (execution-based scoring).
    2. Barres, V., et al. (2025). τ²-bench: Evaluating Conversational Agents in a Dual-Control Environment. arXiv:2506.07982 (agent environments with real state; the pass^k stance).
    3. Miller, E. (2024). Adding Error Bars to Evals. arXiv:2411.00640 (paired significance testing rather than overlapping intervals).
    4. Guinet, G., et al. (2025). Rethinking LLM Benchmarking with Item Response Theory. arXiv:2505.15055 (item discrimination as a benchmark audit).
    5. Srivastava, A., et al. (2023). Beyond the Imitation Game (BIG-bench). arXiv:2206.04615 (the contamination canary convention).
    6. Gebru, T., et al. (2021). Datasheets for Datasets. arXiv:1803.09010 (the datasheet shipped at bench/DATASHEET.md).
    7. Ramp (2026). Ramp SWE-Bench. labs.ramp.com/swebench (private production tasks, public aggregates, behavioral metrics).
    8. Vals AI (2026). Finance Agent v1.1. vals.ai (read-only financial analyst tasks).