Concepts

How we check

No single test catches everything, so we combine several. All of them only use the provider's normal API through OpenRouter.

Running now

  • Top answer. Short prompts with one word answers, asked at temperature 0 every day. We count how often each provider's top answer equals the maker's own endpoint, and compare that with how often the other providers agree. This decides the verdict.
  • Answer spread. Many sampled answers compared with the maker. It also reacts to harmless setup differences, so we show it for reference only.
  • Word probabilities. Where providers return token probabilities, we compare them with the other providers. We also note providers that list them but return none.
  • Pinned routing. Each test is pinned to one provider with fallbacks off, and we check who actually answered.
  • Reasoning switch. We ask for no reasoning and check that the provider respects it.

Coming next

  • Capability. Known answer maths and code questions.
  • Tool calls. Official tool prompts replayed. We check the schema and when tools fire.
  • Long context. Recall tests at long input lengths.
  • Your traffic. Opt in. A small share of your requests compared with the maker.

Avoiding false alarms

  • Two honest providers never match exactly, so each provider is compared with the other providers, not with perfection.
  • We correct for testing many providers at once.
  • A clear gap puts a provider on watch. It is marked as no match only after 2 strong failures on different days.
  • A provider that is offline keeps its last verdict, marked offline, until we can test it again.
  • Every result shows the sample size and how far it is from the others.
  • Providers can reply on their scoreboard page.

Wording

Most failures are honest bugs like a broken tool parser or a wrong chat template. We say "does not match", never "cheating". A result is not a claim about intent.