Across several audits we have described the pattern of which layers a quantiser protects at higher precision as a policy, a decision each publisher makes independently. We wrote that no two promotion policies were alike. Having now compared fifteen builds side by side, that was wrong in the case that matters most, and the correction is more interesting than the claim.
Three publishers, working on three different models, promote exactly the same twenty blocks. They are not agreeing with each other. They are all running the same default.
Which layers get more bits in a GGUF?
The ones a single lambda in llama.cpp says should.
The rule lives in src/llama-quant.cpp, and it is one line:
“cpp
auto use_more_bits = [](int i_layer, int n_layers) -> bool {
return i_layer < n_layers/8 || i_layer >= 7*n_layers/8 || (i_layer - n_layers/8)%3 == 2;
};
“
Read plainly, a layer gets promoted if it is in the first eighth of the network, or the last eighth, or if it falls on every third layer counting from the end of that first eighth. The function is consulted throughout the quantisation logic to decide whether a tensor gets Q6_K instead of Q5_K, Q5_K instead of Q4_K, and so on.
For a forty-block model it selects twenty layers: 0 to 4, then 7, 10, 13 and onward in threes, then 35 to 39. The other twenty get the lower type.
Do real builds follow it?
Exactly, and from publishers who have never coordinated.
We had already recorded the promotion pattern for the ffn_down_exps tensors in three separate Qwen builds. Setting the measured indices against the rule’s prediction:
| Build | Publisher | Promoted blocks |
|---|---|---|
| Qwen3.5-35B-A3B IQ3_M | bartowski | matches |
| Qwen3.5-35B-A3B heretic Q4_K_M | mradermacher | matches |
| Qwen3.6-28B-REAP20-A3B Q4_K_M | barozp | matches |
All three leave the same twenty blocks at the lower type, beginning 5, 6, 8, 9, 11, 12. The rule predicts that set precisely: twenty promoted, twenty not, with the identical indices. Three publishers, two base models, one of them expert-pruned, and the schedule is character for character the same.

Llama 4 Scout, at forty-eight blocks, also lands on the rule’s selection. The rule is written against n_layers rather than any fixed index, so it produces a different set for every depth and still matches. That is the part that makes it convincing: three builds agreeing on the number 5 would be a coincidence worth investigating, but three builds agreeing on a set that the source computes from their own layer count is the source doing the work.
The rule is also consulted for more than one tensor class. Reading the surrounding code in llama-quant.cpp shows it gating decisions for attention value projections and feed-forward down projections alike, and in one branch it applies only when a model has exactly eight experts. So the schedule you observe depends on the architecture as well as the depth, which is another reason a per-build reading of the pattern misleads.
Where it does not hold
One case in our set does not match, and it is worth naming rather than rounding off.
The GLM-4.7-Flash builds have forty-seven blocks, and their measured pattern begins 1, 2, 3, 4, 7, 10. That is close to what the rule produces for forty-seven layers but not equal to it: the rule’s first-eighth group starts at block 0, and block 0 is absent from the measured set. Our audit classifies a layer as an outlier relative to the most common type in its class, so a build where block 0 received a third, higher type again would show exactly this. That is a plausible explanation and we have not confirmed it, so we are not claiming GLM as a match.
The genuine exceptions are more informative. unsloth’s MXFP4 build of Qwen3.5 promotes a single block, number 10, and nothing else, which no reading of the rule produces. And bartowski’s builds promote block 40, which we established separately is the multi-token prediction head rather than a normal layer. Those are real decisions by real people. The twenty-block schedule is not.
What this changes about reading a quant
Three things, and the first is a correction to our own earlier work.
Most of the variation is not editorial. When we audited eight Gemma builds we treated the spread of quantisation types as evidence that every publisher decides independently. The spread is real, but a large part of it is the same default responding to different quant levels and different block counts. Publishers diverge in which quant level they target; within a level, the layer schedule is mostly inherited.
The interesting signal is the deviation. A build that follows the schedule tells you it was made with standard tooling and standard settings. A build that does not, like the single-block promotion or the preserved draft head, is where somebody made a decision worth understanding. That is a much cheaper thing to look for once you know the baseline.
It explains a puzzle from an earlier piece. In NVFP4 against Q4_K_M the _M suffix turned out to be a mixture that promotes sensitive tensors, and the natural question was who chooses which tensors. The answer is that for the common path nobody chooses per model; the mixture is generated by this rule from the layer count alone. The same applies when you are working out what a mixture-of-experts model will actually cost in memory, because the promoted layers are a predictable fraction rather than a per-build unknown.
The broader lesson is one we keep relearning in this series, and this time it caught us rather than someone else. A pattern repeated across independent sources looks like consensus and is usually a shared dependency. We saw three publishers agree and read it as three judgements converging. It was one lambda, running three times.