Benchmarking and Optimizing AI Agents for Accounting Automation

ramp · Finance · 2026 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Accounting close automation

Ramp needed to improve an AI accounting agent for complex monthly book-close work without overfitting to slow design-partner feedback or single-customer environments.

Constraints:

Architecture

Ramp built an offline accounting benchmark around synthetic business worlds, close tasks, and accountant-written grading criteria. Stack combines a frontier model, agentic harness, tools, hand-written skills, and custom memory. The benchmark supports skill ablation, skill shrinking, memory-on/off roll-forward tests, model selection, task-category analysis, and accuracy-vs-runtime tradeoff analysis. It became the development loop for deciding which skills to keep, how to write memory, and which model/system configuration to ship.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  synthetic-worlds[Synthetic worlds] --> close-tasks[Close tasks]
  close-tasks --> ramp-stack-agent[Ramp Stack agent]
  ramp-stack-agent --> accounting-tools[Accounting tools]
  ramp-stack-agent --> skills-bundle[Skills bundle]
  ramp-stack-agent --> memory-system[Memory system]
  skills-bundle --> skill-ablation[Skill ablation]
  memory-system --> roll-forward-worlds[Roll-forward worlds]
  close-tasks --> grading-criteria[Grading criteria]
  synthetic-worlds --> accounting-benchmark[Accounting benchmark]
  skill-ablation --> accounting-benchmark
  roll-forward-worlds --> accounting-benchmark
  grading-criteria --> accounting-benchmark
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Synthetic worlds Business/accounting environments with QBO state and supporting files. Close tasks, Accounting benchmark
Close tasks Representative accounting jobs such as reconciliation, data entry, variance analysis, schedules, and accruals. Synthetic worlds, Ramp Stack agent, Grading criteria
Ramp Stack agent Accounting automation agent with model, harness, tools, skills, and memory. Close tasks, Skills bundle, Memory system, Accounting tools
Accounting tools Interfaces for reading accounting software state, files, spreadsheets, and close artifacts. Ramp Stack agent
Skills bundle Curated task capabilities loaded into the agent after ablation and pruning. Ramp Stack agent, Skill ablation
Skill ablation Benchmark process for removing/adding skills to estimate marginal impact. Skills bundle, Accounting benchmark
Memory system Stores reusable process knowledge for recurring close tasks. Ramp Stack agent, Roll-forward worlds
Roll-forward worlds Future-period test cases for checking whether memory generalizes without stale contamination. Memory system, Accounting benchmark
Grading criteria Accountant-written criteria that score each task response. Close tasks, Accounting benchmark
Accounting benchmark Offline evaluation loop for model, prompt, tool, skill, memory, accuracy, and latency decisions. Synthetic worlds, Skill ablation, Roll-forward worlds, Grading criteria

Data flow

Synthetic accounting worlds encode QuickBooks state and supporting files. Tasks ask the agent to reconcile, enter data, analyze variances, or build schedules/accruals. The agent uses tools, skills, and memory to produce answers; accountant-written criteria grade each run; benchmark results feed skill pruning, memory-writing strategy, model choice, and harness tuning.

3 supporting quotes
“Our benchmark consists of two primary objects: * World: a synthetic business, including the state of the customer's accounting software (such as QuickBooks) and other files relevant to a book close”article, stated
“* Tasks: specific accounting jobs to be done inside that world Here is one representative task: > Compare October 2024 to July 2024.”article, stated
“Stack combines an agentic harness, tools, custom-built skills, and a memory system. At the heart of Stack is a foundation model.”article, stated

Why this architecture

Ramp uses an offline benchmark because design-partner feedback is slow and customer-specific. Synthetic worlds plus accountant criteria let the team compare models, skills, memory, and harness changes across many accounting contexts before customers see them. Roll-forward worlds specifically test whether memory captures reusable process instead of stale facts.

3 supporting quotes
“A benchmark solves these issues. A benchmark is equivalent to an offline dataset that machine learning engineers use to train models.”article, stated
“It lets us test the same agent against many business types and many accounting tasks, and it gives us fast, comparable feedback when we change a model, prompt, tool, skill, or memory system.”article, stated
“The goal is not "always write more memory." The goal is to write memories that generalize: stable account mappings, source-file conventions, workflow patterns, and explicit steps.”article, stated

Models used: GPT 5.5 · GPT 5.4 · Opus 4.7 · Opus 4.6 · Gemini 3.5 Flash · Gemini 3.1 Pro · Ramp Stack

Scale

Alternatives considered (roads not taken)

Rely on design-partner feedback

Rejected because: The loop is slow, imprecise, and risks overfitting to one customer's environment.

“Accounting workflows vary widely by customer, so it is easy to overfit the agent to a single design partner's environment.”article, stated
“The feedback loop is also slow and imprecise: you change the prompt or tool, wait for users to hit the same case again, and then infer whether the change helped.”article, stated

Keep all available skills loaded

Rejected because: Many skills were neutral or negative and added unnecessary context bloat.

“The result was not that every skill helped. Only Skill A and Skill B were positive on average. Skill C was essentially neutral.”article, stated

Let memory infer reusable process from task and answer alone

Rejected because: It produced plausible summaries but missed reproducible accounting steps.

“That produced plausible summaries, but it did not reliably preserve the actual steps an accountant should take.”article, stated

Patterns

eval-driven-development (product-development)

The benchmark drives model choice, skill pruning, memory strategy, and harness tuning.

“The benchmark became our development loop for Stack.”article, stated

agent-memory (memory)

Stack stores reusable accounting-process steps for recurring close tasks and tests them in roll-forward worlds.

“Stack has a custom-built memory architecture that tracks users' processes and ensures tasks are executed consistently each month.”article, stated

context-compaction (prompting)

Ramp prunes and shrinks skills so context contains relevant bookkeeping guidance rather than unrelated content.

“Reduce unnecessary context bloat to improve model performance”article, stated

model-routing (model-selection)

The benchmark compares frontier model options and system choices by accuracy and runtime.

“It let us make decisions that would otherwise have been vibes-based: which frontier models were worth using”article, stated

Tradeoffs

Use synthetic benchmark worlds

Chose static offline accounting worlds and criteria over waiting for customer production repeats.

Rationale: This gives fast, comparable feedback across business types and task categories.

“It is a static snapshot of the world that you can hill climb against before having customers interact with the model.”article, stated

Write step-oriented memory

Chose source-file mappings, schedule structures, GL accounts, calculation methods, and validation checks over free-form answer summaries.

Rationale: Reusable process transfers better than plausible old-answer summaries.

“source-file mappings, schedule structure, GL account names, calculation methods, and validation checks.”article, stated

Balance accuracy and runtime

Chose Pareto-frontier model/system analysis over optimizing accuracy alone.

Rationale: Accounting users also experience the agent's end-to-end task runtime.

“Users also care about latency. We therefore consider an additional tradeoff: accuracy versus runtime.”article, stated

Gotchas (what bit them)

Skill bundles can hurt through context bloat.

Root cause: Agent systems accumulate too many long skills, many of which are neutral or negative.

Resolution: Ramp uses skill ablation and shrinkage to retain only useful skills.

“Agent systems tend to accumulate too many skills, and those skills tend to get too long.”article, stated

Memory can smuggle stale facts into future periods.

Root cause: A memory may preserve an old task's fact pattern rather than a general reusable workflow.

Resolution: Ramp moves toward step-oriented memories and filters period-specific details.

“The strategies that hurt had the opposite shape: the memo smuggled in the old task's fact pattern.”article, stated

A single task or world can mislead optimization.

Root cause: Skill effects vary by world and task category.

Resolution: The benchmark measures across many worlds, tasks, and criteria.

“a single task or a single world would have produced the wrong intuition.”article, stated

Evaluation

Ramp uses accountant-written criteria over synthetic worlds, five independent runs per task, Pass@1/Pass@5/Pass^5/mean criteria accuracy, task-category analysis, memory on/off roll-forward tests, skill ablations, and runtime-vs-accuracy comparisons.

Metrics: 237 tasks and 3,469 grading criteria · Pass@1, Pass@5, Pass^5, and Mean Criteria Accuracy · five independent runs per task · memory 56.0% to 61.5% · fastest GPT 5.4 around 4 minutes per task and slowest Gemini 3.5 Flash just over 20 minutes

3 supporting quotes
“every metric in this post is based on five independent runs per task.”article, stated
“Pass@1: a single attempt fully satisfies all criteria on a task”article, stated
“the fastest model, GPT 5.4, takes ~4 minutes per task, whereas the slowest, Gemini 3.5 Flash, takes just over 20 minutes.”article, stated

Outcomes

The benchmark is rich: 8 worlds, 237 tasks, 3,469 criteria, five runs per task, and explicit runtime/accuracy tradeoffs.

3 supporting quotes
“First, Ramp Stack has the highest performance of all the agents.”article, stated
“Ramp Stack improves every category, with the largest absolute lift on variance analysis and reconciliation.”article, stated
“the benchmark stops being a scoreboard and starts becoming a product development engine.”article, stated