Oh My Otter

Methodology

What the results mean

The score and benchmark outcomes come from local checks and task verifiers. Public results are still self-reported, so sample sizes and limitations matter.

Scoring formula

Scoring version 1 gives each applicable check its weight as the maximum contribution. A pass earns its full weight and adds that full weight to the possible total. A warn earns and adds half its weight. A fail earns zero and adds the full weight. Not-applicable checks are excluded from both totals.

Score = Math.round(100 × earned ÷ possible). When possible is zero, the score is 0 and the grade is D.

A

90–100

B

75–89

C

60–74

D

0–59

Read the scoring documentation

Check weights

Each check contributes its displayed share of the total possible weight when applicable.

How check weights affect scores

Benchmark task design and verification

Each benchmark task defines objective pass, partial, and fail criteria and verifies the working result locally. At omot bench start, each task checks its own preconditions; task-specific baseline scripts may run and their exit codes are recorded. Some tasks require a clean working tree or a passing baseline test. During verification, a script failure already present at baseline is not counted, unless that script is the task's explicit target.

Every verification attempt is appended to the run, and the report records the number of attempts. Changing a task's prompt.md or verify.ts requires a version bump; aggregates count only reports for the current task version.

Limits of self-reported data

Verification runs on the submitter's machine. Agent name and version, model, human corrections, and minutes are reported claims, not independently observed measurements. Forged or misleading reports are possible. Ingest validates a strict schema and applies rate limits, and maintainers can remove report lines from the dataset.

See the privacy and report data details

Known biases

  • People choose whether to submit, and successful runs may be more likely to be reported.
  • Submitters choose which repositories and tasks to run.
  • Agent versions change over time.
  • Small samples can move rates substantially.
  • Readiness bands are confounded by the repository's stack and type; they do not establish that readiness caused an outcome.
  • Human minutes are self-estimated.
  • The current task set is small and focused on JavaScript and TypeScript repositories.

Minimum sample and ranking

A cell with fewer than 5 reports is shown as Not enough data yet. Unknown agents are grouped as Other and are never ranked. Among named agents that meet the minimum sample, ordering uses pass rate; sample size is always shown.

Explore results