Free · no account

X's ranking weights, read from X's own code.

X publishes the code that ranks its For You feed. LinkIntel reads the weights from that open-source repo every day and shows them here, each one with the commit it came from.

Latest commita707cc229 September 2026params.rs at that commit

The weights

What helps, and what hurts.

In X's published weights, a reply, a quote or a share via DM counts as 10 likes, and a share via copy link counts as 40 likes.

Helps

  • share via copy link40x a like20
  • reply10x a like5
  • share via DM10x a like5
  • quote10x a like5
  • follow the author4
  • share2
  • repost1
  • like0.5
  • stay 10+ seconds after the tapchanged 29 September 20260.4
  • tap inchanged 29 September 20260.3
  • open link0.2
  • open a videochanged 25 August 20260.07
  • expand a photo0.05
  • pause on the post (dwell)changed 25 August 20260.05
  • tap through to a quoted post0.05
  • unexplored post from an account you follow0.02
  • time spent on the post0.004

Hurts

  • report-234
  • mute the author-58.8
  • not interestedchanged 29 September 2026-47.52
  • block the author-31.2
  • scroll past without pausing-0.02

These are ratios between weights, not engagement counts. A weight multiplies X's predicted probability that a viewer takes the action, so it does not say what one real reply or like is worth.

Guardrails

How to use this when writing.

These are X's published default ranking weights. They describe what the ranker rewards in aggregate. They do not predict what any single post will get.

  1. 01Write the post from the evidence and the creator's voice first. This section never overrides either. If the creator's own best post worked without a device (a question, a hook, a call to action), that is stronger evidence than any weight here.
  2. 02Do not add a question, call to action or hook because a weight rewards it. Replies are weighted highly, but a tacked-on question ("What are you building? Drop it below") reads as a template and risks the costliest signal in the hurts list. A question belongs only if it grows out of the post and is one this audience would genuinely want to answer.
  3. 03Never invent, stretch or generalise a fact to set up engagement. Accuracy comes before every signal.
  4. 04Then run the final check and change the draft only where it fails.

Final check

  • Would the creator actually say this, in these words?
  • Is every claim supported by the brief or the facts provided?
  • Is there a natural reason for someone in this audience to reply, quote it, or send it to one person? The best way is the content itself: a specific number, an honest admission, a finding that surprises. An explicit ask is optional and must pass the rule above.
  • Would anyone outside the audience feel baited or want to hide it? If yes, remove what causes that.
  • If the post is long enough that people tap in to read it, does what follows the tap hold them for 10+ seconds?

For your agent

Give this to your agent.

One line. It reads the markdown version of this page and uses it as a final check on a draft.

Before drafting any X post, read https://www.getlinkintel.com/x-algorithm.md and use it as a final check.

Also as JSON and an RSS feed.

Changelog

Every material weight change.

A weight changes when X edits its code. Each entry links to the commit that did it.

6 material weight changes across 2 commits since 25 August 2026. Last change 29 September 2026.

See the latest change

29 September 2026

commit a707cc2 · permalink

  • not interested-43.2 → -47.52

    The "not interested" penalty got bigger: now as large as about 95 likes, up from 86.4 likes.

    X's published default for 'not interested' is -47.52, from -43.2. The penalty got bigger, about 95 likes rather than 86.4.

  • tap in0.4 → 0.3

    Tap in counts less: now worth as much as 0.6 of a like, down from 0.8 of a like.

    X's published default for a tap is 0.3, from 0.4. It counts less than before, worth as much as 0.6 of a like rather than 0.8.

  • stay 10+ seconds after the tap0 → 0.4

    Stay 10+ seconds after the tap now counts: worth as much as 0.8 of a like.

    X's published default for staying 10+ seconds after a tap is 0.4, from 0. It now counts; a tap followed by that read counts 0.7, from 0.4.

25 August 2026

commit 0d3cdd8 · permalink

  • open a video0.05 → 0.07

    Open a video counts more: now worth as much as 0.14 of a like, up from a tenth of a like.

  • pause on the post (dwell)0 → 0.05

    Pause on the post (dwell) now counts: worth as much as a tenth of a like.

  • watch a video properly (quality view)0.05 → 0

    Watch a video properly (quality view) no longer counts: it was worth as much as a tenth of a like.

Read this before you rely on it

  • The values are defaults mirrored from X's open-source ranking repo. A published default is not proof of what is live for every user.
  • The weights describe what X's ranker rewards in aggregate. Nothing here predicts the reach of a post.
  • LinkIntel is not affiliated with X or endorsed by it.

LinkIntel applies these to your own posts and the reference posts you choose, inside your agent.

Get started · $39/month