How X Scores Your Posts
X does not appear to use one simple “viral score” based on likes, replies, and reposts. The current open-source X recommendation system uses a ranking model called Phoenix to predict multiple possible actions a viewer may take on a post. Those predictions are then combined by a weighted scoring stage to produce a ranking score. (GitHub)
This guide explains what the open-source code actually shows—and, importantly, what it doesn't reveal.
The Simple Version
The scoring process can be represented like this:
The important part is that Phoenix predicts a collection of engagement probabilities rather than producing one generic relevance number. (GitHub)
1 to 5. Multi-Action Prediction and Weighted Combination
1. Phoenix Predicts What a User Might Do: Rather than a single score, Phoenix outputs distinct action probabilities for 19+ engagement types (Likes, Replies, Dwells, Clicks, Blocks, etc.). (GitHub)
2. A Like Is Only One Prediction: Visible likes are just one probability among many evaluated by the transformer model.
3. The Weighted Scorer Combines Predictions: The codebase explicitly multiplies action probabilities by respective weights (e.g., favorite_score × FAVORITE_WEIGHT + reply_score × REPLY_WEIGHT + ...) before normalization. (GitHub)
4. Different Actions Have Different Weights: Replies, reposts, dwell events, and likes can contribute differently to the final score.
5. Negative Actions Are Also Predicted: Actions like "Not Interested", "Block", "Mute", and "Report" are incorporated as negative penalties. (GitHub)
6 to 12. Personalization, Isolation, Diversity, and Selection
6 & 7. Negative Feedback & Dwell Time: Predicted blocks and dwell duration allow the system to distinguish between casual scrolling and deep consumption behavior.
8 & 9. The Score Is Personalized: Because Phoenix combines candidate features with the viewer's personal engagement history, the same post receives different scores for different users.
10. Candidates Are Isolated During Ranking: Candidate posts do not directly attend to each other inside the transformer, ensuring consistent and cacheable scoring. (GitHub)
11 & 12. Author Diversity and Final Positioning: Raw recommendation scores are subsequently adjusted by Author Diversity and Out-of-Network scorers before final selection.
The Practical Scoring Model
The key takeaway: X doesn't simply score your post. It scores the predicted value of your post for a particular viewer.