There is a difference between a tool that counted 12,847 visits and a tool that counted 1,284 and multiplied by ten. Both display 12,847. Only one of them will still say 12,847 tomorrow.
Three separate mechanisms replace counts with estimates, they are frequently confused, and only one of them is called sampling.
Sampling
The tool processes a subset of the data and scales the result up.
This exists for a good engineering reason: answering an arbitrary question over billions of rows is expensive, and a 1% sample answers most questions to within a useful margin at a hundredth of the cost. For "is traffic up or down this month", a sample is genuinely fine.
It stops being fine when you slice thin. The margin of error grows as the subset shrinks, so a report on all traffic may be accurate to a fraction of a per cent while the same report filtered to one campaign, one country and one landing page is built on eleven sampled sessions and is essentially noise displayed to four significant figures.
Two facts about the tools most people use:
- GA4 samples explorations above a threshold -- Google's documentation puts it at 10 million events for a standard property. Standard reports are not sampled. So sampling arrives exactly when you stop reading the dashboard and start asking a real question.
- Cloudflare Web Analytics samples adaptively. Below a certain volume it does not sample at all, and above it the figures are scaled up from a sample. For a small site this means no sampling, which is why a flat "it samples" claim would be wrong for most of the sites likely to be reading this.
The tell is a report that gives slightly different numbers each time you load it, or a small notice about data quality that most people have trained themselves not to see.
Modelling
The tool did not observe the thing at all, and estimated it from what it did observe.
This is what Consent Mode does: when a visitor declines consent, GA4 has no identifier for them, so conversions and users are modelled from the behaviour of consented traffic. It is also what "modelled conversions" means in most ad platforms.
Modelling is not sampling. A sample is a subset of real observations; a model is a calculation about observations that were never made. The estimate can be good, and it is the only option once the underlying data is genuinely unavailable. But it depends on the modelled population behaving like the observed one, and in the consent case that is exactly the assumption most likely to be false: the people who decline are not a random sample of your visitors.
The practical consequence is that modelled figures cannot be reconciled with anything. If your conversions include modelled ones and your CRM does not, the two will never match, and no amount of investigation will find the difference, because it is not an error.
Thresholding
The tool has the number and will not show it to you.
GA4 suppresses rows where the group is small enough that an individual might be identifiable, particularly when demographics or Signals are involved. The row disappears, and the totals no longer add up to the sum of the visible parts.
This one causes real confusion because it looks like missing data rather than withheld data. Somebody exports a report, sums a column, compares it to the headline total, finds a gap, and goes looking for a tracking bug that does not exist.
Why it matters more than it sounds
Every one of these is defensible in isolation. Together they produce a specific failure: you cannot tell whether a change in a number is a change in the world.
If last week showed 4.2% conversion and this week shows 3.8%, the useful question is whether something happened. With counted data, something happened. With sampled data, the difference may be inside the margin. With modelled data, the model may have been retrained. With thresholded data, a row may have crossed a privacy limit and vanished.
This is also why sampled analytics and A/B testing sit badly together. A test is an exercise in deciding whether a small difference is real, and running it on estimates adds a source of variance you cannot quantify from inside the tool.
What to ask about a tool
- At what volume does it start sampling, and can that be turned off?
- Does it distinguish observed from modelled figures in the interface? If they are added together into one number, you cannot separate them later.
- Does it suppress small rows? If so, at what threshold?
- Do the same query and the same period always return the same number? This is the easiest test and you can run it yourself: load a report twice and compare.
Number four catches sampling immediately. Run it on a filtered report rather than a headline one, because that is where the subset gets small.
Where Skomi sits
Skomi does not sample at any volume. Every report is a count of the rows, and a filtered report is a count of the rows that matched -- so a query asking about one campaign in one country on one page is answering from those visits and not from an extrapolation of them.
There are no modelled figures, because there is no consent gap to model: nothing is written to the visitor's device on the default setting, so there is no population of visitors who declined and became invisible. And rows are not suppressed, so the parts sum to the total.
The comparison pages put this next to what each alternative does, including the rows where the alternative wins. The sampling claims there were checked against vendor documentation rather than repeated from memory, which is also why two of them say "it depends" instead of "no".
Skomi does not sample: every visit is counted, whatever the volume, which is one of the rows the Analytics product is built to hold. Sampling sets out the term as it is used here.