Hoe LLM Live werkt

Elk oordeel op deze site volgt regels die je hier kunt nalezen. Geen enkele aanbieder betaalt voor een plek, en de cijfers hieronder zijn precies de waarden die onze code gebruikt.

Status

Eén oordeel uit vier signalen. De slechtste telt.

Onze controles
Waar we over een API-sleutel beschikken, stuurt een worker elke 60–120 seconden een miniem streamingverzoek (tellen van 1 tot 20, maximaal 80 tokens) naar de eigen API van de provider en meet de time to first token en het aantal tokens per seconde. Een mislukte controle wordt twee keer opnieuw geprobeerd met 20 seconden ertussen. Rate limits en fouten in onze eigen infrastructuur tellen niet mee. Op de pagina van elke dienst staat aangegeven of onze controles ervoor actief zijn.
Regels
Laatste 3 controles mislukt → Grote storing. Minstens de helft van de controles in 10 minuten mislukt → Gedeeltelijke storing. Minstens 20% mislukt, of de mediane time to first token is hoger dan 3 s én 3× trager dan de 24-uursmediaan → Verminderde prestaties.
Officiële statuspagina’s
Elke minuut gecontroleerd. Een status ouder dan 15 minuten wordt genegeerd, zodat een vastgelopen pagina een dienst niet onterecht groen of rood kan houden.
Via OpenRouter
OpenRouter publiceert het percentage geslaagde verzoeken voor elke provider van elk model. Als minstens 2 modellen op de eigen endpoints van de provider, en minstens de helft daarvan, over 30 minuten onder de 80% scoren én 10 punten onder hun 24-uursniveau liggen → Verminderde prestaties; gemiddeld onder de 50% → Gedeeltelijke storing. Als 3 of meer providers tegelijk uitvallen, ligt het probleem bij OpenRouter en wordt het signaal genegeerd.
Meldingen van gebruikers
Minstens 10 meldingen in 15 minuten en minstens 4× het gebruikelijke tempo → Verminderde prestaties. Meldingen alleen markeren een dienst nooit als offline.
Herstel en meldingen
De status wordt elke 30 seconden opnieuw berekend. Een dienst keert pas terug naar Operationeel na 3 minuten zonder problemen, zodat een haperende API geen constante stroom meldingen triggert. Er gaan meldingen uit zodra een probleem begint, verergert en is opgelost.
Balken
Elke balk staat voor 30 minuten, gekleurd naar de slechtste toestand daarbinnen. Grijs betekent geen gegevens. Uptime is het percentage balken zonder problemen.

Modellen en prijzen

Elke prijs komt uit een openbare API en wordt elke 5 minuten gecontroleerd.

Bron
De modellencatalogus, prijzen en context windows zijn afkomstig uit de openbare API van OpenRouter. Prijzen gelden per 1M tokens zoals vermeld door OpenRouter; dit komt meestal overeen met de eigen prijs van de provider, maar niet altijd.
Prijshistorie
We slaan elke 5 minuten een momentopname op en leggen elke wijziging vast, zodat prijsverlagingen en nieuwe of stopgezette modellen binnen enkele minuten in het nieuwsoverzicht verschijnen.
Waar je het kunt draaien
Het aantal verschillende providers dat een model aanbiedt op OpenRouter. Flex-, batch-, priority- en spot-tiers tellen niet mee, omdat deze opzetmatig vaak niet beschikbaar zijn.

Schaakarena

Modellen spelen tegen elkaar. Een schaakengine houdt de score eerlijk.

Een zet
Het model ontvangt de stelling (FEN) en de zettenlijst en antwoordt met een zet en een kort commentaar. De geldigheid wordt gecontroleerd met chess.js. Na een ongeldige zet krijgt het model de lijst met reglementaire zetten en probeert het opnieuw; bij de derde ongeldige zet verliest het de partij. Drie antwoorden op rij zonder zet betekenen verlies op tijd.
Denkbudget
Redeneertokens zijn gemaximeerd op 1024 per zet, zodat een partij slechts centen kost. Dit vlakt de kracht van redeneermodellen af, waardoor de arena modellen vergelijkt onder hetzelfde krappe budget, niet op hun absolute top.
Rating
Glicko-2, dat rekening houdt met de onzekerheid van een rating. Het klassement is gesorteerd op rating minus twee standaarddeviaties, een voorzichtige schatting. Een model geldt als voorlopig tot het 10 partijen heeft gespeeld. De paring geeft voorrang aan modellen met minder partijen en vergelijkbare ratings.
Nauwkeurigheid
Stockfish evalueert elke stelling op diepte 14. Een daling in winstkans van 5, 10 of 15 punten geldt als een onnauwkeurigheid, een fout of een blunder; nauwkeurigheid volgt de Lichess-formule.
Niet-geratete partijen
Een partij die voortijdig stopt door API-fouten bij de provider telt niet mee voor de rating. Een partij kan ook handmatig ongeldig worden verklaard, met vermelding van reden.

Stemmen van gebruikers

Je kiest het betere van twee anonieme antwoorden. Een Bradley–Terry-model zet de stemmen om in ratings.

Een battle
Je prompt gaat naar twee verschillende modellen, gekozen uit een pool van zo’n 20 actuele modellen van een dozijn labs. De posities worden gewisseld en de namen blijven verborgen tot je stemt. Modellen en paren met minder stemmen worden vaker gekozen, dure topmodellen minder vaak. Elk antwoord is gemaximeerd op 1024 tokens met redeneren uitgeschakeld (of beperkt tot 512 tokens waar het niet uit kan), zodat de battle snelle alledaagse antwoorden vergelijkt en niet het uiterste vermogen van elk model.
Stemmen
Je kunt pas stemmen als beide antwoorden compleet zijn, en slechts één keer per battle. Een stem op A of B telt als winst voor dat model; gelijkspel en "beide zijn slecht" tellen als een halve winst voor beide kanten, net als op LMArena. Battles waarin een model geen antwoord gaf, tellen niet mee.
Rating
Een Bradley–Terry-model wordt in één keer op alle stemmen gefit, zodat, anders dan bij Elo, de volgorde van de stemmen niet uitmaakt. De rating wordt weergegeven op de Elo-schaal: een verschil van 400 punten betekent een verhouding van 10:1 in voorkeur, en het mediane model staat vast op 1000. Een lichte prior (één virtueel gelijkspel per model) houdt de rating eindig voor modellen die nog nooit hebben verloren.
Betrouwbaarheid
Het 95%-interval is gebaseerd op 100 bootstrap-steekproeven van de stemmen. De rang is 1 plus het aantal modellen waarvan het volledige interval boven dat van dit model ligt; modellen met overlappende intervallen delen dus een plek. Modellen met minder dan 20 stemmen staan onderaan. Alles wordt elke 10 minuten herberekend.
Categorieën
Een klein taalmodel classificeert beoordeelde prompts in programmeren, wiskunde, creatief schrijven, advies & uitleg, kennis & feiten of overig, en herkent de taal; het bord met Russische prompts bevat uitsluitend prompts in het Russisch. Een model verschijnt pas in een categorie als het daar minstens 20 stemmen heeft.
Kanttekeningen
Iedereen kan anoniem stemmen. Limieten per bezoeker (8 battles per uur, 40 per dag, bijgehouden via een gezouten hash van het IP-adres) en een dagbudget maken stemfraude duur, maar kunnen het niet uitsluiten. Mensen beoordelen stijl net zo goed als inhoud: langere en netjes opgemaakte antwoorden winnen vaker. Prompts worden bewaard voor de categorieën en kunnen geaggregeerd worden gepubliceerd; ruwe IP-adressen worden nooit opgeslagen.

Debatten

Twee modellen debatteren over een stelling in drie rondes. Een AI-jurylid scoort tweemaal, daarna stemt het publiek.

Stellingen
Ongeveer 40 samengestelde stellingen in vijf categorieën: tech & AI, maatschappij, wetenschap, ethiek en alledaagse onderwerpen, telkens in het Engels en Russisch geformuleerd. Verkiezingen, kandidaten, religieuze disputen en uitlatingen gericht tegen bevolkingsgroepen laten we buiten beschouwing. De volgende stelling is de minst gebruikte die niet bij de laatste tien zat; elk derde debat is in het Russisch.
Debaters
Twee verschillende modellen uit de battle-pool van circa 20 actuele modellen. Modellen met minder debatten en paren die elkaar minder vaak troffen worden vaker geselecteerd, dure vlaggenschepen minder vaak. Standpunten worden willekeurig toegewezen; een model kiest dus niet de stelling waar het achter staat. Een model dat herhaaldelijk faalt, wordt 2 uur gepauzeerd, of 24 uur na een account- of modelfout. Elke 30–60 minuten na het vorige start een nieuw debat, zolang het dagbudget toereikend is.
Persona’s
Sinds 29 oktober 2026 debatteren de modellen vanuit een rol: twee persona’s uit een selectie van tien fictieve personages (geen echte mensen, politici of religieuze figuren), elk met een eigen spreekstijl. Persona’s worden los van de modellen geloot; personages met minder debatten komen vaker aan de beurt. Elk personage heeft een geheugen: diens resultaten, de onderlinge stand tegen de tegenstander van vandaag, korte notities over de laatste drie debatten en een kenmerkende uitspraak, allemaal verwerkt in de prompt. Een klein model (Qwen Flash) schrijft de notities na elk debat; deze doorlopen dezelfde moderatie als de toespraken, en een citaat blijft alleen behouden als het letterlijk in de eigen toespraken van de persona voorkwam. Het persona-klassement gebruikt de juryscores volgens dezelfde methode; het jurylid krijgt de instructie om de argumenten te beoordelen, niet het personage.
Rondes
Zes beurten, strikt om en om: openingsbetogen, weerleggingen en slotpleidooien. Voorstander spreekt in elke ronde als eerste en Tegenstander antwoordt, waardoor Tegenstander het laatste woord heeft. Elke spreker ziet de stelling, zijn eigen standpunt en het volledige transcript tot dan toe, en heeft maximaal 250 woorden (600 tokens, 800 in het Russisch) met redeneren uitgeschakeld (of beperkt tot 512 tokens waar het niet uit kan). Modellen krijgen de instructie om geen statistieken of citaten te verzinnen en zichzelf niet bij naam te noemen.
Moderatie
Elke beurt wordt gecontroleerd voordat deze wordt getoond: door Llama Guard 4, een compacte veiligheidsclassifier, met een klein algemeen model als vangnet. Wordt een beurt gemarkeerd, dan wordt de tekst vervangen door "verwijderd door moderatie", stopt het debat direct en telt het niet mee voor de ratings.
Jurylid
Een klein model van een ander lab dan beide debaters (Claude Haiku, DeepSeek Flash of Qwen Flash) leest de toespraken gegroepeerd per standpunt, zonder modelnamen, geeft elk standpunt een score van 1 tot 10 op argumentatie, weerlegging en helderheid, en wijst een winnaar aan met een korte toelichting. Het beoordeelt tweemaal: een keer met Voorstander eerst en een keer met Tegenstander eerst, omdat LLM-jury’s geneigd zijn het standpunt dat ze als eerste lezen te bevoordelen. Een standpunt wint alleen als beide beoordelingen overeenstemmen; anders eindigt het in een gelijkspel.
Publiek
Zodra een debat is afgelopen, kan iedereen 7 dagen lang stemmen op Voor, Tegen of Gelijkspel: één stem per debat per bezoeker (een gezouten hash van het IP-adres, nooit het adres zelf) en maximaal 30 stemmen per uur. De uitslag wordt zichtbaar nadat je hebt gestemd, evenals het juryoordeel tenzij je kiest dat vooraf in te zien. Een debat telt mee voor het publieksklassement zodra het minstens 5 stemmen heeft; de optie met de meeste stemmen geeft de doorslag, en een gelijke stand tussen Voor en Tegen geldt als gelijkspel.
Ratings
Twee Bradley–Terry-borden, via dezelfde methode als bij de battles: één op basis van de juryoordelen, één op basis van de publieksmeerderheid; gelijkspel levert beide kanten een halve winst op. Alle resultaten worden gezamenlijk gefit, zodat de volgorde van de debatten geen rol speelt en een geannuleerd debat eenvoudig wegvalt. Elo-schaal met het mediane model op 1000, een 95%-interval uit 100 bootstrap-steekproeven, en modellen met minder dan 10 geratete debatten onderaan. Elke 15 minuten herberekend.
Kanttekeningen
Dit toont de debatvaardigheid onder strakke restricties aan, niet feitelijke kennis of waarheid: een model kan winnen door een zwak standpunt overtuigend te verdedigen. Het jurylid is een klein model met eigen vooroordelen, zoals een voorkeur voor een zelfverzekerde toon; het omdraaien van de volgorde heft positiebias op, maar niet elke andere bias. Sommige stellingen bevoordelen één zijde, maar de standpunten worden willekeurig verdeeld, wat over veel debatten uitvlakt.

Code-arena

Modellen lossen dezelfde opdracht op in Python of JavaScript. Verborgen tests beslissen; snelheid telt alleen bij gelijke stand.

Opdrachten
71 samengestelde opdrachten: 12 makkelijk, 21 gemiddeld en 38 moeilijk. De eenvoudigere behandelen klassieke algoritmen en tekst- en dataverwerking (CSV, versies, logs, JSON-paden); de moeilijke vereisen een geavanceerd algoritme of scherpe logica: lazy segment trees, maximum flow en matching, suffix automata, bitmask en boom-DP, meetkunde met exacte gehele getallen, een kleine interpreter, een orderboek, een scheduler. Elke taak bevat een omschrijving, een functiesignatuur, zichtbare voorbeelden, 6–19 verborgen tests met randgevallen en, bij 66 taken, omvangrijke inputs onder een tijdslimiet. De verwachte uitkomsten komen van referentie-oplossingen, gevalideerd tegen brute-force-uitkomsten op duizenden willekeurige kleine inputs. Een tijdslimiet is twee keer de traagste van drie sandbox-runs van de referentie en een standaard tekstboekoplossing, plus 100 ms: het juiste algoritme slaagt ruim binnen de tijd, een kwadratisch algoritme faalt. Zes op de tien rondes bevatten een moeilijke taak, drie een gemiddelde en één een makkelijke; binnen het niveau kiezen we de minst gebruikte taak die niet bij de laatste tien zat.
Een ronde
Vier modellen uit een pool van circa 20 programmeermodellen, waar mogelijk één per lab, krijgen tegelijkertijd de opdracht met redeneren uitgeschakeld (of beperkt tot 1024 tokens waar het niet uit kan) en tot 2048 tokens voor het antwoord, 4096 bij moeilijke opdrachten. Ongeveer twee van de drie rondes zijn in Python 3.12 en één in JavaScript (Node.js 24) voor een van de 65 taken waarvan JavaScript de inputs en resultaten ongewijzigd verwerkt (geen gehele getallen boven 2^53); JavaScript krijgt dezelfde tests en tijdslimieten, met de signatuur en voorbeelden geschreven in JavaScript. Modellen antwoorden met één codeblok; we gebruiken het blok dat de gevraagde functie definieert. De antwoordtijd wordt gemeten van het verzoek tot de volledige respons en dient ter informatie. Elke 20–30 minuten na de vorige start een nieuwe ronde, zolang het dagbudget toereikend is.
Sandbox
Elk antwoord draait eenmalig in een verse container onder gVisor: geen netwerkverbinding, alleen-lezen bestandssysteem, 512 MB werkgeheugen voor de container (ongeveer 380 MB voor Python-code; voor JavaScript een heap van 192 MB plus buffers), één CPU-core, 64 processen, een tijdelijke map van 16 MB en een limiet op de uitvoer. De code draait in een eigen proces; een afzonderlijk harness-proces levert de tests één voor één aan en meet elke aanroep van buitenaf, van het verzenden van de input tot de ontvangst van het volledige resultaat, zodat de code de klok niet kan inzien of beïnvloeden. Een test die de tijdslimiet overschrijdt of het proces laat crashen, wordt afgebroken; de overige tests draaien in een nieuw proces. Verwachte resultaten komen de container nooit binnen: het harness retourneert een hash van elk resultaat, die daarbuiten wordt vergeleken. Zichtbare voorbeelden tonen wat de code retourneerde; verborgen inputs en resultaten worden nooit getoond.
Puntentelling
Een opdracht is opgelost wanneer alle tests slagen, inclusief grote inputs binnen de limiet. Binnen een ronde vormt elk paar modellen een duel dat wordt beslist op het percentage geslaagde tests. Alleen bij een exacte gelijke stand telt snelheid: de code waarvan de totale uitvoeringstijd in de sandbox minstens 25% én 20 ms korter is, wint; anders is het gelijkspel. De antwoordsnelheid van het model telt nooit mee. Tot 28 oktober 2026 gaf de antwoordtijd de doorslag tussen correcte oplossingen; alle ratings zijn nadien herberekend op basis van de opgeslagen rondes onder de huidige regels.
Rating
Bradley–Terry over alle duels tegelijk, via dezelfde methode als bij battles: Elo-schaal met het mediane model op 1000, een 95%-interval uit 100 bootstrap-steekproeven, en modellen met minder dan 10 geratete rondes onderaan. Een model dat faalde door een providerfout valt af voor die ronde en wordt 2 uur gepauzeerd, of 24 uur na een account- of modelfout.
Kanttekeningen
De rating registreert één poging per opdracht, zonder mogelijkheid de code vooraf te testen; het betreft dus pass@1 onder een krap tokenbudget, niet het uiterste kunnen van elk model. De uitvoeringstijd wordt gemeten op een gedeelde server, waardoor kleine verschillen ruis zijn; daarom tellen alleen duidelijke marges. Tijdslimieten zijn gekalibreerd op Python en vallen ruimer uit voor JavaScript, dat doorgaans sneller draait. Opdrachten zijn uitsluitend in het Engels, en 71 opdrachten herhalen zich na verloop van tijd; een model kan vergelijkbare problemen tijdens de training zijn tegengekomen.
Herkansing
Een model waarvan de code op een test faalt, krijgt één extra beurt met de eigen code en de resultaten: hoeveel tests er slaagden, elk falend voorbeeld met de verwachte en geretourneerde waarde of de foutmelding, en bij verborgen tests en grote inputs uitsluitend hoeveel er faalden en waarom, nooit de inputs zelf. De nieuwe code draait tegen dezelfde tests. Dit wordt getoond onder het eerste antwoord en in het klassement aangeduid als hersteld / herkansing, maar heeft geen invloed op rangen of ratings.

Grafieken

Marktgrafieken gebruiken alleen data die we al bezitten. Waar gegevens schaars zijn, vermeldt de grafiek dat.

Prijs vs. kwaliteit
Prijs is de gecombineerde prijs per 1M tokens bij een verhouding van 3 inputtokens op 1 outputtoken (de verhouding die overal op de site wordt aangehouden) op een logaritmische schaal; gratis modellen zijn weggelaten. Kwaliteit is de rating op basis van gebruikersstemmen (Bradley–Terry) zodra minstens 5 modellen 20+ stemmen hebben, anders de schaakrating (Glicko-2); je kunt hiertussen schakelen. Een model bevindt zich op de Pareto-grens wanneer geen enkel goedkoper model hoger scoort. Bij minder dan 3 gevestigde ratings loopt de grens langs voorlopige modellen, wat de grafiek ook aangeeft. We lenen geen scores van andere klassementen.
Releasedatums
Het kwartaal van een model is de datum waarop het werd toegevoegd aan de OpenRouter-catalogus, meestal binnen enkele dagen na de officiële release. Gedateerde snapshots van een model ("0902") worden niet apart geteld. De catalogus bevat uitsluitend modellen die nog beschikbaar waren toen we in oktober 2026 begonnen met meten; eerdere kwartalen missen daardoor modellen die voor die tijd zijn stopgezet.
Landen
Elke OpenRouter-auteur is gekoppeld aan het land van het hoofdkantoor van het betreffende lab via een vaste tabel in onze code. Fine-tuners uit de community, niet-publieke modellen en labs die we niet met zekerheid konden plaatsen, vallen onder Overig / onbekend. Er staat nog geen enkel Russisch lab (Yandex, Sber GigaChat, T-Bank) op OpenRouter, waardoor Rusland niet in de grafieken voorkomt.
Open weights
Een model geldt als open-weights wanneer OpenRouter een Hugging Face-repository vermeldt (hugging_face_id), en anders als proprietary. Dat toont aan dat de gewichten zijn gepubliceerd, niet dat de licentie open is: veel open-weights-modellen leggen beperkingen op aan commercieel gebruik.
Token-marktaandeel
OpenRouter publiceert dagelijkse token-aantallen per model en wekelijkse totalen per lab (de top negen; de rest samengevoegd) onder CC BY 4.0. We halen deze elke 6 uur op, bewaren per dag één voortschrijdend 7-dagenoverzicht van elk model en laten de lopende week buiten beschouwing tot deze compleet is. Dit toont het aandeel van tokens op OpenRouter, niet van de totale markt: direct API-verkeer, chat-apps en enterprise-contracten tellen niet mee, en goedkope, gratis en agent-intensieve modellen wegen daar zwaarder door. De bron is de onderliggende data van de ranglijstpagina van OpenRouter, geen gedocumenteerde API; wijzigt deze structuur, dan behouden de grafieken de laatst bekende stand.
Open data
Alles op de grafiekenpagina is als JSON beschikbaar via /api/v1/charts.

Nieuws

Eerst onze eigen data, dan de officiële updates van providers.

Onze gebeurtenissen
Nieuwe modellen, prijswijzigingen, uitfaseringen, incidenten en leiders in de arena worden automatisch gegenereerd uit bovenstaande data, zonder redactie.
Externe bronnen
Blogs van providers via RSS, GitHub-releases van toonaangevende tools en AI-berichten op Hacker News met minstens 150 punten, gecontroleerd om het kwartier.
Redactie
Een klein taalmodel schrijft een kop en een samenvatting van één regel, beoordeelt de relevantie van 1 tot 5 en filtert dubbelingen. Het leest uitsluitend de titel en de RSS-introductie, nooit het volledige artikel, en elk bericht linkt rechtstreeks naar de bron.

Beperkingen

Wat deze site momenteel nog niet registreert.

Eén locatie
Controles draaien vanaf één server in Finland. Een regionale storing elders wordt mogelijk niet opgemerkt, en een netwerkprobleem aan onze kant kan ogen als een storing bij de provider; daarom geeft één signaal nooit alleen de doorslag als de rest niet mee switcht.
Niet elke API
Sommige providers hebben geen machineleesbare statuspagina, en voor onze eigen controles is per provider een API-sleutel vereist. Ontbreken beide, dan steunt het oordeel op OpenRouter-data en meldingen van gebruikers.
Open data
De actuele status van elke dienst is als JSON beschikbaar via /api/v1/status, gratis en zonder API-sleutel.