Why your tweets don't break out: the velocity-gating window
Most tweet analytics dashboards show you the same number: total likes after 24 hours. That number is the wrong thing to optimize, and understanding why changes how you write tweets.
Twitter's For-You algorithm makes its biggest distribution decisions in the first 30 minutes after you publish. By hour 24, those decisions have already played out. Optimizing for "will this get likes eventually?" is optimizing for the wrong window.
The right question is: will this tweet hit the velocity threshold the algorithm uses to decide whether to push it out-of-network?
How fanout actually works
When you publish, your tweet goes through (roughly) three stages:
- Follower fanout (0–5 min) — your tweet shows up in the timelines of a sample of your followers. The size of that sample depends on your account's recent baseline engagement.
- Velocity gate (5–30 min) — the algorithm measures your engagement-per-impression ratio in that follower sample. If it's above some threshold (the exact number is not public, but inferred to be ~3-4% favorite rate, much higher reply weight), the tweet is promoted to "For You" candidates for users who don't follow you.
- Decay (30 min – 24h) — out-of-network impressions accumulate, then taper. Late-stage engagement matters less for further fanout because the gate decision was made early.
This means a tweet that gets 5 likes in the first 5 minutes and plateaus at 50 likes after 24h is a categorically different outcome from a tweet that gets 1 like in the first hour and crawls to 50 likes over a week. Both end up at "50 likes". Only the first one had its fanout boosted by the algorithm.
What the velocity score measures
TweetSim's view-curve model fits a Gompertz function to predict impression growth:
V(t) = K · exp(-b · exp(-c·t))
Where K is the predicted ceiling and (b, c) control the shape of the curve. From those three numbers we derive the velocity score:
velocity = V(30 min) / K
That's a number in [0, 1]. It answers: "What fraction of this tweet's eventual reach will land in the algorithm's critical first 30-minute window?"
Three regions matter:
velocity ≥ 0.6 — algorithm-friendly
This tweet is predicted to hit 60%+ of its ceiling in the first 30 minutes. The For-You ranker will see strong velocity and is likely to promote it for out-of-network distribution. The ceiling itself goes UP because of this — the prediction's K assumes the boost.
velocity 0.3 – 0.6 — okay, contained
Decent early engagement but not breakout. Stays mostly within your follower graph. Ceiling reflects what your followers will actually engage with.
velocity ≤ 0.3 — likely throttled
Tweet is predicted to crawl. The algorithm sees low velocity, holds back the For-You promotion, and your tweet stays in your follower graph at best. Often a sign of:
- weak hook (low stop-scroll potential)
- no reply trigger (questions, contrarian claims)
- off-niche from your usual content (followers don't recognize the lane)
- posted at a time when your follower base is asleep
What this means for how you write
If you optimize for total likes after 24 hours, you tend to write tweets that are pleasant but slow — they accumulate steady engagement from your followers without breaking out. They're not bad. But they don't grow your account.
If you optimize for early velocity, the writing changes:
- First 8 words do more work. Stop-scroll is a hook problem.
- Reply trigger in the last sentence. Replies count more than likes for early velocity (replies in the algorithm are ~6× weighted vs likes).
- Specificity over abstraction. "I missed three calls this morning while in standups" outperforms "productivity tips for founders."
- Post when your followers are awake. A great tweet posted at 3am wastes the velocity window because the initial follower sample is sparse.
Honest limitations
TweetSim's view-curve model today runs on a cold-start prior — a generic Gompertz shape that predicts t₅₀ ≈ 29min and velocity ≈ 0.52 for a typical tweet. That's a sensible starting point, but it's not your account's actual pattern.
As metric snapshots accumulate (the cron pulls them every 30 min), the model retrains on your real engagement curves and the predictions become account-specific. Concretely: the velocity score for "tweets like yours" converges from generic-prior to observed-distribution after ~30 published tweets each with multiple snapshots.
We also don't model the things we don't have data on: topic-cluster amplification (when your tweet lands in a trending topic), reply-tree depth (replies that themselves get replies), account-history weighting (your last 7 days of average engagement). Phase 2 and 3 of the view-curve roadmap will add these.
Why this matters for the product
Most tweet helpers grade you on some flavor of "will this get engagement?" That collapses to a single number, usually flat across drafts, and doesn't tell you what to change. The velocity score is the closest single number to what the algorithm actually decides on. When it's 0.2 you know to rewrite. When it's 0.7 you know to publish.
Score one of your drafts and watch the velocity number. Then write a version with a stronger first line and rescore. The number moves — usually a lot. That's the loop.