Same name, scored again.
Night Grade watches a model name. Each night the same private questions go to every name you turned on. The replies are scored against known answers. This page receives the percents.
The questions are not on this server. A provider that keeps your prompts only sees that night’s draw, and the draw changes.
Five benches
Facts. Short recall with one stable answer.
Reasoning. Arithmetic, rates, ages, and clock angles. Some of these are written fresh each night.
Coding. The model reads a short Python program and says what it prints. The night script runs that program itself. It does not run the model’s reply.
Instructions. The reply has to match the shape that was asked for. A new token is added each night so the line cannot be memorized.
Adversarial. Wording traps and confident mistakes. Easy facts can stay perfect while this bench falls. Those items carry more weight, and they are not printed here.
The pool is about two hundred private items. A night uses a slice of them, weighted toward items that have been failing. The whole pool is not sent, and it is not published.
When a name falls
The first 14 nights are a baseline. After that, the last 7 nights are compared with the 7 before them.
The night script calls a fall when the week is down by 8 points, or one bench is down by 15. The numbers in force are the ones in the night script.
If every watched name falls together, the script says the others fell too. That is a hard draw, or all of them changed. One name falling while the rest hold is the silent swap: the name on the API stayed, and the answers got worse.
A night that comes back empty, or an id the provider rejects, is not stored as a low score. The earlier percent stays in the file.
The file
scores.json is one file in a public GitHub repository. Each run replaces it and commits. This page fetches that file and builds the board. There is no database behind the board.
The chain is the SHA-256 of the previous chain, a newline, and the run and models written as compact JSON with the keys sorted. The first file uses an empty previous chain. GitHub keeps every commit, so an older night is still the history of that one file.
Published index
The second sheet on the board is a reading aid. Night Grade did not ask these questions. Two groups that already publish model scores leave those scores where anyone can read them. This page copies the scores into one sheet so you do not have to open two websites and line the names up yourself. The night test is the other sheet. That one says a percent has been posted, or that nothing has been posted yet.
The scores and the list prices are pulled again each morning. The page reads that file from GitHub. A pull that comes back empty leaves the previous file in place. A price pull that fails keeps the previous list price.
BenchLM is the first score column. It publishes a number for programming, for hard questions, for general knowledge, and for math contests.
Hugging Face is the second score column. It covers the same four headings. Programming is the average of two programming tests. Hard questions are the average of two hard-question tests. Knowledge is a broad quiz. Math is a contest. Averaging two tests first keeps Hugging Face to one number, the same way BenchLM contributes one number.
Read a row from the large number. That number is the average. If BenchLM says 85 and Hugging Face says 70, add 85 and 70, then divide by two. The average is 77.5. The 85 and the 70 stay in the row, so the arithmetic is on the page. There is no hidden formula behind the large number.
Sometimes the average of the two numbers you see does not land on a single decimal. 26.9 and 77.6 average to 52.25. The page keeps 52.25, so the large number still matches the sum you can do yourself.
Under the average, a smaller line says the sources split by 15. Fifteen is only the distance between 85 and 70. Subtract the smaller score from the larger one. It is not a third score, and it is not a grade of its own.
That distance is why the sheet matters. When the two lists are close, they saw the model in a similar way, and the average is a calmer summary. When the distance is wide, one list was much more impressed than the other. The average is still the middle, but it is the middle of a disagreement. A tidy average can hide that. The small line keeps the disagreement where you can see it, which is how you decide whether to trust the big number.
Above the sheets, one large number is the industry reading. It is the average of every model both lists scored. A heat meter sits under it. Cooler means a lower score. Warmer means a higher score. The mark shows today's level. It moves when those lists publish new scores.
Under that, each provider has one number of its own. Qwen's number is the average of the Qwen models both lists scored. The same is true for the other names. The color is the same heat, so a higher provider looks warmer than a lower one.
Each model is a card. The large number is that model's average. Under it, Coding, Reasoning, Knowledge, and Math each have a block. The block grows with the score, the same way a leaderboard bar does. Cooler is lower. Warmer is higher. A dotted block means that heading was not published. BenchLM's score, Hugging Face's score, and the split sit in small type under the block, so you can still add the two scores and divide by two.
The top card is the latest model on the lists. A name that appears for the first time is marked new. Until then, the card is the scored model with the newest public list date. Under it, Just listed names the models that showed up on a public list in the last two weeks and still have no published score. The morning pull also reads a few maker pages when the token list does not carry the model. A voice price is per thousand characters, and a sale shows the list price beside it. They join the boss cards when a list scores them. Refresh reads that file again. The 6:10 pull is what searches. An open tab also reads the file again through the day.
Under that card, four bosses name the highest published score on each task. A list price is not required to lead a task. Reckoner is math, on reckoner.html. Mechanic is coding, on mechanic.html. Navigator is reasoning, on navigator.html. Archivist is knowledge, on archivist.html. Each door opens that page. The page opens with that boss's name, the count of models in the group, and a roster ranked by that skill. It keeps the one boss and the price cards for that skill. The latest card and Just listed stay on the board. Another site can link to that page.
Under the bosses, three cards shop the price. Each card is a different way to pay less than the mark. The big number is how many times cheaper that model is. The sentence under it adds the model's share of the mark's score. The gold ticket is the output price per million tokens.
Each model has a strong suit, the heading with the highest score. The suit page ranks by that score alone. A weak score on another heading does not move the list, and it stays on the card in quieter type. A model link opens that model's public page. On OpenRouter, the link is that model's page, and the parameters are set there. A maker listing uses the address stored with it. Night Grade does not collect those settings. The discount redeco is the cheapest priced model that still holds 80% of the score you are looking at. Last checked is the time this page read the file.
Most per dollar. Divide the composite score by the output price. The highest ratio wins. This is the most score a dollar buys.
Keep the score. Stay at 80% of the mark and at 5% of its price, then take the most score per dollar inside that box. The score stays close. The price falls to cents.
Near the top. Stay at 90% of the mark, then take the lowest output price. This is the cheapest way to sit near the frontier.
A model needs three published headings before it can win a card. A heading with no score is left out of the average, and that block stays dotted.
The first sheet is the value bin, the rest of that shelf. The mark is the highest average among models that also have a public list price, and that average uses the headings that were published. A model's large percent says how close it sits to that mark. The price line says what share of the mark's price it costs. The price is the output price, in dollars per million tokens, from OpenRouter's public list. The input price sits under it. A smart buy reaches 80% of the mark and costs 5% of the mark's price. The shelf stays within 70% of the score and 20% of the price, so a low score stays off the sheet. A free route, when one is listed, is named. It does not replace the list price.
On the board, before you type a name, the page shows twelve cards. Those are the twelve highest averages of the headings both lists scored. On a boss page the sheet shows every model with a score on that skill. A heading that only one list published still has a block, and on the board that block stays out of the large number. A provider's number uses every model both lists scored, so it can sit away from those twelve cards.
The name box searches every name in the file, including a model that only one list scored. A card with one score has no split, because a distance needs two numbers. The small line then names the list that published the score.
On a phone the cards stack in one column. The name and the large number stay at the top of each card. Each heading sits on its own block, so you know what the number is for before you read it.
BenchLM’s scores are used under the license CC BY-NC 4.0. The board links to benchlm.ai. These cards are a snapshot of other people’s published scores. They do not decide that a model got worse, and they do not replace the night cards above them.
Check an endpoint
The check page sends one short prompt to an address you type and reads the model name in the response. The prompt asks for the word pong. It is there to name the speaker. The same name, ignoring capitals, is confirmed. A different name means that endpoint answered as someone else. The whole name has to match, including any prefix or version.
If the name is missing, or the response copies the name you typed, a second prompt asks for the fraction 5/14. A reply that misses the fraction is marked because the quality does not match the price. That question is fixed and public, so a stand-in that already knows it can still print the fraction. A different model name is the strong signal.
The key is typed in the browser and sent only to that https address. The field clears when the check starts. This site keeps no copy. Check an endpoint.
What is posted
The run time, the chain, the model name, the overall percent, and the five benches. Not the questions. Not the replies. Not the API keys.
The keys stay on the machine that runs the night script. The script prints a fall sentence there. The public board is the latest percents.
See a drawn board before a real night has been posted.