X Algo explained.
Your questions, checked against the code. Pick a view.
For You feed · Dated code defaults · Not live analytics
A feed is built for the person opening it.
Your post has no single score shared by everyone. Each viewer brings a different history, following list and set of preferences.
The inspected code does not require “followers first → 100 strangers → 1,000 strangers.” Following and discovery sources are queried together. Reactions can inform later predictions and retrieval.
A like is not a fixed number of reach points.
Existing likes, replies, views and bookmarks can inform the model. The scoring coefficients multiply predicted actions for this viewer, not those public counts.
Try one predicted signal
ILLUSTRATION · NOT A REACH CALCULATOROne raw term only. This omits other predictions, score offsets, network/diversity adjustments, low-impression lifts and final filtering. Actual likes do not get plugged into this slider.
See the probability-weight defaults
Two defaults tables exist in this revision. Fresh candidates normally use the VM service; the local table is used on the fallback path. Cached scores, feature switches and experiments can differ. A coefficient ratio is not a real-action exchange rate.
| Predicted action | Fresh VM | Local fallback |
|---|---|---|
| Like | 0.5 | 0.66 |
| Reply | 5 | 5 |
| Repost | 1 | 1 |
| Quote | 5 | 5 |
| Share | 2 | 2 |
| Share by DM | 5 | 5 |
| Copy-link share | 20 | 20 |
| Follow author | 4 | 4 |
| Post click | 0.3 | 0.3 |
| Open external link | 0.2 | 0.2 |
| Expand photo | 0.05 | 0.05 |
| Open video | 0.07 | 0.02 |
| Dwell event | 0.05 | 0.05 |
| Not interested | -47.52 | -52.272 |
| Mute author | -58.8 | -58.8 |
| Block author | -31.2 | -31.2 |
| Report | -234 | -234 |
Reply defaults to 5. For an eligible original post from a mutual follow, the code adds 15: the reply term uses 20. This is not a 4× reach promise. Bookmarks are model inputs but have no standalone coefficient in this weighted sum.
Check the code
- Predictions are weighted, not raw counts ↗
- Fresh VM scoring defaults ↗
- Local fallback defaults ↗
- The request asks for fresh value scoring ↗
- Cached scores and local fallback ↗
- Existing weighted scores can be reused ↗
- Observed counts enter model inputs ↗
- Learned engagement-count features ↗
- Mutual-follow reply addition ↗
- Original-post eligibility ↗
Uploading a video is not an automatic boost.
The inspected feed scores predicted video opens and attention. It does not give every public video view a fixed value in likes.
Opening a video
A predicted video open has a positive coefficient: 0.07 in fresh VM defaults, 0.02 in the local fallback.
Reading or staying
Dwell events and model-provided attention values have their own terms. Their units depend on the model configuration; these are not points per actual second.
A “quality view”
The direct video-quality-view coefficient is 0 in both tables. Dedicated continuation-time terms also default to 0. That does not mean video or watch behavior is ignored.
Give the right viewer a reason to open and keep paying attention. “Add any video” is not a recipe supported by these defaults.
Reading-value coefficients: continuous dwell 0.004 (VM) / 0.006 (local); click-dwell 0.4 in both. These multiply model outputs, whose definitions can vary. Video-carousel scoring is a separate path and is disabled by default in this code edition.
No universal first-hour death timer found.
The inspected path does not kill a post because nobody replied in its first 30 or 60 minutes. Freshness matters, but these are different rules.
30 minutes is not a reply deadline.
A 30-minute value elsewhere describes a new viewer’s account-age window in a default-disabled filter. It is not a rule that your post must receive replies.
Zero likes ≠ automatically ineligible
The code has creation-time indexing and an explicit zero-like retrieval route. Some like-based indices also exist. Eligibility and experiments still apply; none of this guarantees exposure.
Early activity can still help
Counts can inform predictions and likes can update retrieval indices. That makes an effect plausible. It does not prove a universal deadline, a reply quota or a minute-by-minute reach curve.
Scope: standard inspected For You path. Other X surfaces and runtime experiments are not fully described here. A 48-hour filter in this path is not a platform-wide lifetime for every post.
Check the code
- Age filter in the inspected feed path ↗
- 48-hour standard-path limit ↗
- Post age is a model feature ↗
- Hourly age-bucket default ↗
- 30-minute viewer-age settings, not a reply deadline ↗
- Zero-like retrieval route ↗
- Creation-time indexing ↗
- Like-based and creation indices ↗
- Low-impression lift defaults ↗
- A lift is conditional, not promised reach ↗
- Observed counts enter model inputs ↗
Followers matter. They are not a mandatory first test.
Following and discovery are different candidate sources. The same post can be a strong fit for one viewer and irrelevant—or ineligible—for another.
Mutuals get a specific reply adjustment
For an eligible original post from a mutual follow, the predicted-reply coefficient becomes 20 = 5 + 15. Replies and reposts do not qualify for that addition.
Strangers have extra gates
Recommendation visibility rules differ from follower-feed rules. The VM default network multiplier is 0.75 for out-of-network posts; it can also apply to followed-account replies and reposts.
Small posts can get exploration
A conditional lift considers eligible original posts with <200 Home impressions, age ≤2 hours and author size ≤50,000 followers. It is not a guaranteed first 200 views.
Relationships can affect a viewer’s predictions. Useful original posts also have discovery routes. Neither “only mutuals matter” nor a guaranteed expanding test audience follows from this code.
Home impressions are not the public total-view count. The lift also depends on pool position, viewer/author buckets and configuration; candidates still face later selection and visibility checks.
Check the code
- Following and discovery sources ↗
- Mutual-follow reply addition ↗
- Original-post eligibility ↗
- Diversity and network multipliers ↗
- Following and recommendation visibility differ ↗
- Additional recommendation rules for replies ↗
- Low-impression lift defaults ↗
- A lift is conditional, not promised reach ↗
- Original posts and follower cap ↗
A high predicted score is not the whole decision.
A viewer can mute or block you—or your topic.
Those eligibility rules operate separately from whether a model thinks your post could be engaging.
A post can remain available yet miss strangers’ feeds.
Detected engagement bait or farming can receive a spam label used to exclude recommendations. The unpublished classifier prompts prevent a precise “this wording is bait” checklist.
Your posts can compete with each other.
Additional candidates from the same author can be multiplied by 1 → 0.625 → 0.4375 → 0.34375…, ordered within that candidate pool. This is not a penalty on your second post of the day.
A feed makes room for different things.
A diversity-selection stage can keep a less-similar candidate and zero out others. It does not prove an account-wide duplicate-content punishment.
Negative predicted actions such as “not interested,” mute, block and report also have negative coefficients. This is not “one report cancels N likes,” and it is distinct from an actual safety-label drop.
Check the code
- Viewer blocks and mutes ↗
- Viewer muted keywords ↗
- Following and recommendation visibility differ ↗
- Additional recommendation rules ↗
- Detected bait can receive a spam label ↗
- Spam-high-recall drop rule ↗
- Same-author competition within a pool ↗
- Diversity and network multipliers ↗
- Selected scores survive; others can be zeroed ↗
- Predictions are weighted, not raw counts ↗
Keep the useful ideas. Drop the fake certainty.
“No replies in the first hour = dead.”
No universal rule found in the inspected pipeline. Freshness and eligibility windows are real; that reply deadline is not established.
“It tests followers, then bigger and bigger samples.”
The code queries following and discovery sources together for each viewer. Exploration exists, but it is not that fixed ladder.
“A reply is worth exactly N likes.”
Weights apply to predictions, not counted actions. Viewer context, score adjustments and eligibility still matter.
Write for people, then examine your own results.
A clear reason to read, reply or share is consistent with these signals. The code does not reveal a proven daily post quota, perfect posting minute or universal video format.
What this edition can—and cannot—establish
Reviewed the clean local checkout of X’s public For You repository at revision 74d49a4ffb398949a5f9312f828d7112d7d31f00, committed 20 October 2026, 04:32:20 UTC. This is code research, not a controlled reach experiment or your account’s live analytics.
The current implementation, rather than several stale README paths and descriptions, was traced. Fresh VM scoring, cached values and local fallback differ. The published defaults are configurable, some experiments vary by traffic, and some prompts/rules are omitted. This edition does not establish a universal Premium reach multiplier.
A code explanation, not a reach guarantee. Each view includes its sources; defaults and experiments can change.