Guide8 min read
How the X Algorithm Ranks Posts, From X's Own Code
How the X algorithm weights replies, shares, reports and more, read from X's open-source ranking code, with recent weight changes linked to commits.
The X algorithm ranks posts by predicting how likely each viewer is to take actions such as replying, sharing or reporting, then multiplying each prediction by a published weight and adding the results up. Shares via copy link, replies, quotes and DM shares carry the largest positive weights, and reports, mutes and "not interested" taps carry the largest negative ones.
Much advice about the X algorithm (once called the Twitter algorithm) is not traced to the ranking code. X publishes that code. This post explains where the numbers come from, what they say, and what has changed recently, with every figure traced to a commit.
A caveat first, because it matters: the values below are defaults mirrored from X's open-source repo. A published default is not proof of what is live for every user, and none of it predicts the reach of a post.
Where the weights come from
The weights come from a parameter file in X's open-source ranking repository, which LinkIntel reads once a day. The repo is xai-org/x-algorithm, and the current weights are read from vm-ranker/params.rs at commit b412112, committed on 3 October 2026.
Each weight multiplies X's predicted probability that a viewer takes an action. That makes the weights ratios between signals, not engagement counts. They do not tell you what one real reply or one real like is worth, only how the ranker values one kind of predicted action against another. In this post, "against a like" means the weight divided by the like weight of 0.5.
LinkIntel publishes the same data three ways: a human page at /x-algorithm, a changelog at /x-algorithm/changes, and a machine-readable JSON file at /x-algorithm.json for tools and assistants. LinkIntel is not affiliated with X or endorsed by it.
What gets rewarded
The ranker rewards actions that signal a viewer wants to engage or pass the post on, and it weights sharing and conversation far above passive approval. Here are the positive weights as currently published.
| Signal | Weight | Against a like |
|---|---|---|
| Share via copy link | 20 | 40x |
| Quote | 5 | 10x |
| Share via DM | 5 | 10x |
| Reply | 5 | 10x |
| Follow the author | 4 | 8x |
| Share | 2 | 4x |
| Repost | 1 | 2x |
| Like | 0.5 | 1x |
| Stay 10+ seconds after the tap | 0.4 | 0.8x |
| Tap in | 0.3 | 0.6x |
| Open link | 0.2 | 0.4x |
| Open a video | 0.07 | 0.14x |
| Pause on the post (dwell) | 0.05 | 0.1x |
| Tap through to a quoted post | 0.05 | 0.1x |
| Expand a photo | 0.05 | 0.1x |
The table leaves out two minor entries: unexplored post from an account you follow (0.02) and time spent on the post (0.004). The full list is on /x-algorithm.
Three things stand out. First, a like is the smallest of the meaningful engagement signals. A reply, a quote and a DM share each count as 10 likes, and a copy-link share counts as 40. Second, following the author is worth 4, or 8 likes, so a post that makes people want to see more from you has its own weight. Third, the passive signals (tapping in, pausing, expanding a photo) are small individually, but they are the actions most viewers actually take.
What gets penalised
The ranker penalises negative feedback far more heavily than it rewards positive feedback, and a single predicted report outweighs everything else in the file. Here are the negative weights.
| Signal | Weight | Against a like |
|---|---|---|
| Report | -234 | about 468 likes |
| Mute the author | -58.8 | about 118 likes |
| Not interested | -47.52 | about 95 likes |
| Block the author | -31.2 | about 62 likes |
| Scroll past without pausing | -0.02 | about 0.04 likes |
One predicted report is the same size as about 47 predicted replies pushed the other way (234 divided by 5). A post that earns replies from the people it suits but triggers reports or "not interested" taps from the people it reaches outside that group can score worse than a quieter post. The penalties are the reason that bait, rage and off-topic hooks tend to backfire.
The mild penalty for scrolling past without pausing is only 0.02. Being ignored costs very little. Annoying someone costs a lot.
Recent changes
Six material weight changes have landed across two commits since 25 August 2026, and the latest was on 29 September 2026. Each one is recorded on the changelog with a link to the commit that made it.
29 September 2026, commit a707cc2:
- Not interested went from -43.2 to -47.52. The penalty grew from 86.4 likes to about 95.
- Tap in went from 0.4 to 0.3, so a tap is worth 0.6 of a like instead of 0.8.
- Stay 10+ seconds after the tap went from 0 to 0.4, so it now counts. A tap followed by that read is worth 0.7 in total, up from 0.4.
25 August 2026, commit 0d3cdd8:
- Open a video went from 0.05 to 0.07.
- Pause on the post (dwell) went from 0 to 0.05, so it now counts.
- Watch a video properly (quality view) went from 0.05 to 0, so it no longer counts.
The direction of the September change is worth noting: a bare tap counts for less, and a tap that holds the reader for 10 seconds counts for more. That is a weight change, not a verdict on how any post performed.
What it means for a draft
The weights are a final check on a draft, not a recipe for writing one. Write the post from what you actually know and in your own voice first, then ask whether it fails any of these tests.
- Would a reader have a natural reason to reply, quote or send it to one person? The best reason is the content itself: a specific number, an honest admission, a finding that surprises. A tacked-on "Drop your thoughts below" is the template pattern that risks the costliest signals in the penalty table.
- Does what follows the tap hold a reader for 10 seconds? If your post is long enough that people tap in, the stay-after-tap weight is the one that moved most recently in the positive direction.
- Would anyone outside your audience feel baited or want to hide it? If so, the "not interested", mute and report weights are the risk, and they are large.
- Is every claim supported? Accuracy comes before every signal. Do not stretch a fact to set up engagement.
None of this tells you what a given post will get. The weights describe what the ranker rewards in aggregate, and they apply to predictions the ranker makes about each viewer, which you cannot see.
LinkIntel exposes the same data inside your AI assistant through the get_platform_signals tool in its MCP server, so a drafting assistant can read the current weights and changes rather than relying on stale memory. LinkIntel never publishes anything for you. It reads, analyses and suggests, and you post. It does not predict reach. See the MCP setup guide to connect it. For the other side of the picture, your own numbers, read the X analytics history post.
FAQ
How does the X algorithm work?
It predicts, for each viewer, how likely they are to reply, share, like, follow, report and so on, multiplies each prediction by a published weight, and sums the result to rank posts. The weights are in X's open-source code, and /x-algorithm shows the current values.
Where can I see the current X algorithm weights?
On /x-algorithm, which reads X's open-source repo daily and links each value to its commit. The same data is available as JSON at /x-algorithm.json.
Does a reply count more than a like on X?
In the published defaults, yes: a reply is weighted 5 against 0.5 for a like, so a reply counts as 10 likes. These are ratios between weights applied to predicted actions, not a count of real engagements.
Are these weights what X is using right now?
Not necessarily. They are defaults mirrored from X's open-source repository, and a published default is not proof of what is live for every user. Treat them as the best public evidence of what the ranker rewards, not a guarantee.
Can LinkIntel predict how far a post will reach?
No. The weights describe what the ranker rewards in aggregate and cannot predict the reach of a single post, and LinkIntel does not claim to.
Related Resources
Bring better context to your next draft.
Connect X and LinkIntel measures your recent posts every day, reads X's open-source ranking code, and gives both to the assistant you already use. It never publishes anything for you.
Get started