When to Post, and Why the Answer Is Mostly Not the Time
Published 12/5/2025 · 12 min read · Marketing & SEO tools
Two things make published posting-time tables close to useless. First, they average over audiences that are not yours, and the averaging destroys precisely the signal you wanted. Second, the feeds most of them describe are no longer chronological: Instagram's own explanation of Feed ranking lists your activity, information about the post, information about the person who posted, and your interaction history as the signals, with when a post was shared appearing as one input among many rather than as the ordering rule. Timing still matters, but through eligibility and early engagement, not through position. The calculation that is genuinely yours is your audience's activity distribution across time zones, and it has a surprising shape. On a stipulated daily activity curve, an audience concentrated in one time zone has a best hour 93.55% above a median hour and 45 times above its trough. Spread the same audience across two North American zones and that falls to 58.95%. Spread it across six zones covering North America, Europe and India and the best hour is only 22.46% above a median one, with a peak-to-trough ratio of 2.95. Spread it uniformly across all 24 offsets and the timing lever disappears entirely.
Published best-time tables average over audiences that are not yours, and on a ranked feed posting time matters far less than it did on a chronological one. Compute your own audience's activity across time zones instead — six zones flatten the timing lever from a 94% swing to a 22% one — and see how many posts a real timing test needs.
Published tables average away the thing you were looking for
A best-time table is built by pooling engagement across a vendor's whole customer base and reporting when the average post did best. Every account in that pool has its own audience, its own time zones, its own subject matter and its own posting habits, and the pooling mixes all of it. What comes out is a curve of when people in general are on their phones, which is real, uncontroversial and almost entirely useless for deciding when a particular account should publish.
There is a second problem that follows from the first. If a table says the best time is a particular hour and a large number of accounts read it, that hour fills with posts — which is the one condition under which a slot is worse rather than better. A published optimum is self-defeating in a way a private one is not, and the more widely a table circulates the less it can be worth acting on.
A ranked feed does not put your post where the clock says
On a chronological feed, publishing time was position: post when your audience is looking and you are at the top, post when they are asleep and you are buried under everything that came after. That mechanism is the whole reason best-time tables existed, and it is the mechanism that has been removed.
Instagram's published explanation of Feed ranking names four groups of signals: your activity, information about the post — which explicitly includes when it was shared — information about the person who posted, and your history of interacting with them. It describes roughly a dozen predictions, of which five dominate Feed: how long you will spend on a post, and how likely you are to comment on it, like it, share it or tap the profile photo. Recency is one input in that list. It is not the ordering rule.
The other large platform to publish anything concrete is X, which open-sourced its recommendation code: candidate sourcing followed by a heavy ranker that scores each candidate. The structure confirms that ordering is a learned score rather than a timestamp. It does not confirm any of the specific decay constants that circulate in marketing posts — no platform has published a half-life for a post's score, and figures of that kind should be treated as invented until one does.
The calculation that is actually yours
Take your own audience's distribution across time zone offsets, and a daily activity curve over local hours — anything with a morning bump, a lunchtime bump and a large evening peak will do to see the shape. For each hour of the day in a shared reference time, add up each segment's share multiplied by that segment's local activity at the corresponding local hour. That gives an hourly index for your audience specifically, and it is a five-minute calculation once you have the segment shares.
Run it on a single-time-zone audience and the curve is dramatic: on a stipulated activity profile the best hour scores 2.160 against a flat-day baseline of 1.000, a median hour scores 1.116, and the best hour is 93.55% above the median and 45.0 times above the trough. The best three hours contain 25.50% of the day's activity, twice what a flat day would give. On that audience, posting time genuinely matters and picking the wrong hour genuinely costs you.
Now spread the audience. Split it across two North American zones and the best hour is only 58.95% above the median. Split it across six — 15% Pacific, 20% Central, 30% Eastern, 12% in the United Kingdom, 18% in western Europe and 5% in India — and the best hour, at 18:00 in the shared reference time, sits just 22.46% above a median hour, with a peak-to-trough ratio of 2.95 rather than 45. The best three hours now hold 17.08% of daily activity against 12.50% for a perfectly flat day. Spread the audience uniformly across all 24 offsets and every hour is identical: the timing lever is gone entirely.
The reason is worth stating plainly: in the six-zone mix, no hour serves two segments at once. Pacific peaks at 04:00 in the shared reference time, Central at 02:00, Eastern at 01:00, the United Kingdom at 20:00, western Europe at 19:00 and India at 14:00. Every hour that is good for one group is mediocre for the rest, so the aggregate is nearly flat by construction. Spread audiences do not have a best time; they have a least-bad compromise worth a fifth of what a single-zone audience's best hour is worth.
Where timing still buys you something: the first minutes
A ranked feed has to decide whether to show a post to a wider audience, and the evidence available at that moment is how the first people to see it reacted. That is not a conspiracy theory, it is the structure of every ranking system that predicts engagement: an early estimate is made from sparse data, and the estimate improves as data arrives. Posting when a slice of your audience is awake and receptive gives that estimate better inputs than posting into an empty room.
What is not knowable from outside is how long that window lasts or how heavily it weighs. No platform publishes a decay curve, a scoring half-life, or a share of eventual reach determined in the first half hour, and the confident numbers circulating on all three are not sourced to anything. The defensible version of the advice is qualitative: post when some of your audience is available, be present to reply for the first while, and stop trying to hit a minute.
Testing posting time is an A/B problem, and the sample size is brutal
The unit of randomisation is the post, not the impression. You cannot show one person a post at 09:00 and the same person the same post at 19:00; you can only publish some posts at one hour and some at another and compare their engagement rates. That makes it a two-sample comparison over post-level rates, and post-level rates are wildly variable because content dominates. A companion article in this series works through the sample-size arithmetic for A/B tests in general; here it just needs applying.
The number of posts needed per arm is two times the squared sum of the two critical values, times the squared coefficient of variation, divided by the squared relative effect. At 80% power and a 5% two-sided level that leading constant is 15.697757. With a coefficient of variation of 0.8 — a reasonable figure for post-level engagement rates, where content variance swamps everything else — detecting a 10% relative difference needs 1,005 posts per arm, or 2,010 in total. At one post a day that is 5.51 years. A 20% difference needs 504 in total, or 1.38 years; a 30% difference needs 224 in total.
That is the honest conclusion, and it is worth stating in the other direction too. Run a hundred posts, fifty per arm, and the smallest relative difference you can detect at 80% power is 44.83%. Two hundred posts still leaves you at 31.70%. If posting time changed engagement by a third you would probably have noticed already; the effects people actually argue about are in single-digit percentages, and those are unmeasurable at any volume an ordinary account produces. Worse, over the five and a half years the precise test would take, the audience, the ranking system and the product all change, so the answer would be stale before it arrived.
What to do instead
Compute your own audience's hourly index once, pick the top few hours, and stop optimising the choice. If your audience is concentrated in one region, that choice is worth something and you should honour it. If it is spread across six time zones, it is worth about a fifth as much, and the effort belongs elsewhere.
Consistency is the part that survives the arithmetic. A regular schedule is the one thing that both a ranked feed and a human audience can learn, and it costs nothing to keep. Beyond that, the variables with effect sizes large enough to be measurable at the volume a real account posts are the ones inside the post: the format, the opening seconds, the subject, whether it invites a reply. Those move engagement by amounts a hundred-post test can actually detect, which posting time does not.
| Audience spread | Best hour, activity index | Best hour against a median hour | Peak-to-trough ratio | Share of the day in the best three hours |
|---|---|---|---|---|
| One time zone | 2.160 | +93.55% | 45.0x | 25.50% |
| Two North American zones | 1.812 | +58.95% | 25.17x | 21.68% |
| Six zones: North America, Europe, India | 1.379 | +22.46% | 2.95x | 17.08% |
| Uniform across all 24 offsets | 1.000 | +0.00% | 1.00x | 12.50% |
Frequently asked questions
- Is there a universal best time to post?
- No, and the arithmetic explains why more clearly than any argument. Published tables average across every account in a vendor's customer base, which mixes audiences, subjects and time zones together; what survives the averaging is a curve of general phone use. Worse, a published optimum attracts posts, and a crowded slot is the one condition under which a time is worse rather than better. Compute your own audience's hourly index from its time zone distribution instead. It takes five minutes and it is the only version of the question that has an answer.
- How much does posting time actually matter for a global audience?
- Far less than for a local one, and the difference is computable. On a stipulated daily activity curve, an audience in a single time zone has a best hour 93.55% above a median hour and 45.0 times above its trough. The same audience spread across two North American zones drops to 58.95%. Spread across six zones covering North America, Europe and India it drops to 22.46%, with a peak-to-trough ratio of just 2.95. Spread uniformly across all 24 offsets, every hour is identical. Time-zone spread flattens the curve because no hour serves two segments at once: in the six-zone mix the segment peaks land at 04:00, 02:00, 01:00, 20:00, 19:00 and 14:00 in a shared reference time.
- Do the first thirty minutes really decide a post's reach?
- Early engagement plausibly matters, but nobody outside the platforms knows by how much, and the specific figures circulating are not sourced. What is documented is the structure: Instagram publishes that Feed ranking uses your activity, information about the post including when it was shared, information about the poster and your interaction history, and that it makes roughly a dozen predictions of which five dominate Feed. X open-sourced a pipeline of candidate sourcing followed by a heavy ranker. Neither publishes a decay curve, a scoring half-life, or a percentage of reach fixed in the first half hour. Treat any confident number on that as invented, and take the qualitative advice: be there to reply for a while after you post.
- How many posts do I need to test posting time properly?
- More than you will publish. The unit of randomisation is the post, so it is a two-sample comparison of post-level engagement rates, and those rates are dominated by content rather than timing. With a coefficient of variation of 0.8, 80% power and a 5% two-sided level, detecting a 10% relative difference needs 1,005 posts per arm — 2,010 in total, or 5.51 years at one post a day. A 20% difference needs 504 in total and a 30% difference 224. Inverted, a hundred-post test detects nothing smaller than a 44.83% difference and a two-hundred-post test nothing smaller than 31.70%. Since the effects people argue about are single-digit percentages, the honest answer is that most accounts cannot measure this at all.
- If timing barely matters, what should I optimise instead?
- The variables with effect sizes big enough to measure at the volume you actually post. Format, the opening seconds, the subject, and whether the post invites a reply all move engagement by amounts a hundred-post comparison can detect, whereas a single-digit timing effect needs thousands of posts. Then keep a consistent schedule, because that is the one timing property both a ranked feed and a human audience can learn, and it costs nothing. Compute your own hourly index once to pick a few sensible slots, and then leave the choice alone.
Articles you may find interesting
All guides →Related tools
Sources
- Instagram — Instagram Ranking Explained — the Feed signals, including when a post was shared, and the predictions that drive ranking
- GitHub / X — the-algorithm — X's open-sourced recommendation pipeline: candidate sourcing followed by a heavy ranker
- IANA — Time Zone Database — the canonical source of UTC offsets and daylight-saving rules used in any audience-hour calculation
- Meta — Transparency Center — how Facebook and Instagram rank content and what signals feed the ranking systems
Spotted a mistake in this article?