rtrvr.ai

RTRVR SIMULATIONS / AGENT BENCHMARK

How AI agents score on
real business software.

4 models side by side on 113 long-horizon tasks in 12 live replicas of signed-in business software, graded by deterministic checks on the final app state.

Plain-text version for agents and crawlers: /simulations.md
01RESULTS · SUITE V2

How models do on the suite

4 models side by side, most successful first, on the same environments, tasks and verifier. Success rates carry 95% Wilson intervals; mean rewards carry 95% bootstrap intervals over tasks.

Offline benchmark on synthetic replicas; not live traffic

Every model, side by side

Most successful first. Error bars are 95% intervals; cost is the list API price per episode.

Success rate

Mean reward

Cost per episode

Results by model, most successful first, with 95% intervals and list-price cost
ModelRan intasks × seeds per taskSuccess rate95% intervalMean reward95% intervalCost per episodelist API priceCost per successlist API priceSteps to successmedianModel latencyp50 / p90, pinned supplier
Claude Opus 5.5Claude Code113 tasks × 1 seed92.9%86.6–96.4%0.9880.976–0.998$17.79lower bound$19.15lower bound——
GPT-6.1 SolCodex CLI113 tasks × 1 seed90.3%83.4–94.5%0.9650.942–0.992$3.54$3.93——
DeepSeek FlashMax reasoningrtrvr agent113 tasks × 2 seeds62.4%55.9–68.4%0.8960.855–0.937$1.38$2.221303.6 s / 13 s
DeepSeek FlashLow reasoningrtrvr agent113 tasks × 2 seeds38.1%32.0–44.5%0.7700.725–0.808$0.83$2.191161.9 s / 6.4 s
GLM 5.3 FlashHigh reasoningrtrvr agent113 tasks × 3 seeds33.9%29.1–39.1%0.7960.758–0.827$0.58$1.701112.7 s / 10 s
GLM 5.3 FlashLow reasoning · production defaultrtrvr agent113 tasks × 3 seeds9.1%6.5–12.7%0.5770.530–0.622$0.59$6.401122.2 s / 7.1 s

Cost

Open-weight models cost $0.58 to $1.38 per episode and $1.70 to $6.40 per success; Anthropic and OpenAI models cost $3.54 to $17.79 per episode and $3.93 to $19.15 per success. DeepSeek Flash, max reasoning reaches 62.4% at $2.22 per success; Claude Opus 5.5 reaches 92.9% at $19.15 or more, 8.6× as much per success. The cheapest closed-model success, GPT-6.1 Sol at $3.93, costs 2.3× the cheapest open-weight success (GLM 5.3 Flash, high reasoning, $1.70).

Success rate by kind of task
Success rate by kind of task, with 95% intervals
ModelTier 3Tier 4With faultsNo faultsWith a correctionNo correction
DeepSeek FlashMax reasoning69.6%59.5–78.0%57.5%49.0–65.5%59.9%51.3–67.8%66.0%55.9–74.7%45.5%34.0–57.4%69.4%61.9–76.0%
DeepSeek FlashLow reasoning50.0%40.0–60.0%29.8%22.8–38.1%38.6%30.8–47.1%37.2%28.1–47.3%25.8%16.8–37.4%43.1%35.7–50.9%
GLM 5.3 FlashHigh reasoning39.9%32.1–48.2%29.8%23.9–36.5%32.8%26.7–39.6%35.5%28.1–43.6%25.3%17.7–34.6%37.5%31.6–43.8%
GLM 5.3 FlashLow reasoning · production default15.9%10.8–23.0%4.5%2.4–8.3%10.1%6.6–15.1%7.8%4.4–13.4%6.1%2.8–12.6%10.4%7.2–14.9%
How these rows were run
  • GLM 5.3 Flash ran all 113 tasks with 3 seeds per task, DeepSeek Flash all 113 tasks with 2 seeds per task, Claude Opus 5.5 all 113 tasks once and GPT-6.1 Sol all 113 tasks once.
  • DeepSeek Flash and GLM 5.3 Flash ran with rtrvr's production act prompt and tools. Claude Code subagents (Claude Opus 5.5) and OpenAI's Codex CLI (GPT-6.1 Sol) drive the same gym through a command-line wrapper, one action per call. Every row used the same environments, task text, tools, step budgets and deterministic verifier; prompts, context handling and reasoning settings are each harness's own, so a row measures a model and its harness together.
  • GLM 5.3 Flash at low reasoning is rtrvr's production default.
  • Harness: rtrvr act (production prompt path), prompt act cd0e0112, tool profile sim-core-v1, step cap 400, run 2026-10-12 to 2026-10-14.
  • Harness: Claude Code, tool profile sim-core-v1 through the command-line wrapper, run 2026-10-18.
  • Harness: Codex CLI, tool profile sim-core-v1 through the command-line wrapper, run 2026-10-12 to 2026-10-15.
  • DeepSeek Flash ran with a no-reasoning continuation clamp: a step that hits the output cap while still reasoning is retried once with reasoning off (low reasoning: all 226 episodes; max reasoning: all 226 episodes).
  • Steps and model latency appear only for rows run in rtrvr's agent: the command-line wrapper takes one action per step, where rtrvr's agent can batch several, and those harnesses do not report per-call latency.
  • Model latency is measured on one pinned supplier per model. It is not the latency users see in production.
  • Claude Opus 5.5: output tokens are estimated from visible output, because the harness does not record final output-token counts, so the list cost is a lower bound.
  • Cost is each model maker's list API price for the tokens an episode used, with cached input at the cached rate: the same basis for every row, not what rtrvr pays.
  • These results are separate from the Artificial Analysis index and from the live production numbers on the models page.
Compare models on live production traffic
Previous release: v1 · Oct 2026

v1 ran 100 tasks on 12 environments. v2 added 13 tasks and moved 7 environments to a new version, so rows from the two releases are not directly comparable.

Previous release: v1 · Oct 2026: results by model, most successful first, with 95% intervals
ModelRan intasks × seeds per taskSuccess rate95% intervalCost per successlist API price
Claude Opus 5.5Claude Code100 tasks × 1 seed97.0%91.5–99.0%$19.36lower bound
GPT-6.1 SolCodex CLI25 tasks × 1 seed · development and public tasks80.0%60.9–91.1%$4.69
DeepSeek FlashMax reasoningrtrvr agent100 tasks × 2 seeds68.5%61.8–74.5%$1.74
GPT-6 SolCodex CLI20 tasks × 1 seed · development tasks50.0%29.9–70.1%$13.21
DeepSeek FlashLow reasoningrtrvr agent100 tasks × 2 seeds42.0%35.4–48.9%$2.27
GLM 5.3 FlashHigh reasoningrtrvr agent100 tasks × 3 seeds35.3%30.1–40.9%$1.60
GLM 5.3 FlashLow reasoning · production defaultrtrvr agent100 tasks × 3 seeds7.0%4.6–10.5%$7.61
02FOR RTRVR USERS

Which model to pick in rtrvr

The best tradeoffs: no other model is both more successful and cheaper per success, or more successful for at most 5% more per success. Rates and list prices are from the results above.

  1. Highest success

    Claude Opus 5.5

    Success
    92.9%86.6–96.4%
    Per episode
    $17.79
    Per success
    $19.15lower bound

    Ran in Claude Code on all 113 tasks. In rtrvr with your own Anthropic key.

  2. 4.9× cheaper per success

    GPT-6.1 Sol

    Success
    90.3%83.4–94.5%
    Per episode
    $3.54
    Per success
    $3.93

    Ran in Codex CLI on all 113 tasks.

  3. 8.6× cheaper per success

    DeepSeek Flash

    Max reasoning

    Success
    62.4%55.9–68.4%
    Per episode
    $1.38
    Per success
    $2.22

    Ran in rtrvr's production agent on all 113 tasks. In rtrvr as a managed model or with your own DeepSeek key.

  4. Lowest cost per success

    GLM 5.3 Flash

    High reasoning

    Success
    33.9%29.1–39.1%
    Per episode
    $0.58
    Per success
    $1.70

    Ran in rtrvr's production agent on all 113 tasks. In rtrvr as a managed model.

On Auto and Free Mode (low reasoning), DeepSeek Flash solved 38.1% against 9.1% for GLM 5.3 Flash. Raising reasoning effort lifted GLM 5.3 Flash from 9.1% to 33.9% (low to high) and DeepSeek Flash from 38.1% to 62.4% (low to max).

Auto runs GLM 5.3 Flash and DeepSeek Flash at low reasoning. For long, multi-app tasks, set reasoning to High or Max in the model picker. The free plan holds managed models at Low or Off; High and Max need a paid plan, or your own API key.

03FOR AI LABS

Environments to train and evaluate agents

Long-horizon, high-value work: the day-to-day responsibilities of accountants, recruiters, compliance specialists, procurement managers, RevOps analysts and security admins. Every task ships its apps, its tools and its verifier.

  • Separates models, leaves headroom

    On the 6 rows that ran all 113 tasks, success spans 9.1% (GLM 5.3 Flash, low reasoning) to 92.9% (Claude Opus 5.5). The best open-weight model, DeepSeek Flash, max reasoning, trails Claude Opus 5.5 by 30.5 points: room to train into.

  • Partial credit on every episode

    Rewards run from 0 to 1. Mean reward is 0.58 to 0.99 where success is 9.1% to 92.9%, so failed episodes still carry signal.

  • Long horizons

    Successful episodes in rtrvr's agent take a median of 111 to 130 steps; 67 of 113 tasks are tier 4 (150–300 actions); reference solutions to the public tasks take 64 to 219 actions.

  • Known rollout cost

    Per episode at list API prices: $0.58 to $1.38 for open-weight models and $3.54 to $17.79 for Anthropic and OpenAI models, measured over 1,356 episodes.

  • Hard cases built in

    66 tasks inject production failures and 33 script a user correction. A scripted mid-task correction and tier-4 length lowered success for every model setting measured by kind of task.

Plug in your agent

HarborEach task exports as a Harbor task. A sidecar hosts the apps, the pinned extension in headless Chromium, the MCP tool server and the verifier, on a network with no internet access.
harbor run -p ./rtrvr-sim/<task-id>-s0 -a claude-code -m <provider>/<model>
harbor run -p ./rtrvr-sim/<task-id>-s0 -a oracle   # reference solution
MCP tool serverAny MCP-capable agent drives an episode over streamable HTTP: get_observation, click_element, type_into_element, goto_url, upload_file, answer_task and the rest of the tool profile.
[[environment.mcp_servers]]
name = "rtrvr-sim"
transport = "streamable-http"
url = "http://sim:8000/mcp"
Gym APIA JSON API for your own loop. Every step returns the new observation, the action receipts and, at the end, the reward.
POST /reset {"task_id": "<task-id>", "seed": 0, "tool_profile": "sim-core-v1"}
  -> {episode_id, observation, tools, task}
POST /step  {"episode_id": "<id>", "action": {"tool_name": "click_element", "args": {"tab_id": 0, "element_id": 412}}}
  -> {observation, reward, done, info}
Neutral CLIRun any OpenAI-compatible endpoint through the same harness and verifier.
rtrvr-sim run --policy https://<endpoint>/v1 --model <model-id> --tasks <task-ids>
TRLA generated environment_factory class with one typed method per tool, for GRPO training.
from trl import GRPOTrainer
from rtrvr_sim_trl import RtrvrSimEnv  # one typed method per tool

trainer = GRPOTrainer(
    model=model,
    train_dataset=tasks,          # rows carry task_id and seed
    reward_funcs=episode_reward,  # reads the verifier's reward at episode end
    environment_factory=RtrvrSimEnv,
)

Each task's verifier writes reward, success, weighted score, steps, invalid actions, no-op actions that left the page unchanged, gates passed and whether the agent answered.

Held-out tasks as hosted evaluation

The held-out split never leaves our infrastructure, so scores stay comparable and the tasks stay out of training data. Send an endpoint and we run the split with the same harness and verifier.

Ask about hosted evaluation

Custom environments

Tell us the workflow your model needs to learn and we replicate the software around it, with generated data and a deterministic verifier.

Request a custom environment
04THE SUITE

12 environments, 113 tasks

By length: 67 in tier 4 (150–300 actions) and 46 in tier 3 (60–150 actions). Across the suite, 66 inject production failures, 33 include a scripted user correction, 100 span more than one app and 8 are fully or partly infeasible.

12 unbranded replicas

4 of 12 environments were built from anonymized production page structure; 8 were authored from product documentation. Each aggregated environment lists how closely its replica matches the structure it was built from.

12 of 12 environments

  • Hiring and HR12 pages

    Careers

    Employer career sites: job postings and application forms

    Built from anonymized production page structure

    Path recall
    91%
    Label recall
    97%
    Role divergence
    0.10
    Action-hint divergence
    0.02
  • IT and engineering30 pages

    Code Host

    Source code hosting and review

    Built from anonymized production page structure

    Path recall
    97%
    Label recall
    98%
    Role divergence
    0.12
    Action-hint divergence
    0.08
  • Sales and support22 pages

    CRM

    Customer relationship management

    Authored from product documentation

  • Government29 pages

    State Business Services

    Government services portals

    Built from anonymized production page structure

    Path recall
    90%
    Label recall
    92%
    Role divergence
    0.20
    Action-hint divergence
    0.06
  • Workspace16 pages

    Groupware

    Email, files, documents and calendar

    Authored from product documentation

  • Hiring and HR30 pages

    HR Suite

    Enterprise HR suites: candidate application wizard and employee self-service

    Authored from product documentation

  • IT and engineering50 pages

    Access Admin

    Cloud identity and access administration

    Authored from product documentation

  • Finance and purchasing32 pages

    Ledger

    Invoicing, accounting, payables and receivables

    Authored from product documentation

  • Finance and purchasing24 pages

    Payments

    Payments operations dashboards

    Built from anonymized production page structure

    Path recall
    99%
    Label recall
    99%
    Role divergence
    0.22
    Action-hint divergence
    0.07
  • Finance and purchasing26 pages

    Procure

    Procurement and business purchasing

    Authored from product documentation

  • Sales and support17 pages

    Support Desk

    Customer support ticketing

    Authored from product documentation

  • Workspace11 pages

    Tables

    Block workspace: pages and databases

    Authored from product documentation

5 public tasks

5 of the 113 admitted tasks are public. The other 108 stay private, and the 86 held-out tasks run only as hosted evaluation. Of 113 admitted tasks, 54 were derived from anonymized production agent tasks, 8 were informed by anonymized usage statistics and 51 were authored from product documentation.

  1. 01engineering manager

    Contractor access and team role audit with sign-off

    Length
    Tier 3 · 60–150 actions
    Apps
    Code Host, Groupware
    Reference solution
    64 actions
    Step budget
    96
    Provenance
    Authored from product documentation
    • Approval pause
    Summary, instruction and verifier checks

    An engineering manager audits outside collaborators and team roles on a code host against a contractor roster spreadsheet and a collaborator policy document. Contractors whose contract ended, or who aren't on the roster, lose all access except keep-list rows; active contractors lose access outside their contract scope and are lowered to their contract role without ever being raised, and a contract ending today still counts. Suspended people leave every team and only listed leads may stay team maintainers. Removing an Admin grant needs the requester's sign-off on the full list, and the requester holds one back until a vendor handover finishes.

    The instruction

    Please audit outside collaborators and team roles in Code Host against our Collaborator policy and the Contractor roster (Groupware › Files › Engineering › Vendors). Today is 2026-09-10. Ask me before you remove anything that has Admin. When you're done, list the access you removed as "repository: @login" (the repository's short name, without the organization) and tell me how many team membership changes you made.

    The verifier checks

    • At least one access entry or team role was changed
    • warehouse-loader: @aingersoll-ext lowered to Write (above the contract role)
    • mobile-app: @aingersoll-ext removed (outside the contract scope)
    • design-system: @astridthorvaldsen removed (contract ended)
    • developer-docs: @astridthorvaldsen removed (contract ended)
    • developer-docs: @estanhope-ext removed (outside the contract scope)
    • admin-console: @fdunmore-ext removed (contract ended)
    • developer-docs: @fokafor-ext removed (contract ended)
    • warehouse-loader: @pkowalczyk-ext lowered to Read (above the contract role)
    • developer-docs: @pkowalczyk-ext removed (outside the contract scope)
    • mobile-app: @rkowalczyk-ext removed (outside the contract scope)
    • developer-docs: @rkowalczyk-ext lowered to Write (above the contract role)
  2. 02RevOps analyst

    Turn call recaps into next steps and follow-ups

    Length
    Tier 4 · 150–300 actions
    Apps
    CRM, Groupware
    Reference solution
    171 actions
    Step budget
    360
    Provenance
    Authored from product documentation
    • Server error (500) on the first save
    • Confirm dialog before submitting
    • Required field in a collapsed section
    • 1 scripted correction
    Summary, instruction and verifier checks

    A sales manager's team emails a recap after every customer call. The RevOps analyst applies each recap of an open deal currently owned by the team: the deal's next step becomes the recap's text and one follow-up task is created on the deal with a standard subject, the recap's follow-up date (a date the rep corrects in a later reply wins, and a missing date means a week after the call), a priority that depends on the deal stage, and the deal owner as assignee. Recaps for closed deals, deal names that are not in the CRM (even when a similarly named deal exists) and deals owned by another team (including one reassigned since the call) are skipped and counted by reason, and a forwarded copy of a recap must not create a second task. The first task save fails with a server error, every task save asks for confirmation and the next-step field starts collapsed. Partway through, the manager announces that one rep is going on leave and that follow-ups for that rep's deals go to the manager instead, including any already created.

    The instruction

    Kasimir Farrow's Central team sent their call recaps to my inbox in Groupware. Please process every call recap there (whoever sent it) in the CRM as described in "Call recap follow-up standard" (Groupware, Files > Sales Operations > Playbooks). Answer with how many deals you updated, how many follow-up tasks you created, and how many recaps you skipped under each code (CLOSED, NOT_FOUND, OTHER_TEAM; give all three, 0 when none).

    The verifier checks

    • At least one follow-up task was created
    • Ravensloe Hospitality – Reporting suite FY26: Next step "Rollout plan walkthrough"
    • Ravensloe Hospitality – Reporting suite FY26: one open follow-up task "Follow up: Rollout plan walkthrough" due 2026-06-03, normal, owner 4
    • Juniperra Veterinary Clinic – Data migration FY26: Next step "Implementation timeline review"
    • Juniperra Veterinary Clinic – Data migration FY26: one open follow-up task "Follow up: Implementation timeline review" due 2026-06-07, high, owner 12
    • Caldovine Realty – Training package FY26: Next step "Second demo for the warehouse leads"
    • Caldovine Realty – Training package FY26: one open follow-up task "Follow up: Second demo for the warehouse leads" due 2026-06-04, normal, owner 4
    • Nevrassa Consulting – Security bundle FY26: Next step "Usage forecast for the second year"
    • Nevrassa Consulting – Security bundle FY26: one open follow-up task "Follow up: Usage forecast for the second year" due 2026-06-12, normal, owner 10
    • Marrowby Realty – Partner portal FY26: Next step "Procurement intake form submitted"
    • Marrowby Realty – Partner portal FY26: one open follow-up task "Follow up: Procurement intake form submitted" due 2026-06-21 (date corrected in a reply), high, owner 4
    • Carrowmere Pharmacy – Mobile access FY26: Next step "Security questionnaire back from IT"
  3. 03cloud security administrator

    Least-privilege migration wave with blocked rows

    Length
    Tier 4 · 150–300 actions
    Apps
    Access Admin, Groupware
    Reference solution
    196 actions
    Step budget
    294
    Provenance
    Authored from product documentation
    • Includes an infeasible item
    Summary, instruction and verifier checks

    A cloud security administrator applies a least-privilege migration plan across four non-production projects in a cloud access console: for each plan row, replace the principal's Editor role with exactly the listed roles in one change (keeping other roles, never granting a role twice), resolve rows that name permissions to the single smallest role that covers them, and record each row's result in the plan sheet. Three rows can't be applied (no single role covers the permissions, a listed custom role is disabled, the Editor role is only inherited from a folder): the administrator must leave them untouched, record a reason code and report the wave as partial.

    The instruction

    Please run wave 3 of our least-privilege migration in Access Admin today (Tuesday, September 8, 2026). The rows are in the "Least-privilege migration plan - wave 3" sheet in Groupware (Files, Platform › Least privilege), and the Least-privilege migration standard in the same folder says how each row is applied, which rows can't be applied, and the reason codes to use. Fill in the plan's Result column for every row as you go. When you're done, answer with status "partial" if any row could not be applied (otherwise "completed"), how many rows you applied and, for each reason code (NO_COVERING_ROLE, ROLE_DISABLED, INHERITED_ONLY), the emails of the principals whose rows were blocked with it.

    The verifier checks

    • The answer status is "partial" (some rows could not be applied)
    • CHG-2597: vikram.sandoval@pellmore-hospitality.example.test on partner-api-staging-7415 has exactly database-client, secrets-reader (Editor replaced, other roles kept)
    • CHG-2597: the Editor removal carries the change ID as its reason
    • CHG-2597: the plan's Result says Done (a short note after it is fine)
    • CHG-2598: freya.adeyemi@pellmore-hospitality.example.test on partner-api-staging-7415 has exactly artifacts-writer, functions-developer (Editor replaced, other roles kept)
    • CHG-2598: the Editor removal carries the change ID as its reason
    • CHG-2598: the plan's Result says Done (a short note after it is fine)
    • CHG-2599: default-runtime@partner-api-staging-7415.svc.example.test on partner-api-staging-7415 has exactly functions-developer, logging-viewer (Editor replaced, other roles kept)
    • CHG-2599: the Editor removal carries the change ID as its reason
    • CHG-2599: the plan's Result says Done (a short note after it is fine)
    • CHG-2600: freya.adeyemi@pellmore-hospitality.example.test on partner-api-dev-7238 has exactly keys-user, secrets-viewer (Editor replaced, other roles kept)
    • CHG-2600: the Editor removal carries the change ID as its reason
  4. 04payments operations analyst

    Work the support refund queue under the refund policy

    Length
    Tier 4 · 150–300 actions
    Apps
    Payments, Support Desk, Groupware
    Reference solution
    219 actions
    Step budget
    330
    Provenance
    Authored from product documentation
    • Server error (500) on the first save
    • Required field in a collapsed section
    Summary, instruction and verifier checks

    A payments operations analyst works the refund requests that the support desk routes to finance. For each ticket the analyst finds the store payment in the payments dashboard, applies the written refund policy in order (bank disputes, requests already refunded or raised twice, an approval limit that sends large refunds to the controller, double checkouts, damaged deliveries within 60 days, change-of-mind returns within 30 days with a restocking fee, and late deliveries that earn the shipping fee back) and refunds exactly what the policy allows with a ticket-number note. The first refund save fails with a server error and must be retried without refunding twice. Each ticket then gets an outcome tag, the refunded amount, a reply quoting the refund reference and the right status.

    The instruction

    Support Desk has routed this week's refund requests to finance (Billing group tickets tagged refund_request). Work every unsolved one under the "Customer Refund Policy" in Groupware Files (Finance > Policies): decide each request in Payments, refund there exactly what the policy allows, then tag, fill in and answer the ticket in Support Desk as the policy says. Create at most one refund per payment (a failed save must not end up refunded twice), and don't change anything else in either app. When you're done, answer with the IDs of the refunds you created, the total amount refunded and the numbers of the tickets you escalated.

    The verifier checks

    • At least half of the refund-request tickets carry an outcome tag
    • #4323 (Wrenhollow Mechanical): tagged refund_denied (and no other outcome), product area Hardware & orders, order ORD-41458, refund amount empty
    • #4323 (Wrenhollow Mechanical): public reply
    • #4323 (Wrenhollow Mechanical): Solved
    • #4324 (Sabrevel Tree Care): PAY-WLL6GVE3 refunded once, $118.00, reason Customer request, note "Ticket #4324"
    • #4324 (Sabrevel Tree Care): tagged refund_full (and no other outcome), product area Hardware & orders, order ORD-41461, refund amount $118.00
    • #4324 (Sabrevel Tree Care): public reply with the refund ID
    • #4324 (Sabrevel Tree Care): Solved
    • #4325 (Norvessa Garage Doors): PAY-PSM6YWKE refunded once, $186.15, reason Customer request, note "Ticket #4325"
    • #4325 (Norvessa Garage Doors): tagged refund_partial (and no other outcome), product area Hardware & orders, order ORD-41464, refund amount $186.15
    • #4325 (Norvessa Garage Doors): public reply with the refund ID
    • #4325 (Norvessa Garage Doors): Solved
  5. 05operations analyst

    Stand up a customer onboarding tracker and load the hand-off data

    Length
    Tier 3 · 60–150 actions
    Apps
    Tables
    Reference solution
    151 actions
    Step budget
    227
    Provenance
    Authored from product documentation
    Summary, instruction and verifier checks

    An operations analyst sets up a new page with a customer onboarding database from a written spec: the starter database is renamed and reshaped (renamed title and long-text properties, the starter stage options renamed and extended), eight properties are added, and five views are built: a renamed sorted table, an any-of filter with a nested all-of group, a two-level grouped table, a board with chosen card properties, and an intake form with custom labels, a required question, a custom button and a confirmation message. The pasted sales hand-off list must be cleaned on the way in (owner initials mapped to full names, coded plan, phase and health values, year/month/day dates the importer cannot read, a test account and a customer entered twice), and finance's ARR corrections must update only the matching onboardings without adding the customer that is not onboarding.

    The instruction

    We're moving customer onboarding out of the sales hand-off spreadsheet into Tables. Please create a new page called "Customer Onboarding" with a database on it (start from the starter database) and shape that database into our tracker: DATABASE "Onboardings" (rename the starter database; keep its properties, renamed): - Account: the title property (the starter's Name), required. - Blockers: the starter's Details (Long text). - Stage: keep the starter's Stage property but its options must be, in order: Kickoff, Data migration, Training, Live, Stalled. - CSM: Select with options, in this order: Ximena Farrow, Keziah Kavanagh, Dario Alvarado. - Plan: Select, required, options in this order: Starter, Growth, Enterprise. - Kickoff date and Go-live target: Date properties. - ARR: Currency in whole dollars. - Seats: Number (whole numbers). - Health: Select with options, in this order: Green, Yellow, Red. - Sponsor email: Email. Nothing else (we don't keep the CRM reference). VIEWS: - "All onboardings": the default Table view, renamed, sorted by Go-live target, earliest first. - "At risk": a Table view showing onboardings that match ANY of: Health is Red; Stage is Stalled; Health is Yellow and the Go-live target is before today (both of those together). - "By CSM": a Table view grouped by CSM and then by Stage, sorted by ARR, highest first. - "Onboarding board": a Board with a column per Stage; cards show CSM, Health and Go-live target only. - "Onboarding intake": a form whose questions are, in this order: Account labelled "Customer name"; Plan; Seats; Sponsor email labelled "Executive sponsor's email" and required on the form. Button text "Start onboarding"; confirmation message "Thanks! Your CSM will reach out within one business day." DATA: here's the sales hand-off export. Owners are written as initial + surname (they're our CSMs above), plan tiers are starter / growth / ent, phase "on hold" means Stalled, RAG is G / Y / R for Green / Yellow / Red, and the dates are year/month/day. Leave out test accounts. One customer was entered twice by sales; the later row is the correct one. Don't bring in the CRM ref column. Customer,Owner,Plan tier,Phase,Kickoff,Target go-live,Annual value,Licenses,RAG,Sponsor,CRM ref,Blockers Torvalen Consulting,K. Kavanagh,ent,kickoff,2026/08/25,2026/09/05,"$154,000",625,G,teodor.pennington@torvalen-consulting.example.test,CRM-83123,SSO setup waiting on customer IT Ondrevia Insurance Agency,X. Farrow,starter,training,2026/07/20,2026/09/09,"$81,000",820,Y,gaia.thorvaldsen@ondrevia-insurance-agency.example.test,CRM-36795,Sponsor on leave until next month Serravin Motors,K. Kavanagh,ent,live,2026/08/28,2026/11/07,"$18,000",728,G,mireille.garside@serravin-motors.example.test,CRM-94087,Needs custom SLA review Dunvessa Veterinary Clinic,D. Alvarado,starter,live,2026/08/25,2026/12/02,"$147,000",338,G,kasimir.lindqvist@dunvessa-veterinary-clinic.example.test,CRM-58064,SSO setup waiting on customer IT Serravin Consulting,X. Farrow,growth,kickoff,2026/08/15,2026/10/17,"$51,000",638,G,leilani.montoya@serravin-consulting.example.test,CRM-26577,Needs custom SLA review Torvalen Consulting,K. Kavanagh,ent,live,2026/08/25,2026/09/26,"$164,000",625,G,teodor.pennington@torvalen-consulting.example.test,CRM-83123,SSO setup waiting on customer IT Westerlyn Freight,D. Alvarado,ent,kickoff,2026/08/24,2026/12/04,"$133,000",776,Y,priya.stanhope@westerlyn-freight.example.test,CRM-26750,Sponsor on leave until next month Graymantle Outfitters,X. Farrow,ent,live,2026/08/26,2026/10/29,"$80,000",162,G,jordan.pellegrini@graymantle-outfitters.example.test,CRM-46963, TEST - Wrenhollow sandbox,X. Farrow,starter,kickoff,2026/07/20,2026/10/24,"$1,000",820,Y,qa@example.test,CRM-00000, Elmstrand Realty,K. Kavanagh,ent,migration,2026/09/03,2026/10/11,"$103,000",742,G,casey.esposito@elmstrand-realty.example.test,CRM-70690,Needs custom SLA review Meridane Engineering,D. Alvarado,starter,on hold,2026/07/19,2026/09/04,"$169,000",237,G,wren.brightwell@meridane-engineering.example.test,CRM-47729, Norvessa Academy,X. Farrow,ent,training,2026/09/01,2026/11/19,"$235,000",302,R,yara.barrientos@norvessa-academy.example.test,CRM-21272,Legacy data export is late Thistlecombe Energy,K. Kavanagh,starter,live,2026/08/05,2026/10/09,"$201,000",393,G,emil.ferreira@thistlecombe-energy.example.test,CRM-83843, Nevrassa Robotics,D. Alvarado,growth,training,2026/08/27,2026/12/13,"$232,000",816,G,farida.macready@nevrassa-robotics.example.test,CRM-27412,SSO setup waiting on customer IT Ostrevel Apparel,X. Farrow,starter,migration,2026/09/10,2026/11/01,"$58,000",39,R,esperanza.jablonski@ostrevel-apparel.example.test,CRM-67152, Then apply finance's ARR corrections below to the matching onboardings. Finance's list covers all customers, so ignore anyone who isn't in the tracker; don't add them. Customer,Corrected ARR Halvessen Media,"$117,000" Dunvessa Veterinary Clinic,"$141,000" Nevrassa Robotics,"$240,000" Graymantle Outfitters,"$82,000" When you're done, tell me how many onboardings are in the tracker, which customers from either list you deliberately didn't add, and how many onboardings the At risk view shows.

    The verifier checks

    • Exactly one "Customer Onboarding" page with an "Onboardings" database
    • Hand-off rows were brought in
    • Account is the title property (renamed from Name), required
    • Details is renamed Blockers (Long text)
    • Stage options are Kickoff, Data migration, Training, Live, Stalled
    • CSM: Select with the three CSMs' full names
    • Plan: required Select with Starter, Growth, Enterprise
    • Kickoff date is a Date property
    • Go-live target is a Date property
    • ARR: Currency $ in whole dollars
    • Seats is a Number in whole numbers
    • Health: Select with Green, Yellow, Red
05HOW IT'S BUILT

How the suite is built

Generated data, unbranded apps and deterministic grading, with every provenance label counted.

  1. 01

    Structure from anonymized production pages

    For 4 of 12 environments, the interface structure is aggregated from anonymized production page data: roles, layout, action hints and short generic labels that recur across many users. No page text, values or links are kept. The other 8 were authored from product documentation.

  2. 02

    An unbranded, live app

    Each replica is a working web app with its own database, seeded with generated people, companies and records. Every tool call changes real application state.

  3. 03

    rtrvr's production observation and tools

    Agents read each page as the accessibility-tree text rendered by the pinned rtrvr extension (build 528f571), and act with rtrvr's production act tools: 37 tools in profile sim-core-v1.

  4. 04

    A deterministic verifier

    SQL, event-log and answer checks grade the final state, with no LLM judges. Faults, user corrections and approval pauses are scripted per task, so every run is repeatable.

See what an agent reads on a page

An excerpt of what an agent reads on the careers replica (a real capture; all data generated). Each [id=N] is a target for the act tools.

[h1] Data Analyst
[textbox][editable][actions=click→type:focus-first] Name * [id=7802] [name=fullName] [required] [autocomplete=name]
[textbox][editable][actions=click→type:focus-first] Email * [id=7811] [type=email] [name=email] [required] [autocomplete=email]
[combobox][autocomplete=list] Location * [id=7829] [name=location] [placeholder="Start typing a city"]
[textNode] Resume *
[occluded][textbox][read-only][actions=click→type:focus-first][format=accepts .pdf,.doc,.docx] Upload file [id=7839] [type=file]
[group] Are you legally authorized to work in the United States?
  [below][button] Yes [id=7870]
  [below][button] No [id=7872]
[below][button] Next [id=7874]

Generated data only

Every person, company, document and record is generated. Emails use example.test addresses and phone numbers use the 555-01xx range.

Unbranded

Replicas describe a kind of software, never a product: no vendor names, logos or trade dress, and the names in app chrome are generic.

Structure, not content

For the 4 environments with production structure, structure comes from k-anonymous aggregates of anonymized production pages: roles, depth, action hints and short generic labels that recur across distinct users. All page text, values, links and identifiers are dropped, and no product seen for fewer than three users contributes. An environment keeps that label only if its replica reaches path recall of at least 80%, label recall of at least 90% and action-hint divergence of at most 0.10.

No user data shipped

Real user runs contain personal data, and none of it appears in anything we ship. Environments, tasks and reference runs contain no user data: every person, company and record in the replicas is fictional.

Admission checks

A task is admitted only if its reference solution scores 1.0 on three seeds, a do-nothing agent scores 0, every mutated solution fails, two reference runs produce identical database and event hashes, and privacy and brand scans pass.

Task provenance

Of 113 admitted tasks, 54 were derived from anonymized production agent tasks, 8 were informed by anonymized usage statistics and 51 were authored from product documentation.

Fidelity to production

Capture and actuation run the same code as the production rtrvr extension (build 528f571). Two differences: input is synthetic DOM input rather than the operating system's input path, and the harness waits for the network to go idle before an episode's first capture.

RTRVR SIMULATIONS

Measure your agent on real work.

Run your model through the full suite, or tell us which workflow you need replicated. Held-out tasks run as hosted evaluation.