Naar inhoud

Benchmarks

Methodologie

Hoe Tokonomix de prestaties van AI-modellen meet. Geen leveranciersinvloed. Geen gesponsorde resultaten. Transparante methodologie, open data.

Mes Kalkan, Oprichter, Tokonomix··

Snelheid

Hoe snel reageert het model? We meten time-to-last-token voor een prompt met vaste outputlengte.

🧠

Intelligentie

Hoe capabel is het model? Modellen worden direct tegen elkaar vergeleken op identieke prompts, en een Bradley-Terry-fit maakt daar een rating van.

💚

Beschikbaarheid

Is de API beschikbaar? We peilen elke 5 minuten en houden foutpercentages en uptime-vensters bij.

Snelheidsbenchmark

Prompt: Een vaste instructie die op ongeveer 500 outputtokens mikt. Dezelfde prompt wordt voor elk model in elke testcyclus gebruikt.

Runs: 3 opeenvolgende calls per testcyclus. We meten end-to-end latency (eerste byte tot laatste byte), niet TTFT.

Metrics: De mediaan en de staart over de geslaagde aanroepen — op het scorebord getoond als Normaal en Traagste geval. Een mislukte aanroep is geen meting: die telt in geen van beide mee, en een cyclus waarin alles mislukte legt helemaal geen latency vast in plaats van een nul.

Meetlocatie: EU — Amsterdam (AMS). Alle resultaten zijn EU-latency. Resultaten vanuit de VS of Azië zouden afwijken.

Snelheidsklassen:

Snelheid S
< 200 ms
Near-real-time
Snelheid A
< 500 ms
Interactief
Snelheid B
< 1000 ms
Acceptabel
Snelheid C
> 1000 ms
Geschikt voor batch
🧠

Intelligentiebenchmark

Status: Live sinds mei 2026. 19,487 gescoorde runs in 6 categorieën en 5 providers. Een nieuwe ronde draait wekelijks, zondag om 04:00 UTC.

Judge-model: Claude Sonnet 4.5 fungeert als onpartijdige judge. De naam van het geëvalueerde model staat nooit in de judge-prompt — alleen de ruwe antwoordtekst wordt gescoord (blinde review).

Scoring: De jury geeft geen cijfer terug. Hem wordt gevraagd eerst elk gebrek te noemen dat hij in het antwoord kan aanwijzen — kritiek, groot of klein — en het antwoord daarna op een verankerde schaal van 0 tot 4 te plaatsen voor juistheid (40 van de 100 punten), volledigheid (25), redenering (25) en vorm (10). De score wordt hier uit die niveaus berekend en vervolgens begrensd door het zwaarste genoemde gebrek: een klein gebrek komt niet boven 92, een groot niet boven 74, een kritiek niet boven 45. Die begrenzing staat in code en wordt niet aan de jury gevraagd, want de vorige rubriek — vier vrije getallen op 25 plus een totaal — gaf precies 100 op 46% van alle beoordeelde runs. Waar een prompt controlepunten heeft, krijgt de jury die mee, zodat juistheid wordt getoetst in plaats van ingeschat.

Zes prompt-categorieën:

Redeneren
Meerstapsredeneringen en wiskunde
Coderen
Code-generatie, debugging, review
Feitelijk
Juistheid van feitelijke beweringen
Meertaligheid
Vertaling en cross-language accuratesse
Creatief
Open-eind creatieve output
Zorg
Nederlandse zorgdomein-kennis

Arena-score: Elk paar modellen dat dezelfde prompt beantwoordde vormt één vergelijking; scores die minder dan 2 punten schelen tellen als gelijkspel. Een Bradley-Terry-schatting over alle vergelijkingen levert een rating op de Elo-schaal, waarbij 1000 het gemiddelde is van de modellen op het bord en 400 punten verschil 10:1 kans betekent. Doordat de vergelijking per prompt gaat, valt de moeilijkheid van de prompt weg. Een sterk model verslaan telt zwaarder dan een zwak model verslaan. De borden tonen die rating niet rechtstreeks, maar de winkans die eruit volgt: de kans om te winnen van een gemiddeld model op het bord, waarbij 50% gemiddeld is. Dezelfde volgorde, één ding minder om op te zoeken.

Per categorie: Elke categorie wordt apart berekend, alleen over de prompts van die categorie, met dezelfde paarsgewijze methode als de hoofdscore. Het getal op elke balk is een winstpercentage: hoe vaak het model een gemiddeld model verslaat op een prompt uit die categorie, met 50% als gemiddelde. Het is geen percentage goed. Een categorie bevat twee tot acht prompts, dus een model dat op minder dan twee ervan is gemeten wordt gemarkeerd als dun bewijs in plaats van gerangschikt.

Betrouwbaarheid en positie: Elke rating heeft een 95%-betrouwbaarheidsinterval, in gesloten vorm berekend uit de Fisher-informatie. De positie volgt uit overlap: een model staat alleen boven een ander als hun intervallen elkaar niet raken, dus modellen die niet te onderscheiden zijn delen een positie in plaats van door ruis uit elkaar te worden getrokken. Een model met minder dan 30 vergelijkingen of minder dan 5 verschillende prompts geldt als voorlopig en krijgt geen positie. Dit volgt de methodiek die arena.ai publiceert als arena-rank; het verschil is dat onze vergelijkingen van een blinde jury-LLM komen in plaats van van menselijke stemmen. Eén kanttekening die we noemen in plaats van verzwijgen: de vergelijkingen komen uit één gedeelde verzameling prompts en zijn dus niet volledig onafhankelijk van elkaar. De intervallen zijn daarom een ondergrens van de werkelijke onzekerheid; modellen die enkele tientallen punten uit elkaar liggen moet je als gelijk lezen.

Of de vragen überhaupt iets kunnen meten: Elke prompt krijgt een eigen moeilijkheidsgraad (het gemiddelde jurycijfer) en een onderscheidend vermogen (de gecorrigeerde item-totaalcorrelatie en het aandeel modelparen dat hij scheidt). Drie van de vierentwintig prompts die we ooit hebben gedraaid scheiden niemand — "in welk jaar werd de AVG van kracht" wordt door 87 van de 87 modellen goed beantwoord. Die prompts worden op het bord benoemd in plaats van meegemiddeld, want een vraag die elk model perfect beantwoordt meet de vraag, niet de modellen. Dit is de helft van het verzadigingsprobleem die geen enkele statistiek kan oplossen, en de reden dat de vragenpool wordt vervangen door moeilijkere, controleerbare items.

🏁

Wat telt vs. wat je ziet

De arena toont een live race met gezondheidsbalken en straffen — maar het scherm en de rangschikking zijn twee afzonderlijke lagen. Het beeld is er om naar te kijken; de rangschikking wordt bepaald door een onafhankelijk judge-panel. Deze tabel maakt het onderscheid expliciet, zodat niets op het scherm wordt verward met een resultaat.

Op het schermBronTelt mee voor rangschikking?
Gezondheidsbalken / voorsprong / schade / straffenDeterministische visuele afleiding (v8.1-tokonomix)Nee — cosmetisch
Live race-leider tijdens een rondeEnkelvoudige snelle per-beurt judge (gpt-4o-mini, 0–10)Nee — indicatief
RondewinnaarCross-family panel meerderheidsstemming (0–100)Ja
Leaderboard-positieTrueSkill skill-schatting (μ)Ja
Jury-upvotes (▲)Panelstemming wanneer een judge een model ≥60 scoortGetoond, niet meegewogen in rangschikking
Judge-overeenstemming %Hoe vaak de keuze van een judge overeenkwam met de panelwinnaarPanelovereenstemming — geen maatstaf voor correctheid
Besparing (€)Rondes waarbij een goedkopere council een duurder model versloegBeste geval — alleen bij gewonnen rondes
Blind spots gedetecteerdOmissies bevestigd door ≥2 paneljudgesAlleen bevestigde — wordt uitgerold
⚔️

Een vierde methode: de arena

Statische benchmarks meten een model aan een vaste lat. De arena meet modellen onderling, op realistische klantenservice-scenario's, beoordeeld door een panel van concurrerende modellen. Dit levert iets op wat één score niet kan geven: een relatieve rangschikking met een onzekerheidsmarge.

Waarom dit de statische benchmarks aanvult (en niet vervangt):

  • Statische tests geven absolute kwaliteit per categorie; de arena geeft head-to-head sterkte en een afweging van kosten versus kwaliteit op realistische taken.
  • De arena vangt dingen op die een 0–100 score mist: consistentie over meerdere beurten, hoe een model omgaat met vervolgvragen en — bij councils — of samenwerking daadwerkelijk loont.
  • De race op het scherm is een manier om het duel te volgen. Het resultaat wordt altijd bepaald door het panel, nooit door de gezondheidsbalken.
⚖️

Hoe een ronde scoort: van per-beurt naar panel

Scoring verloopt in twee fasen. Tijdens de wedstrijd houdt één snelle scheidsrechter een lopende telling bij; aan het einde stemt een onafhankelijk panel van judges over de winnaar.

Fase 1 — live, per beurt: Eén snelle, bewust goedkope judge (gpt-4o-mini) scoort elk antwoord op een 0–10 schaal in één call. Dit voedt alleen de live race-banen — het is indicatief, niet beslissend.

Fase 2 — einde van de ronde, het panel: Een panel van 3–5 judges uit verschillende modelfamilies stemt onafhankelijk over de winnaar op een 0–100 schaal. De meerderheid wint; bij gelijkstand beslist de hoogste gemiddelde panelscore, dan deterministisch op laagste model-id.

Blind op index: Modelnamen worden verwijderd uit de panelprompt — deelnemers worden alleen aangeduid met nummer/index, zodat het panel geen bekende merknaam kan begunstigen.

Vaste drempelwaarden: Een model ontvangt een upvote (▲) wanneer een judge het ≥60 scoort. Een beurt wordt als beslissend aangemerkt wanneer de winnaarsmarge ≥30% van de scoreschaal bereikt. Deze vaste waarden bepalen de tellingen die je ziet.

📈

TrueSkill: wat μ en σ betekenen

Elk model heeft een geschat vaardigheidsniveau μ (mu) en een onzekerheid σ (sigma). Een nieuw model begint op μ=25, σ=8.333 — hoge onzekerheid. Elke wedstrijd verschuift μ richting de werkelijke kracht van het model en verkleint σ. Twee modellen met dezelfde μ maar verschillende σ zijn niet gelijk: degene met een lage σ is bewezen, de andere is nog steeds een schatting.

De constanten die we daadwerkelijk gebruiken: Beginrating μ=25, σ=8.333; vaardigheidsvariatie BETA=4.167; per-wedstrijd drift TAU=0.0833. Deze zijn vast in de code en identiek voor elk model.

Hoe we momenteel sorteren — eerlijk openbaar gemaakt: Het leaderboard sorteert op ruwe μ (geschatte kracht). Een striktere bewezen rangschikking zou sorteren op de conservatieve μ − 3σ. Omdat dit vroege data is — de meeste modellen hebben slechts een paar wedstrijden — is σ nog groot, zodat de top van het leaderboard nog kan verschuiven. We tonen de schatting en vertellen dat het een schatting is, in plaats van ons achter één getal te verschuilen.

🤝

Council vs. frontier: loont samenwerking?

Een ronde kan een goedkope council van kleinere modellen plaatsen tegenover één duur frontier-model. In een council is het antwoord van elke beurt de consensussynthese van de leden. Zo kan de arena een vraag beantwoorden die één score niet kan stellen: kan een goedkope council een duur frontier-model verslaan — en zo ja, met hoeveel?

Hoe besparingen worden berekend: Wanneer een council zowel een ronde wint als goedkoper is dan het frontier-model dat het versloeg, tonen we het verschil als besparing. Een council-overwinning is gekoppeld aan de groep, nooit aan het leaderboard van een individueel lid, zodat een groepsresultaat de rangschikking van één model nooit opblaast.

Beste-geval-voorbehoud: Besparingen tellen alleen op uit rondes die de council won. Councils die verloren (en dus voor niets geld uitgaven) worden niet afgetrokken. Het getal is daarmee een beste-geval-besparing in de gewonnen rondes — geen nettoresultaat.

🪪

Twee onafhankelijke reputaties

Een model wordt op twee afzonderlijke manieren gemeten, en de twee kunnen van elkaar afwijken zonder dat een van beide fout is — ze meten verschillende dingen.

Arena-reputatie (relatief): TrueSkill op basis van head-to-head speloverwinningen. Het rangschikt een model ten opzichte van concurrenten op realistische scenario's.

Neutrale-judge-reputatie (absoluut): Hoe vaak een model als correct / gedeeltelijk / fout wordt beoordeeld in de terugkerende intelligentietest, aan de hand van een vaste rubric in plaats van een tegenstander.

Een model kan wedstrijden verliezen maar toch een hoge correctheidsreputatie hebben, of wedstrijden winnen terwijl het op absolute nauwkeurigheid slechts gedeeltelijk scoort. We houden ze bewust gescheiden.

🔍

Blind spots

Een blind spot is een belangrijk punt dat één deelnemer mist terwijl ≥2 anderen het wel behandelen — het is dus aantoonbaar belangrijk, geen randdetail.

Bevestigd door het panel: Een blind spot telt alleen wanneer ≥2 paneljudges onafhankelijk overeenstemmen over dezelfde omissie. Eén judge stelt de aspectenlijst en een mis-matrix op; de andere judges vullen dezelfde vastgezette aspecten in, en een gemis wordt alleen bevestigd wanneer ten minste twee matrices het eens zijn over die cel.

Status: Deze detectie is live en wordt uitgerold over rondes. We publiceren nog geen aantallen — we tonen liever geen getal dan een getal dat nog onvoldoende door data wordt onderbouwd.

Constanten & drempelwaarden

Elke telling op de arena-pagina's volgt uit een kleine set vaste keuzes. We vermelden ze hier zodat de getallen controleerbaar zijn.

Upvote (▲):
Een judge-score van ≥60 op de 0–100 panelschaal.
Beslissende beurt:
Een winnaarsmarge van ≥30% van de scoreschaal.
Minimaal aantal deelnemers voor blind spots:
Ten minste 3 deelnemers — daaronder kan 'door ≥2 anderen behandeld' niet zinvol zijn.
TrueSkill-parameters:
BETA=4.167, TAU=0.0833; beginrating μ=25, σ=8.333.
Gelijkstanden:
Een exacte gelijkstand telt als remise — geen verlies voor iemand — en levert geen besparing op.

Eerlijke openbaringen

Zaken die een kritische lezer expliciet wil zien — beperkingen, bekende vooroordelen en keuzes die de getallen bepalen.

Vroege data, volatiele rangschikkingen: De arena is jong. De meeste modellen hebben slechts een paar wedstrijden, zodat een enkele overwinning of verlies μ flink kan verschuiven en rangschikkingen nog instabiel zijn. We tonen het aantal wedstrijden en de onzekerheid in plaats van te suggereren dat de volgorde vaststaat.

Sortering op ruwe μ: Het leaderboard sorteert op ruwe μ, niet op de conservatieve μ − 3σ. Bij hoge onzekerheid betekent dit dat een model met één gelukkige overwinning boven een meer bewezen model kan staan. We behandelen de huidige volgorde als 'geschat, nog niet bewezen'.

Judge-overeenstemming is geen correctheidsmaat: Het judge-overeenstemmingscijfer meet hoe vaak de keuze van een judge overeenkwam met de panelwinnaar — maar de winnaar is de meerderheid van diezelfde judges. Het meet conformiteit aan het panel, niet of het panel gelijk had. Een correcte maar eigenzinnige judge scoort hier laag.

Besparingen zijn beste geval: Besparingen tellen alleen rondes die de council won en goedkoper was; verloren councils worden niet afgetrokken. Lees het als een beste-geval-getal in de gewonnen rondes, geen nettobesparing.

Zelf-voorkeur van enkelvoudige judge in de intelligentietest: De terugkerende intelligentietest draait op één primaire judge (Claude Sonnet 4.5), die ook Claude-familiemodellen kan beoordelen — zelf-voorkeur is een bekende LLM-bias. Er bestaat een secundaire cross-check-judge om dit te kalibreren, en de arena dempt het verder met een cross-family panel; de enkelvoudige-judge intelligentietest heeft dat panel niet.

Deelnemer ↔ judge-familie overlap: Een modelfamilie kan zowel als deelnemer als in het judging-panel van dezelfde ronde verschijnen. Blind-op-index-beoordeling en het cross-family panel verminderen het effect, maar overlap kan voorkomen en we maken het openbaar in plaats van strikte familie-uitsluiting te claimen.

Twee schalen, één leaderboard: De live per-beurt-judge gebruikt 0–10 en het eindpanel gebruikt 0–100. We normaliseren alles naar dezelfde schaal voordat het het leaderboard bereikt, zodat de twee getallen die je tijdens een ronde kunt zien niet worden gemengd in de rangschikking.

Hoe gelijkstanden worden verwerkt: Een ronde zonder duidelijke winnaar telt als remise — niet als verlies voor iedereen, wat de winratio's zou vertekenen — en levert geen besparing op.

Versioned, deterministische afleiding: De visuele afleiding op het scherm is puur deterministisch en draagt een versietag (v8.1-tokonomix) precies zodat een latere logicawijziging nooit stilzwijgend eerdere rondes herschrijft. Materiële methodologie-wijzigingen worden vastgelegd in de changelog hieronder.

Beeldkwaliteitscontrole: vision-QC pilot

In juni 2026 voerden we de eerste beginmeting uit van AI-beeldkwaliteitscontrole: welke AI-visiemodellen vinden betrouwbaar echte fotofouten en welke keuren te veel goede foto's af? Zes losse visiemodellen en twee raadconfiguraties werden getest op 300 afbeeldingen (160 defect, 140 controle). De raad van vijf modellen behaalde 87,5% recall versus 66,9% voor het beste losse model — een verschil van 20,6 procentpunt. Vals-alarmpercentage voor de raad (zonder grounding): 17,1%. Alle afbeeldingen werden genormaliseerd (JPEG q90, max 1024px). Ground-truth-labels zijn handmatig geannoteerd (LOKI-dataset) of synthetisch gegenereerd. Zie de volledige resultaten op /benchmarks/vision-qc.

Volledige resultaten

💚

Beschikbaarheidscheck

Frequentie: Elke 5 minuten.

Methode: Een minimale echo-prompt wordt verstuurd. We registreren HTTP-status, foutmelding (indien aanwezig) en responstijd.

Foutregistratie: error_count per run wordt vastgelegd. Aanhoudend hoge foutpercentages worden op het leaderboard zichtbaar.

Run-schema

02, 08, 14, 20 UTC
Snelheid
Zo 04:00 UTC
Intelligentie
Elke 5 min
Beschikbaarheid

Alle tijden in UTC. Snelheid draait vier keer per dag (02:00, 08:00, 14:00, 20:00), de intelligentieronde wekelijks op zondag om 04:00, en de health-probe elke 5 minuten. De actualiteit van de data staat altijd naast elk benchmarkresultaat.

Veelgestelde vragen

Zijn jullie verbonden aan een AI-leverancier?+
Nee. Tokonomix wordt beheerd door InterIP Networks, een onafhankelijk infrastructuurbedrijf. We hebben geen commerciële relaties met AI-leveranciers en ontvangen geen gesponsorde plaatsingen.
Waarom alleen EU-latency?+
We opereren vanuit Amsterdam en meten reële latency voor EU-gebruikers. Veel providers hebben meerdere regio's — latency vanuit de VS of Azië zou aanzienlijk afwijken. Region-switching voegen we in een toekomstige update toe.
Hoe gaan jullie om met API-kosten?+
We hanteren een vast prompt-budget per cyclus. Flagship-modellen (GPT-5, Claude Opus) worden minder vaak getest vanwege de kosten. De run-frequentie is zichtbaar naast elk model.
Kan ik de ruwe data downloaden?+
Ja — zie de Dataset-pagina voor JSON-export en schema-documentatie. De volledige dataset is beschikbaar op /api/md/{lang}/dataset.
Is het judge-LLM eerlijk voor alle modellen?+
We gebruiken Claude Sonnet 4.5 als judge, met modelnamen weggehaald uit de evaluation-prompt. Cross-family-bias is een bekend aandachtspunt — we plannen menselijke baselines (Q3 2026) om de judge te kalibreren.

Eigenaar methodiek

Deze methodologie wordt beheerd en ondertekend door Mes Kalkan. Materiële wijzigingen worden hieronder gelogd. Datacorrecties lopen via de methodologie-eigenaar en worden binnen 24 uur na een geverifieerde melding gepubliceerd.

Methodologie-changelog

  • — Initiële methodologie gepubliceerd. Ondertekend door Mes Kalkan.

Data-API

Alle benchmark-data is gratis beschikbaar. Geen sleutel vereist voor read-only toegang.

GET/api/md/nl/datasetVolledige dataset als JSON