Sampling, Thresholds and Dark Traffic: What Your Analytics Hides

The interface presents an estimate, a suppressed row and a census with identical confidence. Sampling, thresholding, consent loss and dark traffic, with the signature and the remedy for each.

KISSmetrics Editorial

|11 min read

Analytics tools do not report their own uncertainty. A number arrives with no error bar, no note that a third of the rows were suppressed, and no indication that it was extrapolated from a sample. The interface presents an estimate and a census identically, and almost every operational decision treats them the same way.

Four mechanisms account for nearly all of it, and three are disclosed somewhere in the documentation if you go looking. The problem is not concealment. It is that the disclosure never appears next to the number, and a report that says 1,847 looks exactly as certain as one that says 1,847 plus or minus 400.

The newsletter

Join our KISS newsletter

One short read a week on what actually moves revenue, in a free email. Read by 10,000+ operators and founders.

No spam. Unsubscribe in one click.

I.Four ways a report is confidently incomplete

Each has a different mechanism, a different signature, and a different remedy. Conflating them is why teams chase the wrong one.

A.Sampling: the number is an estimate

Above a threshold of complexity or volume, many analytics platforms stop counting every event and extrapolate from a subset. The report renders normally and there is usually a small indicator somewhere, which nobody looks at after the first week.

Sampling is fine for the thing it is designed for. A 3% sample of ten million sessions gives a reliable total. The failure is at the edges: filter that same report down to mobile users from one campaign in one region and the sample supporting that cell may be a few dozen events, extrapolated back up with enormous variance and presented as a whole number.

The tell is instability. Re-run the same report with a trivially different date range. If the answer moves materially, you are reading a sample.

B.Thresholding: the rows are gone, not zero

Privacy thresholding suppresses rows where a group is small enough that an individual could be identified, typically when demographic or signed-in data is in play.

This one is worse than sampling because the loss is not random and not visible. Small segments are exactly what a B2B team looks at, and they are exactly what gets suppressed. A report showing your enterprise segment converting at zero may be showing suppression rather than failure, and nothing distinguishes the two on screen. See GA4 data thresholds.

C.Consent and blockers: the event never arrived

The other three hide data you collected. This one means the data does not exist.

The important property is that loss is not uniform. It skews by audience, technical sophistication and region, and within a site it concentrates on the pages furthest down the funnel, because those are more likely to sit behind a redirect, load a payment frame, or run after a consent decision the visitor has by then had time to decline.

A flat 15% loss leaves your conversion rate intact. A loss that is 6% at the top and 22% at the bottom manufactures a drop-off that never happened, and teams optimise against it for months. Our breakdown of ad blocker impact covers sizing it.

4.Dark traffic: it arrived, you cannot say from where

Visits with no referrer land in direct. Some genuinely are direct. Most are not: they come from messaging apps, native apps, PDFs, email clients, redirects that strip the referrer, and increasingly from AI assistants.

A large direct bucket is usually a reporting artefact rather than evidence of brand strength, and it grows silently as more of the web moves inside apps. The AI portion is the fastest-growing part and the one most likely to be misread, because it looks like direct traffic increasing at the same time your content is being cited by models. See how to track ChatGPT traffic.

Four mechanisms, four signatures

Diagnosis view
MechanismWhat is missingSignatureRemedy
SamplingPrecision at the edgesAnswer moves when you re-runNarrow the query, or export raw
ThresholdingWhole rowsSmall segments read as zeroTurn off the feature that triggers it
Consent and blockersThe event itselfAnalytics below billingServer-side, or accept and adjust
Dark trafficThe sourceDirect is your biggest channelReferrer rules and tagging
Only the third is unrecoverable. The other three are reporting artefacts you can work around once you know which one you are looking at.

II.Sizing your own gap, which takes an afternoon

One anchor and three comparisons. Everything else is speculation dressed as caution.

A.Anchor on something that cannot be blocked

Take a single day. Count real orders in the billing system, or real accounts created in the application database. Those are records of things that definitely happened and no ad blocker can affect them.

Compare against the same count in analytics. The ratio is your total loss, and it takes about ten minutes. If analytics shows 61 purchases and billing shows 78, your bottom-line loss is 22% and you now have a multiplier you can apply.

One day, one metric, three sources

Reconciliation view
Billing system
78 purchases
Analytics, reported
61 purchases
Analytics, server-side test
74 purchases
Illustrative, not measured. The third bar is the diagnostic: if a server-side count recovers most of the gap, the loss is client-side blocking rather than a tracking bug.

B.Then find out whether the loss is even

The total matters less than the distribution. Run the same comparison at two points in your funnel: something early, like a product view, and something late, like a purchase.

If both show similar loss, your conversion rate is roughly right and only your absolute volumes are understated, which is a mild problem. If the late step shows much heavier loss, your funnel contains a drop-off that is measurement rather than behaviour, and any optimisation aimed at it is aimed at nothing.

C.Two quick checks for the reporting artefacts

Sampling: run a report, then run it again for a date range one day longer. A meaningful change in the overlapping period means you are reading estimates.

Thresholding: take a segment you know has customers in it and check whether it reports zero. If it does, you have found suppression rather than failure.

III.Reporting honestly once you know

The goal is not perfect data. It is knowing which direction each number is wrong in.

A.Put the multiplier in the report

Once you have measured your loss, apply it and say so. “1,847 purchases recorded, approximately 2,250 actual, based on a billing reconciliation in July” is a more useful sentence than either number alone, and it survives the meeting where someone notices the discrepancy.

Re-run the reconciliation quarterly. Blocking rates drift, browsers change defaults, and a multiplier from eighteen months ago is its own kind of false precision.

B.Which of the four you can actually design away

Sampling and thresholding are properties of a specific reporting layer rather than facts about the world. A platform that queries the full event set does not sample, and one that does not join a third-party identity graph has much less reason to suppress rows.

Kissmetrics captures the events itself rather than reading another tool's summary, and it does not suppress small groups: the segment of eleven people is visible and you can open it and look at each of them, which is usually the reason you built the segment. Because everything resolves to a person, dark traffic is also less damaging, since a visitor who arrives with no referrer today can still be connected to the campaign that found them three weeks ago.

What no tool fixes is consent and blocking. If a browser refuses to send an event, nobody receives it. Server-side collection recovers part of the gap and introduces its own complexity, and honest vendors say so rather than promising completeness.

Verdict

The problem is not that analytics data is incomplete. All measurement is incomplete. The problem is that the interface presents an estimate, a suppressed row and a census with identical confidence, and decisions get made at that confidence.

Spend one afternoon: reconcile against billing, check whether the loss is even across the funnel, and test for sampling and suppression. You will not fix the gap. You will know its size and its direction, which is the difference between a number you can use and a number you can only believe.

Continue Reading

data samplingdata thresholdingdark trafficanalytics accuracyconsent modedata qualityad blockers
KISSmetrics

Build your business intelligence layer for free.

KISSmetrics captures the events itself rather than reading another tool's summary, and it does not hide small groups. The segment of eleven people is visible, and you can open it and look at each of them.