Every ranking weight in X's algorithm, animated

X open-sourced the code that ranks the For You timeline. The weights below are transcribed from home-mixer/params/param.rs, pinned to commit a389166. Every row links to the line it came from.

57s, sound on. The ledger on the right builds as the post collects each weight.

The weights

Ordered largest to smallest. 6 of the 28 ship configured to 0.0 and contribute nothing; they are kept here so the list is complete rather than flattering.

actionweightparamparam.rs
copy link +20.0 ShareViaCopyLinkWeight :326
mutual reply boost +15.0 BidirectionalFollowReplyWeightBoost :285
reply +5.0 ReplyWeight :283
share via DM +5.0 ShareViaDmWeight :320
quote +5.0 QuoteWeight :332
follow author +4.0 FollowAuthorWeight :346
share +2.0 ShareWeight :318
repost +1.0 RetweetWeight :296
like +0.5 FavoriteWeight :282
click +0.4 ClickWeight :309
open link +0.2 OpenLinkWeight :310
photo expand +0.05 PhotoExpandWeight :298
video open +0.05 VideoOpenWeight :304
quoted click +0.05 QuotedClickWeight :334
video quality view +0.05 VqvWeight :317
unexplored +0.02 PostUnexploredWeight :352
dwell time +0.004 ContDwellTimeWeight :376
profile click +0.0 ProfileClickWeight :312
quoted video quality viewnot in the film +0.0 QuotedVqvWeight :340
dwellnot in the film +0.0 DwellWeight :331
click dwell timenot in the film +0.0 ContClickDwellTimeWeight :382
mutual dwell boostnot in the film +0.0 BidirectionalFollowDwellWeightBoost :291
active secondsnot in the film +0.0 ContActiveSecs5mResidualNormWeight :418
not dwelled -0.02 NotDwelledWeight :444
block author -31.2 BlockAuthorWeight :431
not interested -43.2 NotInterestedWeight :425
mute author -58.8 MuteAuthorWeight :437
report -234.0 ReportWeight :442

How this was checked

The film and this page read from one table. A script re-reads param.rs and fails if any value, any numeric literal, or any line number disagrees with it, so a number cannot drift here without the build breaking.

Public write-ups of this algorithm still quote the 2023 heavy-ranker weights. Those are three years stale. Check any claim, including this one, against the file rather than against a thread.

What this does not tell you

A weight is not a score. The ranker computes Σ (weight × P(action)) per viewer, where each probability comes from a model given that viewer's history. The same post therefore has a different score for every person who sees it — there is no single number for a post, and this page does not claim to produce one.

Some weights are conditional in ways the list cannot show. VqvWeight only applies when a video runs past ten seconds and the viewer has fewer than 10,000 followers. PostUnexploredWeight only applies to posts from accounts you already follow. BidirectionalFollowReplyWeightBoost only applies to original posts — not replies, not reposts — from accounts you mutually follow.

Two labels use X's product vocabulary rather than the identifier: like is FavoriteWeight and repost is RetweetWeight. The code kept the old names after the product renamed them.

The candidate-pool figure shown in the film is illustrative. It is not a constant in the repository, unlike every weight above.