guides · strategy
What X's open-source algorithm code actually rewards
In 2026 xAI open-sourced the X (Twitter) For You algorithm again. Most write-ups quote weights from the old 2023 code, but the new release deliberately hides the numbers. What it does show is better: the exact structure of the ranker, and the precise list of things the model predicts about you. Read that list and "what the algorithm rewards" stops being lore and becomes a spec. Here is the spec, straight from the code, and what it means for the account you're trying to grow.
The one formula everything hangs on
Both the posts from people you follow (the in-network source, called Thunder) and the posts discovered from the whole platform (the out-of-network source, Phoenix retrieval) get scored by the same Grok-based transformer. The final score is a weighted sum:
score = Σ ( weight × P(action) ) for each of 19 actions
The transformer reads your engagement history and predicts, for every candidate post, how likely you are to take each action. The release states plainly that they "eliminated every single hand-engineered feature": there is no keyword score, no follower-count bonus, no hashtag trick. The model just learns what you engage with and finds more of it. The weights that combine the 19 predictions are the one thing kept private, so nobody outside X can quote them honestly. But the 19 predictions themselves are the answer to the whole question.
The 19 things it predicts (this is the reward function)
Every post you could see is scored on how likely you are to do these things. Fourteen count for you; four count against.
- The 14 positive signals: like, reply, repost, quote (and click a quoted post), three separate kinds of share (share, share via DM, share via copy-link), profile click, follow the author, link click, photo expand, video quality view, and dwell. The higher-effort ones (a reply, a share, a follow) are the ones a stranger only does when the post genuinely landed.
- The 4 negative signals: not interested, mute the author, block the author, and report. These are separate prediction heads with negative weight, so a post that looks likely to earn a mute or a report is pushed down, not just left flat.
Two of those positive heads matter enormously if you're growing: the model literally predicts P(profile click) and P(follow the author). Your entire visit-to-follow funnel is not a side effect you hope for; it is something the ranking is directly optimizing. And notice what is weighted heavily on the "pass it on" side: three share signals, including DM shares. The content that travels is content people forward to one person, not content that collects quiet likes.
The weights everyone quotes (2023, directional)
When a post tells you "a reply is worth 13.5x a like" or "a report is minus 369", those numbers are real, but they come from the 2023 open-source release (twitter/the-algorithm), not the 2026 Grok rewrite, which does not publish its weights. Treat them as directional. They still tell you the shape of what the ranking values, and that shape lines up exactly with the 19 heads above.
| Action (2023 weights) | Weight | vs a like |
|---|---|---|
| Reply the author engages back on | +75 | ~150x |
| Reply | +13.5 | ~27x |
| Quote tweet | ~13.5 | ~27x |
| Profile click that leads to engagement | +12 | ~24x |
| Bookmark / dwell 2 min+ | +10 | ~20x |
| Retweet (plain) | +1 | ~2x |
| Like | +0.5 | baseline |
| Video watched 50% | ~0.005 | minimal |
| Mute / block | -74 | catastrophic |
| Report | -369 | nuclear |
Source: twitter/the-algorithm (2023). The 2026 xai-org/x-algorithm keeps the same weighted-sum structure but its weight values are not public.
The one number worth internalizing is the gap between the top and the bottom. A reply the author answers is roughly 150 times a like, and a report is a four-figure negative. Likes and follower counts, the things people optimize for, are near the floor. Everything the code rewards is an action that costs a stranger real attention.
Out-of-network is down-weighted, on purpose
Here is the rule that decides whether you ever reach new people. Posts from accounts you don't follow are retrieved by a two-tower similarity model, then multiplied by a factor below onebefore ranking. In-network posts keep their full score. So discovery is real, but it starts at a disadvantage, and the only way to overcome it is to be relevant enough that the retrieval model confidently matches you to that audience.
The practical translation: stay on a consistent topic so the model can place you, and reply to accounts whose audience is already your people. A reply on a relevant account's post borrows their distribution and lands you in front of exactly the out-of-network audience the retrieval model would want to show you anyway. That is why replying beats posting into the void when you're small: you skip the out-of-network penalty by riding someone who's already in the room.
You can't be everywhere: author-diversity decay
After scoring, the feed applies an author-diversity step that attenuates each additional post from the same author by an exponential decay. In the 2023 code the multiplier was about 0.5 per successive post with a 0.25 floor; the 2026 release keeps the mechanism (the decay and floor are parameters) though the exact values aren't published. Either way the lesson is the same, and it's the mirror image of what you might expect: hammering one big account with replies has sharply diminishing returns, and spreading the same effort across many relevant accounts nets far more total reach.
Answers to the questions people actually ask
Once you hold the reward function in your head, the common "does X matter?" questions mostly answer themselves. Grounded in the heads and the 2023 directional weights:
Quote tweet or plain repost?
Quote. A plain repost is a low weight (~1x); a quote is its own high-weight action (~13.5x in 2023, and a distinct quote head in 2026) because it adds content and starts a conversation. If you're amplifying something, add a take.
How fast do I need to reply to comments on my post?
Fast. The single biggest ranking factor is early engagement velocity in the first 30 to 60 minutes, and a reply the original author answers is the highest-weighted signal there is. Answering your early commenters in that window is the cheapest reach you'll ever buy.
Morning or evening? Does the clock matter?
The clock matters less than the crowd. There's no time-of-day weight in the model; what matters is whether your audience is scrolling, because that's what drives the early velocity the ranking extrapolates from. Post when your people are online, not at a "best time" from a generic chart. (More in best time to post on X.)
Am I posting too much? Does more posting dilute my reach?
Past a few posts a day, yes, because author-diversity decay caps how many of your posts one person sees. Three to four quality posts beats ten, and it's a strong reason your growth engine at a small size is replies (spread across many accounts) rather than volume on your own timeline.
Do threads count as multiple posts?
A thread is one post in the ranking, and its whole job is dwell time: each tweet a reader continues through is more time-on-post, which is a positive signal. Threads are a dwell play, not a way to game the post count.
Text or video? Do links kill reach?
Native content (text, images, video) out-distributes link posts, because an external link in the body pulls people off-platform and gets very little reach. Put the link in your first reply, not the post. Between formats, lead with whatever earns replies and dwell for your audience; a video-quality-view is a real head but a small one next to a reply.
Whatever happened to TweepCred?
TweepCred, the 2023 PageRank-style account-reputation score (0 to 100), was a hand-engineered feature. The 2026 rewrite states it "eliminated every single hand-engineered feature", so there is no separate reputation number to chase anymore; reputation is now implicit in what the model has learned about how people engage with you.
What the code quietly tells you not to do
The four negative heads are the most useful part of the release for anyone tempted by engagement-bait. The model is trained to predict a mute, a block, a "not interested", and a report, and to subtract them. A salesy reply, a dunk that makes people pile on, a thread that over-promises: these can rack up impressions while quietly generating the exact signals that suppress you and cost you the follow. Reach without the right reaction is not a win; the ranking can see the difference and so can the person deciding whether to follow you.
There is also a content-understanding layer (called Grox) running spam and policy classification, and a set of hard filters that drop posts that are too old, from muted or blocked accounts, or matching your muted keywords. None of it can be gamed with keywords, because the hand-engineered features are gone. The whole system rewards one thing: being genuinely worth a stranger's reply, share, and follow.
The playbook the code implies
- Optimize for the high-effort actions, not likes. Replies, shares (especially DM-able takes), profile clicks, and follows are all separate reward signals. Write things worth forwarding and worth a name-tap, not things worth a reflex like.
- Reply to relevant mid-size accounts, early. It's how you clear the out-of-network penalty and reach new people who already engage with your topic. Get in before the replies crowd.
- Spread across accounts. Author-diversity decay punishes concentration; variety compounds.
- Stay on topic. The retrieval model can only match you to an audience if your account has a consistent shape. Wandering topics dilute your discovery.
- Stay constructive. The negative heads are real. Anything that earns a mute or a report is actively down-ranked, even when the impressions look good.
How to actually test any of this
Don't take weights on faith, including these. Change one variable at a time and give it a couple of weeks. Measure the things the ranking rewards, not the vanity number: your reply rate and reply depth, your bookmark and share rate, and your profile-visit-to-follow rate, not likes and not raw impressions. If a change moves replies, saves, and follows, it's working even when the like count doesn't budge. If it only moves impressions, it's probably a vanity spike. That's the loop: hypothesis, one change, two weeks, read the funnel.
Argus turns this into a daily to-do, from your own numbers
The code tells you the levers; Argus pulls them. It reads the real outputs of these prediction heads from your own X analytics (profile visits, follows, saves, shares) and ranks the exact posts to reply to next: fresh, relevant, mid-size, uncrowded, spread across accounts, so you land in the out-of-network discovery lane the algorithm rewards. It drafts each reply in your voice, and you always press send.
Or run the free X growth check to find your one leak, and read how the X algorithm works in 2026 for the plain-English version.