Plain-language notes on every score on Main Bench. The same text opens from the i beside each column head. The tests themselves live in the open-source CrucibleForge project; this page describes what they measure in general terms. Where a test has public example questions, open them from its card.
What the tests measure
Total
Total is the Code score plus the Chat score. Each of those is 10 for a perfect run of the standard tests, so 20 is the nominal top, not a maximum. Bonus sets (see Bonus sets) add points on top of that, with no ceiling, so a model can score above 20. The uncensored tests have their own tab and are never added in. The ± figure beside a Total is half of a 90% interval from a bootstrap over the test cases, so two models closer together than their margins are statistically tied.
Chat
Chat scores role-play and companion conversation, not general assistant work. It runs 8 multi-turn sessions: a lore-heavy role-play, companion chats, a character with several voices and a story written together. A session checks that the model remembers facts planted earlier, accepts corrections, keeps a character's voice and point of view, and follows stacked writing rules. A separate judge model, Gemma 4 31B (uncensored “heretic” build, Q8) on our own GPU rig, grades the replies against a checklist for each case, and plain text rules cover the rest. Answering questions or following one-off instructions is not scored here. Chat is 10 for a perfect run of the standard questions, and bonus sets add points on top with no ceiling.
Code covers writing working Python functions, predicting what a program prints, finding and fixing bugs, repository tasks and tool use. Answers are run against hidden tests, so the score reflects code that works rather than code that looks right. Code is 10 for a perfect run of the standard questions, and bonus sets add points on top with no ceiling.
Each category is 10 for a perfect run of the standard questions. A model that scores at least 90% on a part earns access to a harder bonus set for that part, and a model that clears that set can unlock the next one. Bonus points are added on top, so a category can pass 10 and there is no ceiling; more bonus sets can be added in later suites. Bonus sets are the only way past 10, which keeps the top of the board from bunching up at a perfect score. "Bonus sets reached" in a row's details says how high a model got.
Programs gives the model 6 tasks that each ask for one Python function from a precise, trap-filled description (dates, rounding, text layout, scheduling). The answer is run in a sandbox against hidden unit tests, and the score is the share of test groups that pass, so a nearly right answer earns partial credit.
Code bank shows the model short snippets of everyday Python and JavaScript, the kind of helper code a household app has, and asks exactly what each one prints. There are 2 sets, one per language, and every predicted output is checked by exact match. It rewards knowing how the language really behaves (shared defaults, sort order, rounding, truthiness), not writing new code. Score is the share of predicted outputs that are exactly right.
Agent gives the model one bug report about a small multi-file project and the tools a coding assistant uses: list, read and search files, edit them and run the tests. It is a single task (1 in the suite), so one run can move this column a lot. The fixed project is graded by running its tests.
Tools tests whether a model calls tools correctly. Each case is a scripted conversation with a tool round trip: the model has to choose the right tool, give valid arguments, use the result, and avoid the traps built into the setup. A malformed call counts as a failure.
tok/s is the median speed at which the model produced text during the run. Local models were run on our own hardware, so those speeds compare with each other. Hosted models depend on the provider and on how busy it was, so treat their speed as a rough guide.
Class
Class is a quick way to group models by Total: S, A, B and C, with S the strongest. The cut-off for each band is listed in the notes under the board. A model without a complete Chat score has no Total and no class.
Lean
Lean compares a model's Chat and Code scores with the board's median for each. If it is clearly better at one than the other, it is marked chat-leaning or code-leaning, and otherwise balanced. The size of the gap needed is in the notes under the board.
Suite
The suite is the version of the test set a score was produced with. When the tests change, models are re-run and the old board is kept under Previous suite versions. Compare scores within one suite only.
Date tested
Date tested is the day the model's results on this board were produced. A model re-run later shows the newer date.
Quant
Quant is the compression format of a local model's weights. Q8_0 is close to the full-precision model and is the standard quant on this board; a smaller quant runs faster and fits smaller GPUs but can score lower. We use Q6 or Q5 only when Q8_0 does not fit our rig, and never go below Q5. Older rows scored below Q5 stay on the board with a "below Q5" note, and are re-tested at the standard quant only if they lead. If the same weights were tested at two quants, one row is ranked and the other sits under it as an other variant. API means a hosted model, which the provider serves in whatever form it chooses.