The scorecard

Each run is compared with what the formula gives for the same model on the same chip at the same quantization, with no help from any measured row — the figure the index would print for a model nobody had run yet. “Run vs formula” is the measured speed over that figure: +30% means the Mac ran 30% faster than estimated, −20% that it ran slower. The 24 measured rows the index already held on 5 October are left out. Some of them set the formula’s constants, so they can’t test it.

Measured runs added to the LLMCheck index since 5 October 2026 (data version 2026-10-17), against the formula at the same model, chip and quantization. Miss = |run ÷ formula − 1|.

ClassRunsModelsMedian missWithin ±10%Within ±20%Run ÷ formula
Dense16510%9160.83–1.18 (median 1.05)
Small MoE (≤40B total)271016%9180.66–1.49 (median 0.97)
Large MoE (>40B total)241238%480.41–2.09 (median 1.17)
1-bit / ternary63Measured-only: the formula does not apply
Formats the index can’t cost32Listed, not scored (oQ2e, an SSD-streamed Q2 GGUF, a mixed 4/8-bit port)

The formulas are on the methodology page. In short: decode speed is weight bytes read per token over memory bandwidth, times an efficiency of 0.783, plus a fixed cost per token. Dense models read every weight. Mixture-of-experts (MoE) models read only their active parameters, and pay more fixed cost for routing.

Provenance key
sourced
Published figure — vendor or press review
estimated
community
Linked individual run — blog, forum or submission

Dense models: within 18%

The dense formula’s two constants (0.783 efficiency, 1.46 ms per token) were solved in August from two vendor-published M5 Max runs. Against 16 new dense runs on 5 models it missed by 10% at the median and by no more than 18%; 9 of the 16 landed within 10%.

Dense models: new runs vs the formula at the same chip and quant.

Model · chipQuant · runtimeRun (tok/s)FormulaRun vs formula
Llama 3.3 70B
M5 Max · 614 GB/s
4-bit · MLXsourced13.1
source
estimated~12+11%
Mistral Medium 3.5
M5 Ultra · 1,228 GB/s
FP8 · MLX
8,192-token context, 128 generated
sourced7.7
source
estimated~7.0+10%
Mistral Medium 3.5
M3 Ultra · 819 GB/s
FP8 · MLX
8,192-token context, 128 generated
sourced4.95
source
estimated~4.7+5%
Qwen 3 32B
M5 Max · 614 GB/s
unstated · Ollama
quant not stated; formula at Q4_K_M
sourced24.88
source
estimated~25−2%
Qwen 3 4B
M6 · 170 GB/s
unstated · MLX
quant not stated; formula at Q4_K_M
sourced53.35
source
estimated~54−1%
Qwen 3 4B
M6 · 170 GB/s
8-bit · LM Studio
short prompt
community31.47
source
estimated~30+5%
Qwen3.8-27B
M5 Ultra · 1,228 GB/s
4-bit · MLX
512-token prompt, 128 generated
community54.7
source
estimated~56−2%
Qwen3.8-27B
M5 Ultra · 1,228 GB/s
oQ4e · MLX
6,091-token prompt
sourced48
source
estimated~53−10%
Qwen3.8-27B
M5 Ultra · 1,228 GB/s
Q4_K_M · llama.cpp
ISL 2048 / OSL 512, depth 0
sourced46.27
source
estimated~56−17%
Qwen3.8-27B
M5 Ultra · 1,228 GB/s
BF16 · MLX
8,192-token context, 128 generated
sourced19.69
source
estimated~17+17%
Qwen3.8-27B
M3 Ultra · 819 GB/s
4-bit · MLX
512-token prompt, 128 generated
community37.6
source
estimated~38−2%
Qwen3.8-27B
M3 Ultra · 819 GB/s
oQ4e · MLX
6,091-token prompt
sourced31
source
estimated~36−15%
Qwen3.8-27B
M3 Ultra · 819 GB/s
BF16 · MLX
8,192-token context, 128 generated
sourced12.46
source
estimated~11+10%
Qwen3.8-27B
M5 Max · 614 GB/s
8-bit · MLX
short prompt, 400 tokens
community17.9
source
estimated~16+12%
Qwen3.8-27B
M6 · 170 GB/s
4-bit · MLX
525-token prompt; flagged: never anchors
community9.8
source
estimated~8.3+18%
Qwen3.8-27B
M6 · 170 GB/s
QAT · LM Studio
short prompt
community9.42
source
estimated~8.4+12%

Two results stand out. Apple’s own MLX benchmarks (published 15 October) put Qwen3.8-27B at BF16 at 19.69 tok/s on an M5 Ultra and 12.46 on an M3 Ultra (both published), against ~17 and ~11 estimated. Mistral Medium 3.5 at FP8 ran 7.7 and 4.95 (published) against ~7.0 and ~4.7 estimated. At 8 and 16 bits per weight, where decode is almost entirely a memory problem, the formula runs slightly low. Llama 3.3 70B at 4-bit MLX told the same story on an M5 Max: 13.1 tok/s published in tbreak’s review, +11% against the formula.

The second is how much the runtime matters. On the M5 Ultra, across three reviewers’ Macs, Qwen3.8-27B at about 4 bits ran 46.27 tok/s in llama.cpp (Tom’s Hardware, published), 48 in oMLX after a 6,091-token prompt (MacStories, published) and 54.7 in mlx_lm.benchmark (NetworkChuck’s published test repo, community-measured). From slowest to fastest that is a spread of 18% on the same chip with roughly the same weights, and the formula’s misses sit inside it. Below that level, the runtime you pick matters more than the estimate.

The Mac mini M6 is the slowest chip in the set, and the formula held there too: Qwen3.8-27B at 4-bit QAT ran 9.42 tok/s community-measured in LM Studio on a 24 GB M6, against ~8.4 estimated (+12%).

Small MoEs: right on average, not per model

For MoEs up to 40B total parameters the index uses the dense formula on active-parameter bytes with a ~5 ms per-token overhead, refit on 5 October to six runs. Across 27 new runs on 10 models the median run came in at 0.97× the formula, so the overhead is about right on average. Individual runs scattered: the median miss was 16%, 18 of 27 landed within 20%, and the extremes were −34% and +49%.

Small MoEs (≤40B total): new runs vs the formula at the same chip and quant.

Model · chipQuant · runtimeRun (tok/s)FormulaRun vs formula
Gemma 4 26B-A4B
M3 Ultra · 819 GB/s
MXFP4_MOE · llama.cpp
TG32, depth 0; flagged: never anchors
community87.8
source
estimated~122−28%
Gemma 4 26B-A4B
M5 Max · 614 GB/s
Q4_K_M · llama.cpp
4K-token input
sourced107
source
estimated~106+1%
Gemma 4 26B-A4B
M6 · 170 GB/s
4-bit · MLX
~530-token prompt
community52.2
source
estimated~47+11%
GPT-oss 20B
M5 Max · 614 GB/s
unstated · Ollama
quant not stated; formula at MXFP4
sourced107.51
source
estimated~111−3%
KAT-Coder-V2.5
M5 Max · 614 GB/s
OptiQ-4bit (4.51 bpw) · MLX
1k
community89.3
source
estimated~121−26%
KAT-Coder-V2.5
M4 Max · 546 GB/s
unstated · LM Studio
up to ~5.9k tokens used; quant not stated; formula at Q4_K_M
community74.2
source
estimated~111−33%
KAT-Coder-V2.5
M3 Max · 400 GB/s
6-bit · MLX
1k
community69.5
source
estimated~80−14%
KAT-Coder-V2.5
M5 · 153 GB/s
oQ2e · MLX
pp1024/tg128; flagged: never anchors
community49.5
source
—not scored
LFM2.5-24B-A2B
M5 Max · 614 GB/s
Q4_K_M · llama.cpp
4K-token input
sourced184
source
estimated~127+45%
LFM2.5-24B-A2B
M4 Max · 546 GB/s
5-bit · MLX
4k
community89.7
source
estimated~114−21%
LFM2.5-24B-A2B
M5 · 153 GB/s
4-bit · MLX
4k
community74.2
source
estimated~60+23%
LFM2.5-24B-A2B
M4 · 120 GB/s
4-bit · MLX
1k
community59.9
source
estimated~50+19%
Mellum2.1-12B-A2.5B-Thinking
M5 Max · 614 GB/s
BF16 · LM Studio
short prompts, long generations
community96.8
source
estimated~65+49%
Mellum2.1-12B-A2.5B-Thinking
M4 · 120 GB/s
Q4_K_M · llama.cpp
short coding prompts; flagged: never anchors
community50
source
estimated~50+1%
Mellum2.1-12B-A2.5B-Thinking
M4 · 120 GB/s
6-bit · MLX
4k
community35.9
source
estimated~39−8%
MiniCPM-V 4.7 35B-A3B
M5 Max · 614 GB/s
MXFP4 · MLX
1k
community100.2
source
estimated~120−16%
MiniCPM-V 4.7 35B-A3B
M4 Pro · 273 GB/s
5-bit · MLX
1k
community48.2
source
estimated~70−31%
Nemotron 3.5 Lightning
M5 Max · 614 GB/s
Q4_K_M · llama.cpp
4K-token input
sourced114
source
estimated~117−3%
North Mini Code 1.0
M5 Max · 614 GB/s
4-bit · MLX
1k
community119.7
source
estimated~117+2%
North Mini Code 1.0
M5 Pro · 307 GB/s
4-bit · MLX
1k
community69.8
source
estimated~83−16%
North Mini Code 1.0
M5 · 153 GB/s
4-bit · MLX
1k
community34.2
source
estimated~52−34%
Qwen 3 30B-A3B
M5 Max · 614 GB/s
unstated · MLX
quant not stated; formula at Q4_K_M
sourced130.63
source
estimated~117+11%
Qwen 3 30B-A3B
M6 · 170 GB/s
unstated · MLX
quant not stated; formula at Q4_K_M
sourced62.01
source
estimated~56+11%
Qwen 3.6-35B-A3B
M5 Ultra · 1,228 GB/s
4-bit · MLX
512-token prompt, 128 generated
community153.4
source
estimated~148+4%
Qwen 3.6-35B-A3B
M3 Ultra · 819 GB/s
4-bit · MLX
512-token prompt, 128 generated
community106.4
source
estimated~131−19%
Qwen 3.6-35B-A3B
M3 Ultra · 819 GB/s
Q8_0 · llama.cpp
TG128 from empty context; flagged: never anchors
community81.2
source
estimated~101−19%
Qwen 3.6-35B-A3B
M5 Max · 614 GB/s
Q4_K_M · llama.cpp
4K-token input
sourced118
source
estimated~117+1%
Qwen 3.6-35B-A3B
M5 Max · 614 GB/s
Q8_0 · llama.cpp
128-token prompt
community92.9
source
estimated~86+8%

On the M5 Max at 4-bit, independent setups agree with the formula. The comparison chart on Liquid AI’s LFM2.5-24B-A2B model card (llama.cpp, Q4_K_M, a 4K-token input; published) puts Qwen 3.6-35B-A3B at 118 tok/s, Gemma 4 26B-A4B at 107 and Nemotron 3.5 Lightning at 114, against ~117, ~106 and ~117 estimated. A community-measured oMLX run of North Mini Code 1.0 on the M5 Max measured 119.7 against ~117, and tbreak’s published Ollama figure for GPT-oss 20B was 107.51 against ~111. tbreak’s Mac mini M6 review published a figure for Qwen 3 30B-A3B, 62.01 tok/s in MLX, +11% against the formula.

KAT-Coder-V2.5 is the miss that changed the leaderboard. Its first fully specified run came from oMLX on a 40-core M5 Max, with the OptiQ 4-bit build and MTP off. It measured 89.3 tok/s (community-measured; oMLX database), −26% against the formula’s ~121 at that build’s 4.51 bits per weight. The leaderboard had ranked it #1 on an estimate of 117. MiniCPM-V 4.7 also came in under: −16% on the M5 Max (100.2 tok/s, community-measured) and −31% on an M4 Pro at 5-bit (48.2 tok/s, community-measured).

The misses don’t share a direction, which is why the index has not refit the overhead again. On the base M5, North Mini Code 1.0 ran −34% against the formula (34.2 tok/s, community-measured) while LFM2.5-24B-A2B ran +23% (74.2, community-measured). A constant that fixed one would make the other worse. LFM2.5-24B-A2B’s own runs also disagree with each other. Liquid’s published 184 tok/s on an M5 Max is +45% against the formula, while a community-measured 5-bit run on an M4 Max is −21%. Its estimates on other chips are therefore not a clean bandwidth curve.

Large MoEs: the 0.42 factor undershoots

Above 40B total parameters the index multiplies the active-bytes formula by 0.42. That factor was fitted in September to one 2-bit DeepSeek V4 Flash run and kept on purpose as conservative. The new runs show how conservative. Across 24 runs on 12 models the median came in at 1.17× the estimate, with a range of 0.4× to 2.1×; 15 of the 24 ran faster than estimated.

Large MoEs (>40B total): new runs vs the formula (with the 0.42 factor) at the same chip and quant.

Model · chipQuant · runtimeRun (tok/s)FormulaRun vs formula
DeepSeek V4.1 Flash
M3 Ultra · 819 GB/s
oQ4e · MLX
4K
community20.23
source
estimated~26−21%
DeepSeek V4.1 Flash
M3 Ultra · 819 GB/s
4/8-bit mixed · MLX
8K; flagged: never anchors
community6.53
source
—not scored
DeepSeek V4.1 Flash
M5 Max · 614 GB/s
Q2 GGUF · ds4
2K; SSD-streamed; never anchors
community29.6
source
—not scored
GLM-5.3-Flash
M5 Ultra · 1,228 GB/s
unstated · llama.cpp
quant not stated; formula at Q4_K_M; flagged: never anchors
community39.7
source
estimated~35+15%
GPT-oss 120B
M5 Max · 614 GB/s
unstated · Ollama
quant not stated; formula at MXFP4
sourced75.65
source
estimated~58+30%
Kolibri-1
M1 Max · 400 GB/s
4-bit (4.54 bpw) · MLXcommunity52
source
estimated~57−9%
Ling-3.0 Flash
M5 Max · 614 GB/s
4-bit · MLX
1k
community68
source
estimated~57+20%
MiMo-V2.6-Flash
M3 Ultra · 819 GB/s
4-bit (4.257 bpw) · MLX
128-token serial decode
community59.4
source
estimated~32+86%
MiMo-V2.6-Flash
M3 Ultra · 819 GB/s
4-bit · MLX
4K
community59
source
estimated~28+108%
MiniMax-M3
M3 Ultra · 819 GB/s
4-bit · MLX
1k
community28.9
source
estimated~19+51%
Muse Spark Open
M3 Ultra · 819 GB/s
oQ3e · MLX
1024-token prompt, 128 generated
sourced21
source
estimated~14+55%
Muse Spark Open
M3 Ultra · 819 GB/s
Q2_K · llama.cppsourced18
source
estimated~18+2%
Nemotron 3.5 Bolt 74B-A9B
M3 Ultra · 819 GB/s
Q4_K_M · llama.cpp
tg128; flagged: never anchors
community41.61
source
estimated~44−6%
Nemotron 3.5 Bolt 74B-A9B
M5 Max · 614 GB/s
4-bit · MLX
128-token greedy sample
community71.7
source
estimated~35+107%
Nemotron 3.5 Bolt 74B-A9B
M5 Max · 614 GB/s
5-bit · MLX
64-token greedy sample
community63.6
source
estimated~30+109%
Nemotron 3.5 Bolt 74B-A9B
M5 Max · 614 GB/s
8-bit · MLXcommunity37
source
estimated~20+88%
Nemotron 3.5 Super VL 120B-A12B
M5 Max · 614 GB/s
NVFP4 · MLX
160 generated tokens, greedy
community30.6
source
estimated~27+13%
Qwen 3.5 122B-A10B
M5 Ultra · 1,228 GB/s
4-bit · MLX
512-token prompt, 128 generated
community87.7
source
estimated~57+54%
Qwen 3.5 122B-A10B
M3 Ultra · 819 GB/s
4-bit · MLX
512-token prompt, 128 generated
community58.6
source
estimated~41+44%
Qwen 3.5 122B-A10B
M5 Max · 614 GB/s
Q4_K_M · llama.cpp
~64-token prompt, 512 generated
community42.9
source
estimated~32+36%
Qwen3.8-Flash-Next
M5 Ultra · 1,228 GB/s
IQ4_NL · llama.cppcommunity57
source
estimated~85−33%
Qwen3.8-Flash-Next
M3 Ultra · 819 GB/s
4-bit · MLXcommunity26.5
source
estimated~62−57%
Qwen3.8-Flash-Next
M3 Ultra · 819 GB/s
4-bit · MLX
short prompt; flagged: never anchors
community25.1
source
estimated~62−59%
Qwen3.8-Flash-Next
M5 Max · 614 GB/s
4-bit · MLX
coding task (prompt length not stated)
community47
source
estimated~49−4%
Qwen3.8-Flash-Next
M5 Max · 614 GB/s
4-bit · MLXcommunity43.8
source
estimated~49−11%
Qwen3.8-Flash-Next
M5 Max · 614 GB/s
oQ4e · MLX
1k
community28.5
source
estimated~47−39%

MiMo-V2.6-Flash is the case that matters most. Two independent runs on a 256 GB M3 Ultra measured 59.4 tok/s in oMLX and 59 in Rapid-MLX (both community-measured, 4-bit, no MTP). That is about twice the formula’s ~28–32 estimated for those two builds. Nemotron 3.5 Bolt 74B-A9B also runs at about twice its estimate: 71.7 tok/s community-measured at 4-bit on an M5 Max, through a community MLX port; stock llama.cpp still crashes on it on Metal, and the fix (PR #30699) was still open on 18 October. GPT-oss 120B in Ollama measured 75.65 tok/s on an M5 Max (published, tbreak), +30% against the ~58 estimated at its native MXFP4. Ling-3.0 Flash got its first figure of any kind: 68 tok/s community-measured on an M5 Max in oMLX, +20% against the formula.

Three models fell below the factor, all on young runtimes. Qwen3.8-Flash-Next ran 47 tok/s on an M5 Max in MTPLX with MTP off, but 28.5 in oMLX on the same chip and 26.5 through a custom MLX port on an M3 Ultra (all community-measured). DeepSeek V4.1 Flash measured 20.23 on an M3 Ultra in oMLX’s own V4.1 support (community-measured), and Kolibri-1 52 on an M1 Max with a loader bundled in its repo (community-measured). The custom port and Kolibri’s bundled loader are unmerged code, so those two runs are displayed but do not anchor estimates.

The methodology page measures the spread a second way. It takes every large-MoE row allowed to anchor an estimate, from any date, and compares it with the formula without the factor:

Large MoEs: every measured plain-decode row allowed to anchor an estimate (22 rows, 12 models, all dates), over the formula without the 0.42 factor. Median per model.

ModelRunsRun ÷ unscaled formula= × the 0.42 estimate
Qwen3.8-Flash-Next40.330.8×
DeepSeek V4.1 Flash10.330.8×
DeepSeek V4 Flash20.421.0×
Nemotron 3.5 Super VL 120B-A12B10.471.1×
Ling-3.0 Flash10.501.2×
Muse Spark Open20.541.3×
GPT-oss 120B10.541.3×
GLM 5.210.561.3×
Qwen 3.5 122B-A10B30.611.5×
MiniMax-M310.631.5×
MiMo-V2.6-Flash20.832.0×
Nemotron 3.5 Bolt 74B-A9B30.872.1×

Individual runs land at 0.26–0.88 of the unscaled formula. Per model the medians run from 0.33 to 0.87 (0.8×–2.1× the 0.42 estimate), and the median across models is 0.54. The factor stays because it sits below that median: for 10 of these 12 models it was a floor, and for 2 it was not. But it only applies until the first run, and any model with a measured row is scaled from that row instead (see the rules). Read a large-MoE estimate as “about this fast or faster on a mature runtime”. A new architecture on a first-week port can fall below it.

1-bit and ternary: measured only

1-bit and ternary formats don’t read weights the way the formula assumes. Each weight is a sign bit or a trit unpacked by a dedicated kernel, so decode is limited by compute, not bandwidth. Until this update the index carried a bandwidth estimate for Bonsai 27B: 30 tok/s on an M5 Max. It should never have existed, and it is retracted. PrismML’s model card reports 66.4 tok/s on an M5 Max, 44.2 on an M5 Pro and 26 on an M4 Pro (published; llama.cpp tg128 in PrismML’s fork, Q1_0_g128, 3.9 GB).

1-bit and ternary runs added since 5 October. No formula figure: these formats are measured-only.

Model · chipQuant · runtimeRun (tok/s)
Bonsai 27B
M5 Max · 614 GB/s
Q1_0_g128 · llama.cpp
tg128
sourced66.4
source
Bonsai 27B
M5 Pro · 307 GB/s
Q1_0_g128 · llama.cpp
tg128
sourced44.2
source
Bonsai 27B
M4 Pro · 273 GB/s
Q1_0_g128 · llama.cpp
tg128
sourced26
source
Ternary Bonsai 2 27B
M5 Max · 614 GB/s
PQ2_0 · llama.cpp
tg128, depth 0, batch 1
sourced46.8
source
Ternary Bonsai 2 27B
M5 Pro · 307 GB/s
PQ2_0 · llama.cpp
tg128, depth 0, batch 1
sourced28.1
source
Ternary Bonsai 2 9B
M5 Pro · 307 GB/s
PQ2_0 · llama.cpp
tg128, batch 1
sourced76.5
source

These models are now measured-only. The leaderboard shows the best published figure with the chip it was taken on, and a chip with no published run shows no figure at all rather than an estimate.

Why the leaderboard moved

The leaderboard prints one reference figure per model, and the speed part of the LLMCheck Score (tok/s × 0.25, capped at 25) uses it. Where a new run landed on a model’s reference chip, it replaced the estimate:

Reference figures that changed because of a run added since 5 October. 5 Oct = the deployed index of 5 October 2026; ranks also moved because 20 models joined the catalog.

Model5 Oct figure18 Oct figureScore (rank)
MiMo-V2.6-Flashestimated42
M5 Ultra
estimated79
M5 Ultra · MXFP4
72 (#6) → 82 (#1)
Qwen 3.6-35B-A3Bcommunity126
M5 Max
sourced118
M5 Max · Q4_K_M
81 (#2) → 81 (#2)
KAT-Coder-V2.5estimated117
M5 Max
community89.3
M5 Max · OptiQ-4bit
82 (#1) → 79 (#3)
Nemotron 3.5 Lightningestimated103
M5 Max
sourced114
M5 Max · Q4_K_M
79 (#3) → 79 (#4)
Gemma 4 26B-A4Bestimated106
M5 Max
sourced107
M5 Max · Q4_K_M
78 (#4) → 78 (#6)
Bonsai 27Bestimated30
M5 Max
sourced66.4
M5 Max · Q1_0_g128
64 (#25) → 72 (#10)
DeepSeek V4.1 Flash—estimated29
M5 Ultra · oQ4e
63 (#32) → 70 (#15)
Ling-3.0 Flash—community68
M5 Max · 4-bit
51 (#69) → 68 (#25)
GPT-oss 20Bestimated103
M5 Max
sourced107.51
M5 Max · unstated
67 (#18) → 67 (#27)
Qwen3.8-Flash-Nextestimated49
M5 Max
community43.8
M5 Max · 4-bit
67 (#21) → 66 (#38)
Qwen 3 30B-A3Bestimated116
M5 Max
sourced130.63
M5 Max · unstated
65 (#24) → 65 (#43)
GPT-oss 120Bestimated58
M5 Max
sourced75.65
M5 Max · unstated
59 (#47) → 64 (#45)
Qwen 3.5 122B-A10Bestimated47
M5 Max
community42.9
M5 Max · Q4_K_M
61 (#40) → 60 (#66)
Qwen 3 32Bestimated25
M5 Max
sourced24.88
M5 Max · unstated
49 (#77) → 49 (#102)
Llama 3.3 70Bestimated12
M5 Max
sourced13.1
M5 Max · 4-bit
41 (#91) → 41 (#110)

The top changed hands. On its first measurement KAT-Coder-V2.5 dropped from #1 (Score 82) to #3 (79). MiMo-V2.6-Flash rose from #6 to #1 (82) because its M5 Ultra figure is now scaled from the two M3 Ultra runs instead of the 0.42 factor. It went from 42 to ~79 tok/s at MXFP4, still an estimate and still marked with a hollow diamond. It needs a Mac Studio with at least 192 GB of unified memory. On a Mac with 32 GB or less, the best pick is Qwen 3.6-35B-A3B (Score 81; 64 tok/s community-measured on a Mac mini M6 32 GB; needs 24 GB). The current figures are on the leaderboard and the key numbers page.

The rules: reference row and anchors

Two rules decide which number you see. Both are documented under which figure the leaderboard shows, and one function in the build computes them for every page.

The reference row

Example: Qwen 3.6-35B-A3B has 3 measured rows on the M5 Max: 126 tok/s (MLX 4-bit, community-measured); 118 tok/s (llama.cpp Q4_K_M, published); 92.9 tok/s (llama.cpp Q8_0, community-measured; excluded: more than 5 bits). The leaderboard shows 118 tok/s published, the lower median of the two eligible runs, not the faster one. GPT-oss 120B’s only M5 Max run, tbreak’s Ollama figure, did not state a quant. With no stated-quant run to defer to, it is the reference.

Anchors

That is how MiMo-V2.6-Flash gets ~79 tok/s on an M5 Ultra without an M5 Ultra run. It is also why a patched-llama.cpp run of Nemotron 3.5 Bolt on an M3 Ultra appears in the dataset but does not drive Bolt’s other figures. When a model goes from estimate to measurement, the leaderboard can move by several points in either direction. The table above shows both.

What stays out of the table

Some published figures measure a different workload, and comparing them with a plain-decode formula would flatter or punish it unfairly. They are cited here, labelled, and never entered as plain-decode rows:

How to read a speed on LLMCheck now

Every measured row is in the open dataset (CSV and JSON) and on the benchmarks page. Have a run the index doesn’t list? Submit it with the chip, RAM, quant, runtime and version, prompt length, and whether MTP was off.

Frequently Asked Questions

How accurate are LLMCheck's tokens-per-second estimates?

According to the LLMCheck index's own check against 67 Mac runs added since 5 October 2026, its formula landed within 18% for dense models (median miss 10%). Small mixture-of-experts estimates were right on average but missed individual runs by 16% at the median. Large-MoE estimates are deliberately conservative: runs came in at 0.4× to 2.1× the estimate. Measured rows replace estimates wherever they exist.

Why did KAT-Coder-V2.5 lose the #1 spot?

Its first fully specified run, community-measured in oMLX on a 40-core M5 Max with MTP off, came in at 89.3 tok/s, against the 117 tok/s estimate it had been ranked on. The leaderboard now scores the measured figure, so its Score fell from 82 to 79 and it ranks #3.

Why is MiMo-V2.6-Flash #1 on an estimate?

No M5 Ultra run has been published yet. Two community runs on an M3 Ultra measured about 59 tok/s, and the index now scales its M5 Ultra figure from them (~79 tok/s, estimated) instead of using the conservative large-MoE factor. It needs a Mac Studio with at least 192 GB. On a Mac with 32 GB or less, the best pick is Qwen 3.6-35B-A3B (Score 81; 64 tok/s community-measured on a Mac mini M6 32 GB).

Does LLMCheck run its own benchmarks?

No. The LLMCheck index collects published figures (vendor model cards and press reviews that document their setup), linked community runs, and estimates from a published bandwidth formula. Every number is labelled with which of the three it is.

Why aren't multi-token prediction (MTP) speeds on the leaderboard?

MTP and speculative decoding produce several tokens per step, so they measure a different workload from plain decode. KAT-Coder-V2.5, for example, reached 124.5 tok/s with oMLX's MTP on and 89.3 with it off on the same M5 Max. MTP figures are cited in prose and labelled, never entered as rows.

What is a reference row?

The single figure the leaderboard prints and scores for a model. On the M5 Max (or the M5 Ultra for models above 128 GB), it is the lower median of measured plain-decode runs at 5 bits or fewer. Otherwise it is the Q4_K_M or native-format estimate. 1-bit and ternary models show their best measured run.

Which runs never anchor an estimate?

Runs on runtimes patched with unmerged code (forks, custom ports, loaders from open pull requests), approximate figures and runs their own source doubts, SSD-streamed runs and binned-GPU configurations; pre-release builds of a released runtime count as released. Runs whose quantization wasn't stated anchor only when the model has no stated-quant run. All of them are still displayed in the dataset.