What the model is allowed to do
At the top of a public statistics page here there can be two or three sentences describing what the counter did this month. They are written by a language model. The model invents nothing, and the arrangement that makes that true is worth describing, because the obvious way to build this feature does not have that property.
The Pi runs the SQL, decides which figure is worth mentioning, and writes the prompt. The model turns one fact into one sentence in the requested language. Then the Pi reads the answer back and throws it away if a digit in it did not come from the prompt.
So the model's only freedom is phrasing. It does not choose what is interesting, it does not calculate, it does not round. What it contributes is the thing templates cannot do: eleven languages that read like language.
Three checks, and the failure each one is for
None of them was written out of caution. Each exists because something specific went wrong on 17 August 2026. A small model was given two facts about one counter — strongest weekday Monday at 46 %, and 76 % of visitors from Poland across 5 countries — and produced a sentence saying that Wednesday was strongest and that 46 % of visitors came from Poland.
Two different errors in one sentence, and neither is a hallucinated number.
- Every digit must appear in the prompt. This catches invented figures. It has a consequence that is easy to get wrong later: the instruction part of the prompt contains no digits at all. It says "one or two sentences", never "1-2", because otherwise the 1 and the 2 would become permitted numbers in the answer.
- One prompt per fact. This catches swapped figures. The 46 above was real — it simply belonged to the other fact, and a check over the set of numbers cannot see that. If the model only ever sees one fact, there is nothing to swap.
- Names are checked too. This catches "Monday" turning into "Wednesday". The name appears in the fact in the target language, it has to appear literally in the answer, and its siblings must not.
What they do not catch
That belongs in the same breath as the rest. Two things get through.
A sentence that says something false without using digits — "most visitors" when it was 46 % — is not caught by any of the three. The design absorbs this instead: the judgement is already in the fact the Pi selected, not in the model's freedom.
And a sentence that is about a different subject than its fact, as long as the digits match, gets through. Against that there is only a model that follows instructions. For features that carry a name — weekday, device, robot, page — the third check covers it as well.
Verification that only catches invented numbers would have passed the sentence above unchanged. It was real numbers in the wrong places, which is a failure mode you get to see only by looking at output rather than at the idea.