Skip to content
open.securityopen.securityBeta

Four commitments before any score.

The evaluator is inspectable, repeatable, public about uncertainty, and versioned when the contract changes.

Accuracy/ Sets the rank

P—01Ground truth

Every answer is checked against a closed set of entities drawn from the environment’s own data: exactly these, no more, no fewer. Naming none of them and inventing one are both wrong, so a score is checkable against something.

P—02Uncertainty first

Every number ships with the sample size behind it, and a bootstrap 95% confidence interval wherever there are at least two observations to resample. A single observation gets no interval at all. A small lead reads as a small lead.

P—03The full record

Official runs publish the score and everything behind it: what the agent answered, how it reasoned, and every query it ran against the snapshot.

P—04Open to inspection

The questions, the ground truth, the judge rubrics, the CLI and the papers are all public, so anyone can audit or reproduce a result. The reference SQL and the generator stay unpublished, and rotating the environment stops a published dataset being answered from memory. Neither guards against overfitting to a schema and a task set we publish in full. Held-out splits would, and there are none yet.

The agent gets two tools and no answers: one returns the schema, the other runs one read-only query at a time.

Nothing is handed over as files. The enterprise is served through get_schema and run_query, against a disposable per-task copy, so the harness records every statement and every row it returns. The surface is the same whether the candidate is our reference agent, Claude Code or Codex.

75 of the 127 questions are answerable inside a single system: a password policy, a root account, a set of stale keys. 52 require resolving the same person across systems that declare no keys between them, and 11 of those span three platforms or more. The schema tool hands over column names and row counts, never types and never foreign keys, so the agent has to work out for itself which columns refer to the same person.

cross-terminated-employees-fully-offboardedcross-platform
  • AWS
  • Azure
  • BambooHR
  • Google Workspace
  • Okta
5
hard

What we measure.

M—01/ Sets the rank

Accuracy

The mean judged answer score across every task in the benchmark, reported with its 95% confidence interval. Ties on the board break by consistency. It is not a weighted composite of the rubric dimensions: the rank comes from answer correctness alone, and the other judged dimensions are published as diagnostics beside it.

M—02

Consistency

How steadily results repeat across the five epochs every task runs, measured on the ranking metric. pass@1 is the mean over tasks of the fraction of that task’s scored epochs that came out fully right. pass^5 estimates that all five attempts succeed, over the tasks with all five epochs scored; a task with an unscored epoch leaves that estimate rather than counting against it. The rank uses pass^5 to break ties.

M—03

Table recall

On this board every task is answered by querying the enterprise. We extract the tables and joins from the agent’s own SQL and compare both against the reference. The board column is table recall: whether the agent reached the data the answer depends on. Join fidelity, whether it reconstructed the relationships between systems, ships in the full report with precision and F1 for both.

M—04

Answer and query quality

Of the tasks that pose a yes/no question, the share where the agent’s final call matches ground truth: binary under the panel’s consensus, with no partial credit. Enumeration tasks, the ones whose answer is a set of entities rather than a call, carry no verdict and are excluded, so this is not a share of the whole benchmark. A separate judged metric scores the semantic appropriateness of the agent’s SQL against the schema, kept in the full report.

M—05

Efficiency

What the run cost in billed tokens (input, cache, and output). The board shows the total across the full run; the report breaks it out for the agent and the judges separately.

M—06

Judge agreement

The two judges score every epoch independently, and their agreement ships as unweighted Cohen’s kappa, computed per metric and then averaged. High agreement says the panel is consistent, not that it is right. Their pooled votes set each task’s grade: the mode across all five epochs, with ties resolving to the lower grade, so no single epoch decides a grade on its own.

Five steps, one loop.

Every run moves through the same five steps, and the last one hands back to the first.

Expand a step for the full detail.

What we publish per run.

Every official run publishes all 6 entries below, whatever the score.

Every metric
The point value, the sample size behind it, and a bootstrap 95% confidence interval wherever the sample supports one: 2,000 seeded resamples, so the same run reproduces the same interval.
Per-task grades
Each task’s grade under the pooled judge consensus, on a three-level scale: wrong, partially right, or fully right.
Judge agreement
Unweighted Cohen’s kappa between the two judges, computed per metric and averaged, so a reader can see where they disagreed.
Consistency
pass@1 and pass^5 across the five epochs every task runs. pass^5 is also the tiebreak behind the rank.
The full record
Everything the agent did during the run: its answers, its reasoning and tool calls, and every statement it sent to run_query with the rows that came back.
The dataset and the judges
The pinned dataset every official run uses and the fixed judge pair that scored it: claude-sonnet-5 and gpt-5.6-terra. Both are stated by identifier on the Enterprise SQL v1 contract.

What this does not measure

Synthetic corpus
Osbench Labs is fabricated. Its patterns mirror production, but no synthetic organization reproduces a live tenant’s operational drift or incident telemetry.
Easy band
64 of the 127 tasks sit in the easy band, meaning their ground-truth query needs no join, so a headline accuracy reads higher than the 63 harder tasks alone would give it.
Contamination
The schema and all 127 questions are public. Rotating the environment stops an answer being memorized; it does not test whether an agent generalizes to a schema or a task it has not seen. Held-out splits would, and there are none yet.
Demoted metrics
4 of the 12 scored metrics stay in the report and off the board: structural precision and F1, for tables and for joins. The rule that extracts them failed its own pre-registered precision criterion, so promoting them would publish a number we have not earned.
Simplified schema
Some questions turn on schema simplifications. Okta’s mfa_required is a per-application flag here; production Okta uses sign-on policies.
Assessment only
We score assessment only. Risk prioritization, remediation and post-remediation verification are out of scope.

Read the inputs, then read the results.

The task set is what every agent is asked. The board is how they answered. Both are open to read now.