TL;DR

  • Benchmarking an AI model reliably means controlling question construction, scoring methodology and statistical resolution, not just running a model against a fixed question set once.
  • This is a practical framework in three stages: construct the benchmark, run it in a way that isolates what you’re actually measuring, and interpret the result against what the sample size can even detect.
  • Here we present a case study using Groundtruth, our own dynamic benchmarking system, including a rubric defect that a human review missed and a mechanical check caught.

Key Takeaways

  • Benchmark construction choices are benchmark results. Question design and gating decide what the benchmark can even measure.
  • Statistical resolution determines what gaps are detectable. On ours, that ranged from 0.27 to 0.45 points depending on the task set; a full worked example of how that number is calculated is in a companion piece, “Measuring the Resolution of a 50-Question Benchmark.”
  • Custom benchmarks need machine-gated authoring to stay consistent. Manual authoring drifts across waves.
  • Comparing models requires holding the harness fixed. Otherwise the harness, not the model, explains the gap, as we found running eight models through one shared harness in Benchmarking an Agent Harness With the Model Held Fixed.

Search “how to benchmark an AI model” and most guides stop at the same place: pick some tasks, write a scoring rubric, run your model, read the score. That gets you a number. It doesn’t tell you whether the number means anything.

This is the framework we use for Groundtruth, the benchmark we built and run for geological reasoning. It’s written to generalise past geology. The numbers below are ours, and the stages are the same regardless of domain.

What does it mean to benchmark an AI model?

How to benchmark AI models comes down to three separable stages, and treating any one of them as automatic is where reliability breaks down: constructing a task set that actually tests what you think it tests, running it in a way that isolates the model from everything wrapped around it, and interpreting the resulting score against the resolution your sample size can support.

The part most guides skip is the middle and the end. A rubric can look complete and still double-count credit or pass the wrong reasoning, and none of that shows up by reading the rubric. It shows up when you run known answers through it and see what comes back.

Step 1: Constructing the benchmark

Before writing a single question, decide what a good outcome actually looks like, in the words of someone who does the work, not a generic accuracy target. This decision also settles whether you need a custom LLM benchmark at all. A public benchmark is enough when general capability is what you’re measuring, a model’s coding ability, its factual recall, its reasoning on textbook problems. It stops being enough once you need to know how a model performs on your own documents, your own edge cases, or a task shape no public benchmark tests.

A generic geology benchmark score told us nothing about whether a model could reason correctly over one company’s own exploration archive. That gap is why Groundtruth generates a fresh benchmark from a user’s own documents instead of reusing a fixed public one. The same logic explains how to benchmark AI models with MLPerf for hardware and inference performance specifically, rather than reaching for a general leaderboard that blurs the thing you actually need to measure. The argument for that approach, and where a public benchmark still earns its place, is in Ground Truth: Dynamic Benchmarking in Highly Specific Fields.

Tasks that resist the two easy outs. A benchmark task is only useful if a model can’t score well by cheating past the actual question. Answering from memorised general knowledge, rather than reasoning over the material in front of it, is the first shortcut; obscure, source-specific material forces a model to actually read rather than recall. Sounding right without committing to a claim is the second: a fluent, well-hedged answer that never quite states the thing being asked for can still read as good to a lenient grader. Both get closed by grounding every task in specific source material and requiring one concrete claim per question. The full generation pipeline behind our own custom LLM benchmark, including the machine checks that catch a lopsided task set before a human ever reviews it, is worth reading in full.

A rubric that produces a clean signal. Two people, or two runs of the same judge, should reach close to the same score from the same rubric and the same answer. The structural piece that does the most work here is a gate: one component tests the single claim the question exists to test, and missing it zeroes the answer regardless of how good the rest is. Without a gate, a long, confident answer that covers everything adjacent to the question collects partial credit everywhere and lands at a respectable score while missing the actual point. The full rubric structure is covered in Dynamic Benchmarking: How We Did It.

Test the rubric before you test a single model. Write fabricated answers for each question yourself, one per point on the scale, attach the score you expect each one to get, and run them through your actual judge before it ever grades a real model. We call these calibration fixtures, and running a full set turned up a defect pattern we wouldn’t have found by reading the rubrics again: across two 50-question benchmarks, 14 and 16 fixtures out of 200 scored higher than their author predicted. The dominant cause was the same each time: a component awarded credit for something the gate already required, so every answer that passed the gate collected that component automatically. On one of those benchmarks, the author’s own careful review found 2 of those cases. The mechanical fixture run found 15 more. The full account, including the exact rubric rewrites that fixed each defect, is in a companion piece, “Testing the Rubric Before You Test the Model.”

Step 2: Running the benchmark

An AI benchmarking framework has to account for more than the model once you’re running agents rather than single model calls: the tools available, the system prompt, and the retrieval layer around the model can change the score as much as the model itself.

How to compare AI models without the harness getting in the way. If two rows in a comparison differ in both model and harness, the gap between them has two possible causes and no way to separate them afterward. Holding the harness fixed and varying only the model, or pinning the model and varying only the harness, is the only way to know which one actually produced a given result. We built a second leaderboard track specifically to isolate this, covered in full in Benchmarking an Agent Harness With the Model Held Fixed.

Pick a judge, and make it accountable. If a language model assigns your scores, it’s part of your measurement instrument and needs the same scrutiny as the agent being tested. At minimum: require the judge to return a structured, machine-checkable result rather than free text, validate that result against the rubric before accepting it, and leave a question unscored rather than guessing when the judge can’t produce a valid result after a few attempts. We cover the specific contract we use, including the eleven checks a judge’s output has to pass, in AI Agent Evaluation: Frameworks, Metrics, Benchmarks, and Best Practices.

Step 3: Interpreting results

A benchmark score is not exact. To evaluate AI model accuracy, benchmarks and their baselines have to be read against a resolution, the smallest gap between two results that the sample size and grading noise can actually distinguish from chance, and that number depends on how many questions back the score.

On our three task sets, that resolution ranged from 0.27 points on the easiest-to-resolve set up to 0.45 on the hardest, using the same benchmark and the same judge. A 0.3-point improvement in benchmark AI model performance is a real finding on one and pure noise on the other. Publish that number alongside your results, or calculate it before trusting anyone else’s. A full worked example of the calculation is in a companion piece, “Measuring the Resolution of a 50-Question Benchmark.”

The other half of reliability is maintenance. A benchmark whose rubrics were shaped by watching a handful of models answer them can end up fitted to those models specifically. Holding some models out of that process, then checking they land where their general capability predicts once tested, is direct evidence the rubric grades unfamiliar models the same way it grades familiar ones. Re-running a stable reference system periodically catches the same problem from the other direction: it tells you whether a score moved because a model changed or because the benchmark quietly drifted.

Common mistakes in AI model benchmarking

  • Skipping rubric calibration. Reading a rubric and trusting it is not the same as running fabricated answers through it. The gap between the two is where most scoring defects hide.
  • Comparing models without holding the harness fixed. A score difference with two things varying at once can’t be attributed to either one.
  • Trusting a gap smaller than the benchmark’s own resolution. A 0.3-point win means nothing if your sample size can’t reliably detect gaps that small.
  • Using an LLM judge with no output contract. An unstructured judge response that can’t be validated is a guess wearing a number.
  • Never re-running a stable reference. Without one, a score change can’t be told apart from the benchmark itself drifting.

Frequently asked questions

How do you benchmark an AI model?

Construct a task set grounded in specific source material with a scoring rubric that includes a gate, test that rubric against fabricated answers before it grades a real model, run the model with the harness held fixed if it’s agentic, and read the result against the benchmark’s own statistical resolution.

What makes a benchmark reliable?

Tasks that resist memorisation and vague, confident answers; a rubric validated with calibration fixtures before real use; a judge held to a structured, auditable output contract; and a known resolution so a result isn’t over-trusted.

How is a custom LLM benchmark built?

By generating questions and rubrics directly from your own source material rather than reusing a fixed public set, then machine-checking the structure, an even difficulty spread, and evidence grounding before a human ever reviews it.

What is statistical significance in AI benchmarking?

Whether a score gap is larger than what your sample size and grading noise could produce by chance. On a 50-question benchmark, that resolution floor can run from roughly 0.27 to 0.45 points depending on the task set, so a smaller gap isn’t evidence of anything.

Where to go next

The operational deep dive behind benchmark construction is in Generating a 50-Question Benchmark With One Approval Step. The deep dives on rubric calibration and statistical resolution are forthcoming companion pieces to this one.

If the model you’re benchmarking is an agent that reads files and calls tools rather than a single model call, the measurement problem gets an extra layer. That’s covered separately in AI Agent Evaluation: Frameworks, Metrics, Benchmarks, and Best Practices and in Benchmarking an Agent Harness With the Model Held Fixed.

The full rubric design and worked results are in Dynamic Benchmarking: How We Did It and Which AI Model Is Best for Your Geology?. Current results are live on the Groundtruth leaderboard.