← Home
PUBLIC CODE · 20 OCT 2026

X Algo explained.

Your questions, checked against the code. Pick a view.

For You feed · Dated code defaults · Not live analytics

01 / THE BIG PICTURE

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.

Someone opens For You
FollowingPosts from accounts they followThunder
DiscoveryPosts from elsewherePhoenix · SimClusters · other sources
Combine candidates & apply eligibility filters
Predict this viewer’s actions → score → select for variety
Final visibility checks → their feed
NOT A REQUIRED TEST LADDER

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.

Check the code
02 / SIGNALS, NOT POINTS

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.

Predicted chance of an action×Its configured weight=One contribution to the weighted sum

Try one predicted signal

ILLUSTRATION · NOT A REACH CALCULATOR
0.02 × 0.50.01

One 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 actionFresh VMLocal fallback
Like0.50.66
Reply55
Repost11
Quote55
Share22
Share by DM55
Copy-link share2020
Follow author44
Post click0.30.3
Open external link0.20.2
Expand photo0.050.05
Open video0.070.02
Dwell event0.050.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
03 / ATTENTION

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.

CODE SHOWS

Opening a video

A predicted video open has a positive coefficient: 0.07 in fresh VM defaults, 0.02 in the local fallback.

CODE SHOWS

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.

ZERO DIRECT DEFAULT

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.

PRACTICAL INFERENCE

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.

Check the code
04 / YOUR 30–60 MINUTE GUESS

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.

NO REPLY DEADLINE FOUND

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
05 / RELATIONSHIPS & DISCOVERY

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.

01

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.

02

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.

03

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.

PRACTICAL INFERENCE

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
06 / WHAT CAN GET IN THE WAY

A high predicted score is not the whole decision.

Personal filters

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.

Recommendation eligibility

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.

Author diversity

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.

Content variety

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
07 / WHAT TO TAKE AWAY

Keep the useful ideas. Drop the fake certainty.

NOT ESTABLISHED

“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.

NOT A REQUIRED SEQUENCE

“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.

MISREADING THE FORMULA

“A reply is worth exactly N likes.”

Weights apply to predictions, not counted actions. Viewer context, score adjustments and eligibility still matter.

PRACTICAL INFERENCE

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.

Download the evidence record (JSON) ↓

A code explanation, not a reach guarantee. Each view includes its sources; defaults and experiments can change.