How MentionFlow handles missing data
The product principle behind every em-dash — null is not zero, unscored is not neutral, and a sample is always labelled. This is why the numbers can be trusted.
MentionFlow will show you an honest gap before it shows you a fabricated number. That single rule shapes the whole interface, and it is worth understanding because it changes how you read every screen.
Null is not zero
When a metric's denominator is empty — no runs yet, no citations, no scored mentions — the metric is null, and null renders as an em-dash (—), not 0.
A 0 in MentionFlow is always a measured zero: it means "we looked and the answer was zero". An em-dash means "we don't have enough to say yet". Conflating the two would let a blank week masquerade as a bad week.
You will see em-dashes in specific, intentional places:
- Citation share — until at least one run in the window carried any citations.
- Sentiment — until at least one scored brand mention exists in the window. ("— means no scored brand mention yet," not "neutral".)
- Average position — until your brand has appeared at least once.
- Estimated impressions — when a prompt has no measurable demand signal.
- Content coverage — until enough prompts have run (coverage counts only prompts with at least three runs).
- Shopping average slot — on days a product's carousel appeared but your product wasn't in it: the share is an honest
0, but the average slot stays—because there is no average of nothing. - Shopping merchant / price — when the engine's payload carried none. A merchant name is only ever derived from the product link, never guessed.
Unscored is not neutral
Sentiment has three real values (positive, neutral, negative) plus a fourth state: unscored. When the language-model extraction pass fails for a run, its mentions are marked unscored rather than folded into "neutral". Receipts show this as a distinct badge. A neutral mention is a judgement the system made; an unscored mention is a judgement it declined to make.
Deltas never lie about direction or magnitude
A period-over-period change is null — rendered "new" — when there is no prior window, or when the previous value was zero. MentionFlow never prints an infinite or fabricated percentage just to fill the cell. Deltas are computed on unrounded inputs so a rounded display can't invent a change that isn't there.
Confidence is labelled, not hidden
- A metric computed from fewer than five runs carries a low-confidence flag. The number is still shown, but you are told not to over-read it. Day-to-day movement inside a window is expected noise — judge trends, not ticks.
- Volume estimates are bands with a ≈, never unit-precise counts. AI-search demand cannot be measured to the unit, and a false-precision number would imply otherwise. The ≈ owns the rounding honestly.
Demand confidence tiers
Where MentionFlow estimates how often a prompt is asked, it labels how it knows:
- measured — a query behind this prompt appears in your own Google Search Console data.
- anchored — a search an assistant actually ran for this prompt matched real Google demand.
- modeled — only the prompt's head keyword matched.
- — — no measurable demand signal yet. Which is information, not zero.
The Methodology page has the full derivation.
Samples are always labelled
When a screen shows data that is not yours, it says so:
- Preview — sample data. Gated features (like agent analytics before you're on a qualifying plan) render a dimmed, non-interactive mock behind this badge, so it is always clear none of it is your data.
- Demo data. Signed-out or empty workspaces show a deterministic demo dataset, badged on every page. Demo boards state that changes aren't saved.
- Preview before import. CSV and feed imports show you a parsed preview and write nothing until you confirm. The preview is client-side; the import boundary re-validates on the server, because "nothing is imported until you confirm" has to be enforced, not promised.
Denominators differ on purpose — and we name them
A few surfaces deliberately use different denominators. These are design decisions, not bugs, and knowing them saves you a support ticket:
- Every headline metric — Share of Voice included — blends only the eight search-grounded engines, so a knowledge-only engine's lack of citations (or its memory-only mentions) can't distort the blended numbers. DeepSeek and Mistral still appear in per-engine views; filtering to a single engine shows that engine unblended. The same scope feeds the dashboard and the API, so the two never disagree.
- A monitor card's visibility intentionally includes the knowledge-only engines that monitor collected, because it is describing that monitor, not the blended headline.
- On a prompt's detail page, the headline visibility uses a fixed 7-day window and the per-engine sentiment strip uses 28 days, while the prompt list follows your selected range. These fixed windows keep the detail view stable.
Why this matters
The whole product is an audit trail: every metric traces back to a receipt you can open and read. Fabricating a zero anywhere in that chain would break the trust the receipts are meant to earn. When MentionFlow doesn't know, it says so — that is the feature.