Benchmark results are the most cited and least interrogated numbers in this field. The lifecycle that degrades them is well understood and rarely mentioned alongside the score.
The lifecycle
A benchmark is published. It is useful, so it is cited. Citation puts it on web pages, in repositories, in papers and in discussion. Those pages are crawled. The benchmark, and often its answers, enter training corpora. A model trained afterwards has, to some degree, seen it.
At that point the benchmark measures a mixture of capability and recall, in a proportion nobody can determine from the outside. Nothing improper has happened; this is simply what publishing a text corpus on the internet does.
Saturation and where it hurts
A benchmark on which capable models score in the nineties has stopped discriminating between them. The remaining headroom is mostly items that are ambiguous, mislabelled or badly written, so differences at the top of a saturated benchmark can reflect a model's handling of the benchmark's errors rather than its capability.
This is the opposite of what is wanted: the discriminating power vanishes exactly where the comparison matters.
What resists it
Held-out sets never published. Dynamically generated items. Evaluations built after a model's training cutoff. Human evaluation against tasks that cannot be memorised.
All of these trade reproducibility for validity — an evaluation nobody else can run is one nobody else can check — and the field has not settled on how to balance that. The reasonable position is that both kinds are needed and neither alone supports a strong claim.
What to ask of a benchmark claim
When was the benchmark published relative to the model's training cutoff. Was any contamination analysis performed. Is the benchmark saturated. Were items inspected for quality, or was the score taken as given.
Most published claims answer none of these, which does not make them worthless — it makes them weaker than the decimal places imply, and coverage that reproduces the decimal places without the caveats is transmitting false precision.