The most valuable property of a reporting system is its ability to refuse. Everything else about a report can be bought, built or copied from somebody who did it first. The refusal is the only part that costs the operator something, which is why it is the only part that tells a client anything.
So the conditions under which the number is not shown are published, and they are short. The number is not shown when the data behind it is missing, when the attribution chain is broken, or when the period is too short for a ratio to mean anything.
Missing data is the plainest case. A platform did not return orders for the period. A tracking layer was down for part of the week. A channel came loose during a migration and nobody noticed until the report was being assembled. The revenue that existed inside the business during those hours is real, and the record of it is unreadable, and those are two separate facts. Only the second one decides whether a number gets published.
A broken attribution chain is subtler and more dangerous. Server events and the platform's order record can fail to reconcile. Deduplication can fail, which means the same order may be sitting inside the figure twice. The chain can be intact on one channel and broken on another, which produces a figure that is arithmetically fine and describes a business that does not exist. A ratio built on a chain nobody has verified is not a smaller truth. It is a different kind of statement wearing the same formatting.
A period too short is the case clients accept least and should accept most. An engagement that started mid week has a denominator covering a few days of spend and a numerator covering revenue partly produced before any of that spend happened. A campaign that has not run long enough produces a result indistinguishable from ordinary variance. Publishing a ratio in either situation is not early reporting. It is reporting noise with a decimal point attached to it.
In all three cases the slot is left empty and the reason is written next to it. Not a dash. Not last week's figure carried forward. Not a modelled estimate, not a platform's own attributed value standing in, not a range wide enough to be safe. The reason names what is missing, what it affects, and what has to happen for the slot to fill. That last part matters, because an empty slot is not only a gap in a report. It is a defect in the operation. Tracking that cannot be read is tracking that has to be fixed, and the fix enters the decision log like any other action, with a date on it.
The argument for building the refusal at all is short. A system that can produce a number under every condition has no path to "cannot say", which means every input, however broken, gets routed into an output. Such a system does not produce a false number occasionally, by accident. It produces one the first time the inputs are bad enough, and it produces it in the same format and with the same confidence as every correct number it produced before. That is the failure nothing recovers from, because it puts a question mark retroactively on the entire series. A blank costs one period of ambiguity. A plausible wrong figure costs the credibility of every figure standing next to it.
The estimate is the specific temptation, and it is worth saying why it is refused outright rather than labelled and shipped. An estimate published with a label gets read without the label by the third person who forwards it. Within a week it is a number inside a deck, and the deck does not carry the caveat. The only place the distinction reliably survives is the moment of publication, so that is where it has to be enforced.
This has a cost, and the cost lands on the client. A client who wants a number every week, and who is reporting upward to people who also want a number every week, will find a blank uncomfortable. It looks like an operator hiding behind a technicality. That reading is understandable and it cannot be argued away in the moment it occurs. Some businesses will prefer an operator that always has a figure, and that preference is not irrational. It is a decision about which kind of risk to carry, made by someone entitled to make it.
The discomfort is the point, in a narrow and defensible sense. A blank puts the problem in the open on the day it happens, while it is still small and while somebody can still fix it. A smoothed number moves the same problem forward. It arrives later, larger, and usually attached to a decision that was made on a figure nobody can reconstruct. One of those is a bad week. The other is a bad year found out about late.
There is also a quieter effect. Once refusal exists in the system, every number that does get published means more, because it survived a filter that could have stopped it. If a blank with a reason written next to it is worth more to you than a number with nothing behind it, book a call.