Blog
5 min readAnalyticsProduct

What a “best time to post” can honestly tell you

Most tools answer it with a heatmap of other people’s accounts. Here is what we measure instead, and why ours says “not yet” more often than you would expect.

Search for the best time to post on Instagram and you will find a confident answer: Wednesday at 11am, or Tuesday between 9 and 1, or whatever this year’s roundup says. Those numbers are real in a narrow sense — someone did aggregate a lot of posts — but they describe a population, and you are not posting to a population. You are posting to your followers, who are in particular timezones and have particular habits, about a particular subject.

So when we built a send-time recommendation, the question we tried to answer was narrower and more useful: when have this account’s own posts actually done well? Four decisions turned out to carry the whole result.

1. Engagement means interactions, not reach

The obvious way to score a post is to add up its metrics. That quietly turns the answer into something else: reach, impressions and views are ten to a thousand times larger than likes and comments, so a naive sum is a reach chart with a rounding error attached. Reach is also mostly a statement about how far the platform decided to push a post, which is not the thing a posting time can plausibly move.

We count likes, comments, shares, saves, reposts, replies and quotes — the metrics that represent a person choosing to respond.

2. Scores are relative to each account, not absolute

A workspace usually holds accounts of wildly different sizes. Compare them on absolute likes and the recommendation is simply “whenever the biggest account posts”. So each post is scored as a multiple of that account’s own typical post — its median, so one runaway success doesn’t redefine normal. A score of 1.0 means “an ordinary post for this account”, whether that is 12 likes or 12,000, and 1.8 means it did roughly 80% better than usual.

3. One viral post cannot crown its hour

Everyone has that post: the one that did forty times its usual numbers because it got picked up somewhere. Left alone it decides the answer outright — 2pm on a Tuesday becomes the best time to post forever, on the strength of a single afternoon. Scores are therefore capped at 5× a typical post. An exceptional post is still counted as exceptional; it just cannot outvote everything else.

4. Neighbouring hours lend weight, but never invent a slot

Split a few months of posting into 168 hour-of-week buckets and most are empty. Without any smoothing, the “best” hour is whichever one happened to hold the best single post. So each post also contributes, at a lower weight, to the hours either side of it — an hour with three good posts beside it reads better than an isolated one.

What we deliberately do not do is recommend an hour with no posts of its own, however strong its neighbours. That would be advice about a time this account has never tried, dressed up as a measurement.

The part most tools skip: saying “not yet”

Below 12 published posts with engagement data, or when no single hour holds at least two of them, the honest output is that we don’t know. Ravenpost returns that explicitly, and the dashboard renders how many posts are still needed rather than an empty chart — because an empty chart reads as “we looked and there is nothing good here”, and someone would reasonably act on that.

There is a quieter version of the same mistake. A post we hold no engagement data for is excluded, never scored as zero. The collector only reaches platforms that expose insights, and it runs on a schedule, so “no data yet” is common and means nothing about the post. Counting those as zeros would mark their hour as a bad time to publish on the strength of data we never collected — the same reasoning that keeps a follower count as “—” rather than 0 when a platform reports none.

What it can’t tell you

This is a correlation, and a small-sample one. It reports when your posts have done well, which is entangled with what you posted then — if your best work happens to go out on Thursday evenings, the recommendation will say Thursday evening. Treat it as a starting point for a posting schedule, not as a law, and give it a few weeks of posting before you take it seriously.

It runs per platform as well as overall, because Instagram’s evenings and LinkedIn’s mornings average into advice that fits neither. You can read it in the dashboard under Analytics, over the REST API, or from an assistant through the MCP server — where, if there isn’t enough history, it is told to say so rather than pick an hour anyway.