Search for the best time to upload on YouTube and you will find confident, specific answers: Thursday at 3pm, weekdays between 2 and 4, Saturday morning for gaming. Many come with charts. Some come with sample sizes.
Almost all of them are built on a measurement that does not exist.
The measurement that is not there
A YouTube video's public page does not show you when it was published in clock time. It shows a relative age: "3 hours ago", "2 weeks ago", "8 months ago". That is the field an external observer gets.
To turn it into a timestamp you subtract the age from the current time. And the error in your timestamp is the granularity of that string:
- "3 hours ago" gives you the publish moment to within roughly an hour.
- "2 weeks ago" gives you a fourteen-day number, and the hour-of-day you compute from it is the hour you happened to look, minus a whole number of days.
That second case is the one that matters, because it is most videos. If you scrape a channel's back catalogue on a Tuesday afternoon, every video described in weeks or months gets a derived timestamp whose time-of-day is your Tuesday afternoon. Chart those and you will discover that this channel uploads in the afternoon. You have charted your own scraping schedule.
It gets worse: the units quantise
Relative ages are not just rounded, they are quantised to unit multiples. "1 month ago" becomes exactly 30 days for everybody, so every video a channel published in that month collapses onto the same instant.
We measured what that does to a real statistic. Computing gaps between consecutive uploads for a channel whose back catalogue had been read from relative text produced this list of gaps, in days:
[30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 9, 15]
Read naively, that channel has "a median upload gap of 30 days". It actually uploads weekly. Ten of those twelve gaps are an artefact of the word "month", and nothing about the output looks wrong — it looks like data, with a median and everything.
This is the failure mode to watch for in any timing statistic sourced from public pages: it does not produce noise, which you would notice. It produces structure, which you would not.
What can be known honestly
There is exactly one case where an externally-observed publish time is real: when you were watching the channel and saw the video appear while it was still new.
If the first time you ever see a video its age reads in minutes or a few hours, then your derived timestamp is accurate to about an hour, and its hour-of-day is a fact rather than an artefact. Analytics4You records an upload's derived timestamp once — at first sighting — and never rewrites it, precisely so this question stays answerable afterwards. Comparing that frozen timestamp with the moment the video was first seen gives the age at first sight, which is a direct measure of how much you can trust it.
The rule that follows: report an hour of day only for uploads first seen younger than about 6 hours. Not one hour — the flooring behaviour means a video first seen at five hours old still lands in the right hour bucket at worst an hour early — but not a day either, because a video first met at three days old carries a ±1 day error and its clock time means nothing.
That threshold produces an uncomfortable but honest consequence: a channel you started tracking last week has almost no honest publish hours. You have to watch a channel for a while before you can say anything about when it uploads, and no amount of back-fill fixes it, because the information was never published.
The two-resolution rule
Timing questions split cleanly by the precision they need:
| question | needs | survives relative-age data? |
|---|---|---|
| what hour does this channel publish at | ~1 hour | only for uploads watched go live |
| what day of week does it publish on | ~1 day | borderline — a ±1 day error moves the day |
| how many days between uploads | days | yes, if both endpoints are honest |
| how many uploads per week this month | days | yes |
Day-scale rhythm survives the coarseness; hour-of-day does not. So "this channel went from one upload a week to three" is a defensible statement from public data, and "this niche publishes at 3pm" usually is not.
Two more cautions on the day-scale half. First, a gap is only real if both of its endpoints were dated honestly — one badly-dated upload poisons two gaps, not one. Second, if you drop a badly-dated upload and pair its neighbours, you have invented a slowdown; adjacency has to be checked in the full ordered list, not in the filtered one.
What about the studies?
Some published "best time to upload" analyses are built from creators' own private analytics, contributed voluntarily. Those have real publish times, and their limitation is different: the sample is the creators who joined the study, and the result is an average across niches whose audiences live in different time zones and different day rhythms.
An average across all niches is not advice for yours. If your audience is students in one country, the aggregate is being computed mostly from people who are not them.
The honest version of the question is not "when should everyone upload" — it is "when does my audience show up", and that answer is in your own YouTube Analytics, which does have real times. No external tool has it, including this one.
Three questions to ask of any timing claim
Whether it comes from a blog post, a tool or a thread, these three questions separate a measurement from a decoration:
- Where did the publish time come from? If the answer is a scrape of public pages, the clock times are derived from relative age and the hour-of-day is suspect. If it is creators' own analytics, ask about the sample instead.
- What was done with videos whose age was reported in weeks or months? The only acceptable answers are "excluded" or "used at day resolution only". If they were included at hour resolution, the chart contains the scraper's schedule.
- What is the sample, and over what window? "Videos" is not a sample. "1,400 uploads from 60 channels between March and June" is.
A source that cannot answer all three is not necessarily wrong. It is unfalsifiable, which is worse: you cannot tell.
What to do instead
Compare rhythm, not clock time. Cadence and consistency are legible from public data at day resolution and they are the more actionable signals anyway.
Trust an hour only when it was watched. If a tool shows you a competitor's publishing hour, ask what it did about videos it first saw at three weeks old. If the answer is "estimated", the chart is describing the scraper.
Prefer null to a number. A view that says "no honest publish hour for this channel yet — 3 of 40 uploads were watched go live" is more useful than a confident average, because it tells you what you would need to collect to get an answer.
Analytics4You takes that last rule literally: publish-hour and rhythm views only report the uploads whose timing is honest, per channel, and say plainly when there are too few — which is why the number they show is sometimes smaller than you would like, and always real. It shows up in the timing view on the watchlist, beside the cadence figures the same data does support.