How X Ranks a Post: Predictions, Weights, and Filters

A source-level guide to X's Phoenix ranking pipeline at commit b089ce64—and why published weights are not an exchange rate for likes, replies, or shares.

X’s published recommendation code does not describe a scoreboard in which a like is worth half a point and a reply is worth five. It describes a pipeline that estimates how a particular viewer might respond to a particular post, combines those predictions, and then applies additional filters and adjustments.

The distinction changes how the source should be read:

published weight × predicted probability for this viewer
≠ points awarded for an engagement that already happened

This article is pinned to commit b089ce64, dated 2026-08-17. It is a checkable source snapshot, not a claim about permanent production behavior.

The ranking question is viewer-specific

A post does not have one universal relevance score before a viewer is considered. The system uses the viewer’s recent behavior and candidate features to predict several possible actions.

For one viewer, a technical thread may have a high predicted probability of a long dwell and a follow. For another, the same post may have low probabilities across every positive action. The content is unchanged; the predicted response differs.

This is the central object being ranked:

Not “How engaging is this post in general?” but “How is this viewer likely to respond to this candidate now?”

That is why raw engagement totals cannot fully explain distribution. Historical interactions help train or supply features, but the score in the inspected pipeline is built from predictions about the current viewer-candidate pair.

Candidates arrive from different networks

The published architecture separates candidate sourcing from ranking.

  • In-network candidates come from accounts the viewer follows, with recent content served through Thunder.
  • Out-of-network candidates come from accounts the viewer does not follow, surfaced through systems including Phoenix Retrieval and SimClusters.

Candidates then enter Home Mixer. The pipeline filters them, hydrates features, scores them with Phoenix, and performs additional adjustments and selection.

This matters because ranking cannot promote a candidate that was never retrieved, and a high model score does not guarantee delivery if a later filter removes the post.

The official source describes the broader sequence in its System Architecture.

Phoenix predicts several actions, not one notion of engagement

The ranker estimates probabilities for multiple responses, including favorite, reply, retweet, direct-message share, copy-link share, dwell, following the author, and negative actions such as not-interested, block, mute, and report.

The source presents the scoring pattern as:

Final Score = Σ (weight_i × P(action_i))

Each term contains two parts:

  1. a predicted probability for this viewer and candidate;
  2. a configurable weight expressing how strongly that predicted action contributes to the score.

The score is therefore sensitive both to the model’s estimate and to product-level parameter choices.

Why the public weights are not an exchange rate

At the inspected commit, notable defaults include:

Predicted actionPublished defaultWhat the number applies to
Favorite0.5Predicted probability that this viewer favorites
Retweet1.0Predicted probability that this viewer retweets
Reply5.0Predicted probability that this viewer replies
Direct-message share5.0Predicted probability of a DM share
Copy-link share20.0Predicted probability of copying the link
Follow author4.0Predicted probability of following the author
Report−234.0Predicted probability of reporting

A copy-link weight of 20 and favorite weight of 0.5 do not imply that one copied link equals forty likes. The two values multiply different probabilities, and those probabilities vary by viewer and candidate.

Likewise, a report weight of −234 does not mean one observed report cancels 468 observed likes. Reports are rare, so a model may assign a very small report probability. The contribution is the product, not the coefficient alone.

The relevant defaults can be inspected in home-mixer/params/param.rs.

Ranking is followed by constraints and adjustments

The model score is not the last word. The published pipeline also includes mechanisms that affect which posts survive and where they appear.

Examples in the snapshot include:

  • author-diversity decay, which reduces repeated concentration from one author;
  • an out-of-network discount;
  • new-author exploration;
  • removal of duplicates and already-seen posts;
  • age thresholds;
  • visibility and safety filtering;
  • final selection and ordering.

This explains why a strategy based only on maximizing one predicted action is incomplete. A post can score well and still be affected by author repetition, age, network source, or filtering.

It also explains why publishing near-identical posts in quick succession does not stack distribution linearly. Later candidates from the same author can be discounted even before audience fatigue is considered.

Relationship signals are conditional

The inspected defaults include an additional reply-weight boost for original posts from mutually followed authors. That is evidence that relationship context can enter ranking.

It is not evidence that bulk mutual-following guarantees reach. The branch applies under specific conditions, and the predicted reply probability still matters. Replies and retweets are not automatically treated as original posts from a mutually followed author.

The correct inference is narrow:

Existing reciprocal relationships can change how some original posts are scored in this source snapshot.

Anything stronger would require production experiments or observed account-level outcomes.

What a creator can test

The source suggests hypotheses, not guaranteed tactics.

Audience match

If scoring is viewer-specific, a clear topic and recognizable audience should help the system connect a post with people likely to respond. This can be tested by comparing follower conversion, profile visits, and the quality of replies across topic-consistent and topic-ambiguous posts.

High-intent actions

Copying a link, sending a direct message, or following an author has meaningful published weight in the snapshot. A creator can test whether practical references, reusable explanations, or distinctive original work produce these actions naturally.

Author repetition

Author-diversity decay predicts diminishing value from placing several similar candidates into the same window. A creator can compare spaced, distinct posts with rapid near-duplicates while keeping topic and audience as stable as possible.

Negative feedback

Large negative coefficients indicate that the system is designed to react strongly to predicted dissatisfaction. Conflict can produce replies while also increasing blocks, mutes, reports, or “not interested” signals. Counting visible comments alone cannot resolve the net effect.

These are experiments to run, not results already established for a specific account.

What the repository cannot prove

The public code does not establish:

  • which experimental parameter values production currently uses;
  • how models were trained or calibrated in every production environment;
  • the causal effect of a tactic on a particular account;
  • whether an observed reach change came from content, audience, timing, competition, or an unobserved system change;
  • how long the inspected defaults will remain current.

The repository is strong evidence about published architecture and defaults at a commit. It is weaker evidence about live production configuration and individual creator outcomes.

The most defensible conclusion is therefore architectural:

X’s published pipeline ranks predicted viewer responses, then subjects candidates to further adjustments and filters. The weights describe coefficients inside that system, not a universal price list for engagement.

Sources

Frequently asked questions

Do X's published weights assign points to completed engagements?
No. In the inspected source snapshot, each weight multiplies a model prediction for the current viewer. It is not a fixed point value added after a like, reply, or share occurs.
Does a copy-link weight of 20 mean one copied link equals forty likes?
No. The two weights multiply different predicted probabilities. Their products cannot be converted into a universal exchange rate between observed actions.
What source version does this article describe?
It describes xai-org/x-algorithm at commit b089ce64, dated 2026-08-17. Public code and production experiment parameters can change.

If this was useful, subscribe via RSS.

Content is open for citation with attribution; please link back to the source.