Every time a new model drops, the announcement blog post reads the same way. "State of the art on MMLU." "New record on HumanEval." "Surpasses all previous models on GPQA Diamond." And then you try it on your actual work and it hallucinates the name of a function that doesn't exist.

I've been doing monthly model comparisons since late 2024. Every single month, at least one model claims benchmark supremacy and then falls apart in practice. Benchmarks aren't useless, but the way companies present them is designed to mislead you. Here's how to see through it.

What Each Benchmark Actually Measures

Most people treat benchmark names as black boxes. "Higher MMLU = smarter model." That's wrong. Each benchmark tests something specific, and that specific thing is usually narrower than you think.

MMLU (Massive Multitask Language Understanding) is 57 subjects of multiple-choice questions pulled from exams and textbooks. It tests whether a model can pick the right answer from four options on topics like astronomy, clinical medicine, and abstract algebra. That's it. It doesn't test reasoning. It doesn't test whether the model can explain its answer. It's a trivia contest with academic flavor. As of April 2026, the top models are all bunched between 89% and 92% on MMLU, which tells you almost nothing about how they'll perform on your code review.

HumanEval is 164 Python programming problems. Write a function, pass the test cases. Sounds useful for picking a coding assistant, right? The catch: these problems are self-contained single functions. No imports from your codebase. No context about your architecture. No dealing with flaky tests or legacy code. A model can ace HumanEval and still produce terrible code in a real project. I've seen this firsthand with models that score 95%+ on HumanEval but can't correctly modify a 200-line file without breaking half the existing logic.

GPQA (Graduate-Level Google-Proof Questions) is the one I respect most. It's expert-written questions in physics, biology, and chemistry that even PhD students struggle with. The "Google-Proof" part means the questions are designed so you can't just look up the answer. When a model does well on GPQA Diamond, it's actually doing something. But it's still testing academic problem-solving, not whether the model can follow your instructions reliably.

ARC-AGI tests abstract pattern recognition using visual puzzles. It's meant to test generalization - can the model figure out a rule from a few examples and apply it to new cases? Most LLMs are still bad at this. Scores above 50% are rare. This one exposes real weaknesses, which is probably why you don't see it in many launch announcements.

SWE-bench tests whether a model can fix real GitHub issues from open source projects. This is the closest benchmark to actual development work. It involves reading existing code, understanding the bug, and generating a working patch. But even SWE-bench has problems - the verified subset is small, and solving a curated GitHub issue is still different from your day-to-day.

BenchGecko tracks over 40 benchmarks across 346 models, and when you look at all of them together, a pattern emerges: no model wins everything. Not by a long shot. The model that tops MMLU often gets beaten on SWE-bench. The one that crushes HumanEval might be mediocre at GPQA. That alone should tell you something about how much a single benchmark number is worth.

The Cherry-Picking Problem

Here's the game every AI lab plays. You run your model against 30+ benchmarks. You find the 4-5 where you beat the competition. Those go in the blog post. The others? Buried in an appendix or just not mentioned.

I tracked this pattern in my March model comparison. When Qwen3.5 launched, the announcement emphasized MATH and code benchmarks where it actually excels. But it was quieter about long-context retrieval, where it still lags behind Claude and GPT-5. When Google updated Gemini 3.1 Pro pricing, the blog post leaned hard into multimodal benchmarks. Makes sense - that's where Gemini shines. But text-only reasoning? Different story.

OpenAI did the same thing with GPT-5 last year. The launch focused on a custom internal benchmark they created themselves. They literally graded their own homework. And the tech press reported those numbers without blinking.

This isn't fraud. It's marketing. Every company does it. But you should know the game before you take any benchmark table at face value.

The fix is simple: look at aggregated data across many benchmarks, not the handpicked ones in a press release. BenchGecko's cross-benchmark analysis shows that models performing in the top 3 on one benchmark often rank 8th or 12th on another. That gap between "best on paper" and "best for you" is where most people get burned.

The Contamination Problem

This one's ugly. Training data contamination means the model saw benchmark questions during training. It memorized the answers. It didn't reason its way to them. It just remembered.

Think about it. MMLU questions come from publicly available exams and textbooks. These are all over the internet. If your training corpus is "a large chunk of the internet," you've almost certainly included MMLU questions. The model doesn't need to understand clinical medicine. It just needs to have seen the same multiple-choice question before and remember that the answer was C.

How bad is it? Hard to say exactly. Some researchers have tried to measure contamination rates by looking for verbatim matches between training data and benchmark questions. The numbers are uncomfortable. One study found overlap rates above 10% for popular benchmarks in several open-source models. For closed-source models from OpenAI, Anthropic, and Google, we don't even know because we can't inspect the training data.

ARC-AGI was specifically designed to resist contamination because it uses novel visual patterns. That's one reason it's so much harder for current models. When you remove the ability to memorize, performance drops off a cliff. Funny how that works.

HumanEval has the same contamination issue. The original 164 problems have been online for years. They've been discussed in thousands of blog posts and GitHub repos. It would be shocking if they weren't in every major model's training data by now. That's why HumanEval+ and SWE-bench Verified exist - newer, harder-to-contaminate alternatives. But the original HumanEval score is still the one you see in press releases because the numbers look better.

Every time you see "95.2% on HumanEval," ask yourself: is that reasoning, or is that recall? You probably can't tell. Neither can the company reporting it.

Why My Rankings Don't Match Leaderboards

If you've been reading my April rankings, you've noticed my ordering doesn't match what the benchmark leaderboards would predict. There's a reason for that.

I test models on things I actually do. Refactoring TypeScript. Writing database migrations. Debugging production errors from stack traces. Reviewing pull requests. Generating test cases for edge cases I specify. These tasks involve context, constraints, and the kind of messy real-world detail that benchmarks strip away.

Last week I gave the same refactoring task to four models: take a 340-line React component and split it into three smaller components while keeping all existing tests passing. Claude Opus 4 handled it cleanly. GPT-5.4 got it mostly right but broke two test assertions. A model that scores higher than both on MMLU produced code that didn't even compile because it invented an import that doesn't exist. Classic hallucination pattern - the model was confident about something completely wrong.

According to BenchGecko's aggregated data, these models are within a few percentage points of each other on most benchmarks. But in practice, the difference between "gets the refactor right" and "generates broken code" is the difference between a useful tool and a time-waster. Benchmarks can't capture that.

This is also why head-to-head comparisons matter more than leaderboard positions. I don't care that Model A scored 91.3% and Model B scored 90.7% on some academic test. I care which one produces working code when I paste in my error log.

What to Actually Look At When Choosing a Model

So if benchmarks are unreliable marketing, what should you do? You don't ignore them completely. You just read them differently.

Look at multiple benchmarks, not one. A single number is meaningless. Five numbers start to tell a story. Ten numbers give you a real picture. If a model is top-5 across GPQA, SWE-bench, MATH, and MMLU simultaneously, it's probably actually strong. If it's top-3 on one and mediocre on the rest, it's probably been optimized for that specific test. BenchGecko's cross-benchmark analysis is good for this - it shows you where models rank across the full spread, not just the highlights.

Weight the benchmarks that match your use case. If you're a developer, SWE-bench matters more than MMLU. If you're doing scientific research, GPQA matters more than HumanEval. If you need a model for customer support, none of these standard benchmarks are particularly useful - you'd want to test conversation quality directly. I've written before about the specific tools I pay for and why - in every case, the decision came from hands-on testing, not benchmark tables.

Check the date. Benchmarks go stale. A score from six months ago on a model that's been updated three times since tells you nothing about the current version. This is especially true for API-served models where the provider can swap weights without telling you. I've had models suddenly get worse on tasks they used to handle fine - no announcement, no changelog, just quietly degraded performance.

Test on your own tasks. This is the boring answer, but it's the right one. Take three or four real tasks from your work. Not toy problems. Real messy stuff with context and edge cases. Run them through the models you're considering. The one that performs best on your work is the best model for you, regardless of what any leaderboard says. I do this every month for my model comparisons and the results surprise me regularly.

Look at failure modes, not just success rates. A model that scores 88% but fails gracefully (admits uncertainty, asks for clarification) is often more useful than one that scores 92% but confidently hallucinates when it doesn't know something. Benchmarks only measure whether the model got the right answer. They don't tell you what happens when it gets the wrong one.

Be suspicious of custom benchmarks. When a company creates its own evaluation and then - surprise - beats everyone on it, that's not science. That's advertising. Give me third-party evaluations or give me nothing.

The Real Lesson

Benchmarks exist to sell models. That's their primary function in 2026 and it's been that way since GPT-4 launched with a blog post about passing the bar exam. The academic purpose of benchmarks is real and valid, but by the time a number reaches a marketing slide, it's been stripped of context and weaponized for sales.

Does that mean benchmarks are worthless? No. When you see a model score well across many different benchmarks from different sources, that signal is real. When you see consistent improvement on hard benchmarks like ARC-AGI and GPQA Diamond over multiple model versions, that's genuine progress. The problem isn't measurement itself. It's trusting any single measurement, from any single source, as proof that a model is "the best."

I use benchmarks as a first filter. They tell me which 4-5 models are worth actually testing. Then I throw real work at those models and see which ones hold up. That approach has served me better than any leaderboard. If you want to see how that plays out in practice, my April model comparison walks through the full process, and my posts on Gemini vs GPT-4 and whether fine-tuning is worth it go deeper on specific cases.

The models keep getting better. The benchmarks keep getting gamed. Read the numbers, but trust your own tests.

FAQ

What is MMLU and why do AI companies use it?

MMLU (Massive Multitask Language Understanding) tests a model on 57 academic subjects using multiple-choice questions. AI companies highlight MMLU scores because they're easy to optimize for and produce impressive-sounding numbers. But MMLU mostly tests memorization of textbook facts, not real-world reasoning ability.

Are LLM benchmarks reliable for choosing a model?

Not on their own. Benchmarks measure narrow, specific tasks under controlled conditions. Real-world performance depends on your actual use case - coding, writing, analysis, conversation. The best approach is to test models on your own tasks and cross-reference multiple benchmarks using aggregators like BenchGecko rather than trusting any single score.

What is benchmark contamination in LLMs?

Benchmark contamination happens when a model's training data includes questions or answers from the benchmark test set. This inflates scores artificially because the model has memorized the answers rather than demonstrating genuine capability. It's a widespread problem that most providers don't adequately address.

What does HumanEval actually measure for coding models?

HumanEval tests whether a model can generate correct Python functions for 164 programming problems. These are mostly simple, self-contained functions - not the kind of multi-file, context-heavy coding that developers actually do. A model can score 95% on HumanEval and still produce garbage when working on a real codebase with dependencies and edge cases.

How many benchmarks should you look at when comparing AI models?

At minimum, look at 5-10 benchmarks across different categories: reasoning (GPQA, ARC-AGI), coding (HumanEval, SWE-bench), knowledge (MMLU), and math (GSM8K, MATH). BenchGecko tracks over 40 benchmarks across 346 models, which gives a much better picture than any single leaderboard.