Transparency
What the data can’t say
Every number on this site has conditions attached — a reporting delay, a thin sample, an attribution gap, a stripped field. This page names each one, and what it means when you read the number.
Reporting
What YouTube's feed hasn't reported yet, or reports as an artifact.
Reporting lag
What’s missingYouTube's reporting pipeline is two to three days behind real time. Every chart and aggregate in the dashboard stops at the most recently complete date.
Reading thisNumbers for the last two to three calendar days are always absent. This is not a gap in the dashboard — it is a gap in what YouTube exposes.
Pre-publish stub rows
What’s missingWhen a video is scheduled, YouTube sometimes records reporting rows for the day before it published — usually a row of zero views and null impressions.
Reading thisEvery aggregation filters out these stub rows using the pre_publish_stub = 0 guard. The stub rows remain in the database for provenance.
Enforced by
dashboard/src/lib/db.tsscripts/build-public-db.js
Sampling
Where a number is too thin a sample to read directionally.
Click-rate thin-sample tiers
What’s missingClick rate from fewer than 50 impressions is noise. Four tiers encode sample size: noise / low / medium / high.
Reading thisAny click rate in the noise or low tier reflects too few impressions to read directionally. The four-segment glyph after every click-rate cell encodes which tier applies.
Average watch time thin-sample tiers
What’s missingAverage watch time below 10 views is noise; 10 to 29 is directional; 30 to 99 is readable; 100 or more is reliable.
Reading thisThe same four-tier encoding applies to watch-time cells. Readings below the 30-view threshold tend to be dominated by a handful of unusually long or short sessions.
Attribution
Where the parts don't sum to the whole, and the gap is shown.
Unattributed impressions
What’s missingYouTube's per-source impression rows don't always sum to the per-video impression total. The gap is real and surfaced rather than redistributed.
Reading thisSome impressions come from surfaces YouTube doesn't expose through its reporting feed. The unattributed share is visible on the Honesty panel; traffic charts reflect only attributed impressions.
Channel-snapshot reconciliation gap
What’s missingThe channel-level snapshot sometimes shows higher totals than the sum of per-video reporting rows.
Reading thisThis is YouTube's own attribution gap. The dashboard charts the difference rather than hiding it, so readings on total channel views may slightly overcount relative to per-video sums.
Enforced by
dashboard/src/lib/db.ts · getChannelReconciliation
Withheld content
What the public dataset deliberately leaves out before it ships.
Comment text and non-public videos stay out
What’s missingA public channel ships in full — real titles, real video IDs, real thumbnails. Two things never enter the public dataset: the text of viewer comments (counts only), and videos that aren't public on YouTube.
Reading thisEvery public video is fully analyzable under its real title and ID. Individual comments and non-public uploads are not recoverable from the public data.
Missing data
What YouTube doesn't expose for a channel this size, or at all.
Size-gated demographic data
What’s missingYouTube only returns audience demographics once a channel clears a minimum-size threshold. This channel is currently below that threshold.
Reading thisCountry, age, and gender breakdowns are not available in the current dataset. When the channel grows past the threshold, demographic data will appear in a future pipeline update.
Revenue and monetization absent
What’s missingRevenue, CPM, and ad-breakdown data are not in the dataset. This channel is not yet in the YouTube Partner Program.
Reading thisMonetization metrics (CPM, RPM, ad revenue) are not analyzable from this dataset.
Keep verifying
The rest of the honesty layer
The limits registry is one of three honesty surfaces. Beside it sit the methodology notes and the live data-quality readout. Each names a different part of what the data can and can't say.