The X algorithm in May 2026

The 5 ways X steals your feed slots before organic content gets ranked

Creators chase top-10 placement assuming there are 10 slots. There are not. Every rendered For You feed includes a who-to-follow module of up to 3 users, one or more ads spaced by MIN_POSTS_FOR_ADS, optional full-cover or half-cover prompts that take the top slot, optional push-to-home heroes if the user arrived from a notification, and cached-posts continuation slots from the prior session. By the time organic candidates are placed, the visible top-10 is often top-6 organic. This article inventories every non-organic source in home-mixer/sources/, the slot quotas where documented, and the safe-gap blending math from home-mixer/ads/safe_gap_blender.rs. We finish with a session-strategy section: when followers see your post, how much of the surrounding feed is theirs and not X's.

May 27, 2026 · 11 min read · VoiceMoat team

Creators chasing "top-10 placement" on X are usually chasing a number that does not exist. The visible top-10 of a typical For You feed render is not ten organic candidates competing for ten slots. It is a mix that includes one or more ads, a who-to-follow module of up to three users, occasional prompt cards, push-to-home heroes if the viewer arrived from a notification, and cached-posts continuation slots from the previous session. By the time organic candidates from Phoenix's scoring layer reach the rendered feed, the visible top-10 is often a top-6 organic. This article inventories every non-organic source in home-mixer/sources/, the slot quotas where documented, and the safe-gap blending math from home-mixer/ads/safe_gap_blender.rs. Companion to A1, which walks the architectural shift, and A3, which covers the organic OON retrieval lane.

The twelve home-mixer sources, by type

The home-mixer pipeline assembles each feed render from twelve candidate sources. They split into four categories.

The twelve home-mixer candidate sources, by category

Source: home-mixer/sources/ inventory

SourceCategorySlot quota or trigger
thunder_source.rs documentedorganic in-networkunbounded inside Thunder's 48-hour window
phoenix_source.rs documentedorganic OON (general)top-K from two-tower retrieval, K not in source
phoenix_moe_source.rs documentedorganic OON (MoE)expert-routed top-K
phoenix_topics_source.rs documentedorganic OON (topic-keyed)top-K per topic ID
ads_source.rs documentednon-organic adinterleaved per safe-gap blender
who_to_follow_source.rs documentednon-organic modulemax 3 users, exclusion list of last 200 surfaced
prompts_source.rs documentednon-organic prompt4 types: INLINE, FULL_COVER, HALF_COVER, RELEVANCE_PROMPT
push_to_home_source.rs documentednon-organic herofires when viewer arrived from a notification
tweet_mixer_source.rs documentedauxiliary mixcandidates gated by MAX_POST_AGE
cached_posts_source.rs documentedsession continuationfires when viewer resumes prior session
scored_posts_source.rs documentedsupportintermediate scored-list source
(two additional sources) inferred(not enumerated in this pass)remaining sources not detailed in public inventory references

Four of the twelve are organic candidate sources (Thunder plus three Phoenix retrieval variants). Five are non-organic surfaces (ads, who-to-follow, prompts, push-to-home, cached-posts continuation). The remaining three are support and auxiliary pools. The split is the structural starting point for understanding what creators are competing for: organic posts compete with each other for the slots that survive after the non-organic surfaces have taken theirs.

Who-to-follow: one module, three users, two-hundred-user memory

home-mixer/sources/who_to_follow_source.rs exposes two named constants relevant to creators: MAX_WHO_TO_FOLLOW_USERS = 3 and EXCLUDED_USER_IDS_LIMIT = 200. The first caps the module at three suggested accounts per render. The second tracks the last 200 user IDs the viewer has already seen in this module and excludes them from re-surfacing.

Two practical implications. First, the who-to-follow module occupies one feed slot per render, displaying up to three accounts. Each of those accounts is competing for that slot via a separate ranking process not detailed in the open repo (likely involving graph signals, shared-interest models, and viewer-following affinity). Second, the 200-user exclusion memory means recommended accounts rotate. A creator appearing once in a viewer's who-to-follow module is excluded from that viewer's next several encounters with the module, until the exclusion list rolls over.

For creators thinking about follower growth, this surface is substantively different from organic feed placement. It is its own ranking lane, scored on different signals, with hard caps on appearances. Optimisation for the visible post unit (the focus of this series) does not affect who-to-follow placement directly.

Ads: the safe-gap blender

home-mixer/ads/safe_gap_blender.rs handles the interleaving of ad candidates with organic candidates in the final feed list. The blender enforces a MIN_POSTS_FOR_ADS minimum: a fixed number of organic posts must appear between consecutive ads. The specific value is not in the public release.

The blending mechanism is straightforward: as the rendered feed is assembled, the blender counts organic posts since the last ad inserted, and once the count crosses the minimum, the next eligible ad slot is filled with the highest-scoring ad candidate. The ad candidates themselves come from home-mixer/sources/ads_source.rs and are scored by their own ad-relevance pipeline, distinct from the organic Phoenix scoring.

For organic creators, ads occupy slots that would otherwise hold organic candidates. The math works out to roughly one or two ads visible in a typical scrolled feed pass, depending on the MIN_POSTS_FOR_ADS value and the depth of the scroll. Each ad takes one slot that an organic post could have occupied.

Prompts: four types, four behaviours

home-mixer/sources/prompts_source.rs exposes four prompt types: INLINE_PROMPT, FULL_COVER, HALF_COVER, and RELEVANCE_PROMPT. Each has a different render behaviour.

The four prompt types and their feed-render behaviour

Source: home-mixer/sources/prompts_source.rs

Prompt typeRender behaviourSlot impact
INLINE_PROMPT documentedappears inline in the feed scroll as a cardone slot
FULL_COVER documentedoccupies the entire top position with a full-width carddisplaces the top organic slot entirely
HALF_COVER documentedcovers approximately half the visible area in a high positiondisplaces a high-attention slot
RELEVANCE_PROMPT documentedcontext-aware prompt tied to viewer state or recent actionvaries

The full-cover prompt is the most disruptive for organic distribution. When triggered, it takes position zero of the feed, pushing all organic candidates one slot lower. Position-zero attention is disproportionately valuable in any ranked feed (the click and dwell heads fire most reliably at the top), so a full-cover prompt effectively removes the highest-value organic slot from the render.

Prompts fire conditionally based on viewer state (new-user onboarding, inactive-period reactivation, opt-in flow continuation), not on every feed render. The percentage of renders that include a prompt is not in the public source. From the creator side, the prompt layer is an intermittent slot tax: rarely visible, but when visible, claims a high-attention slot.

A subtle implication for creators trying to reach new viewers via OON retrieval: new-user feed renders are more prompt-heavy than active-user renders. Onboarding prompts, suggested-topics prompts, and follow-recommendation prompts are all more likely on a viewer's first several sessions. New-user OON retrieval (gated by PhoenixRetrievalNewUserHistoryThreshold, walked in A3) also operates on a different candidate pool than power-user OON. The combined effect is that organic candidates have fewer slots and a modified retrieval lane when reaching newer viewers. The audience-growth math therefore differs from the audience-engagement math; creators optimising for new-follower acquisition face a different slot allocation than creators optimising for existing-follower engagement.

Push-to-home: notification heroes

home-mixer/sources/push_to_home_source.rs fires when the viewer arrived at the For You feed from a notification (a mention, a reply, a like, a follow). The source injects a notification-related hero candidate at or near the top of the feed.

The mechanic is contextual: a viewer who taps a notification expects to land on the related content. Push-to-home's job is to surface that content immediately rather than burying it in the standard ranking. The hero candidate is typically the post that triggered the notification, plus optionally a related cluster.

For organic creators, push-to-home is largely transparent (it operates on the viewer's arrival context, not on candidate competition). The one exception: a creator's post that generated the viewer's notification gets surfaced for them through this path, which is its own implicit reach amplifier for posts that earn replies or mentions. Replies and quotes that generate notifications drive return visits that surface the creator's content through push-to-home.

Cached-posts continuation

home-mixer/sources/cached_posts_source.rs fires when the viewer's session resumes after a brief gap (closing and reopening the app within a window, or returning to the feed from another tab). The source surfaces candidates from the previous session's scored list, picking up where the viewer left off.

The mechanic preserves session continuity. Without it, a viewer who closed the app mid-scroll would lose their place and start over with a fresh feed pass. With it, the previous session's continuation candidates appear first, then the standard pipeline takes over.

For creators, cached-posts is mostly a continuity feature, but it has one subtle implication: posts that performed well enough to be in a viewer's recent session list get a second chance to be served if the viewer returns. The signal that decides which posts get included in the cached set is downstream of Phoenix scoring, so high-scoring posts get the continuity benefit.

The real organic top-10

Putting the surfaces together: in a typical scrolled feed render where the viewer is an active long-time user (no full-cover prompts, no push-to-home, no cached continuation), the top-10 visible slots break down roughly as follows.

Typical feed render slot composition by surface (top-10 positions)

Source: illustrative composition, exact ratios depend on viewer state and platform settings

1007550250Organic in-network (Thunder)Organic OON (Phoenix retrieval)AdsWho-to-followPrompts / push-to-homerelative slot share
Slot count in typical renderSlot count when prompts and push fire

Left column: standard render, dominated by organic candidates. Right column: render with prompts or push-to-home firing, where non-organic surfaces take a larger share.

The takeaway: the visible top-10 is rarely ten organic candidates. The standard case is closer to six or seven organic candidates plus a mix of non-organic surfaces. When prompts or push-to-home fire, the organic share drops further. Creators competing for "top-10 placement" are actually competing for top-6-or-7 placement in a contended slot pool.

What changed from 2023 to 2026 in slot architecture

The 2023 home-mixer used a smaller, more tightly-coupled set of candidate sources. In-network and a single out-of-network source covered organic; ads were interleaved by a simpler rule; the who-to-follow surface existed but at lower frequency; prompts were a small set of onboarding-only cards. The total source count was roughly half what the 2026 home-mixer runs.

The 2026 expansion is structural, not incremental. The three OON retrieval variants (general, MoE, topic-keyed) replace what was one OON source in 2023. The prompts module quadrupled (four types vs the 2023 one or two). Push-to-home is a 2026 addition; the 2023 stack did not have a dedicated notification-arrival hero injection. Cached-posts continuation as a first-class source is also new.

The net effect on organic competition: in 2023, a typical visible top-10 might have been seven or eight organic posts plus an ad and a who-to-follow card. In 2026, the same top-10 is often six organic posts plus the same ad and who-to-follow card plus an occasional prompt or push-to-home hero. The organic share dropped while the non-organic surface count rose.

This is the broader-than-creators-realise story of 2026 feed architecture. The Phoenix transformer is more sophisticated than the 2023 MaskNet, but it has fewer slots to work with, and the slot mathematics constrain what the better scoring can deliver in raw impression terms. A more accurate Phoenix prediction on candidate quality is worth less when there are fewer organic slots for the high-quality candidates to occupy.

What this means for cadence and content strategy

Three implications fall out of the slot inventory.

First, the organic competition is denser than implied by raw candidate-count statistics. A creator's post does not compete with all candidates the home-mixer considers; it competes with the candidates that survive the slot allocation to non-organic surfaces. The effective bar is higher than impression-volume statistics suggest.

Second, replies and mentions have a compounding visibility mechanism. Posts that generate notifications drive return visits that surface the post via push-to-home. The mechanic favours posts that drive interaction (replies in particular) because each interaction becomes a potential push-to-home trigger for the interacting viewer. This connects directly to the reply head in A2: reply has the highest per-action weight in the 2023 reference, and each reply also triggers a push-to-home pathway for the viewer who replied. The compounding effect makes replies even more valuable than their raw weight suggests.

Third, slot scarcity reinforces the diversity-decay argument from A7. The organic-only slots inside the top-10 are typically six or seven. The diversity decay caps how many of those can come from a single author. Combined: a creator's marginal post past the second or third of the day is competing for a tiny slice of an already-bounded slot pool, against the decay multiplier driving its score toward floor. The "post fewer, higher-quality" reframe is the only architecturally viable strategy for serious creators in 2026.

Operational rules

Treat ads, who-to-follow, and prompts as fixed taxes on the slot pool. They take their share regardless of organic strategy. Acceptable, not optimisable.

Invest in posts that generate replies and mentions, not just likes. Each reply or mention generates a push-to-home pathway. The compounding visibility is downstream of the engagement, but the mechanic is real.

Recognise the visible top-10 is functionally a top-6 organic contest. The architectural ceiling on organic placement is lower than impression-volume framing suggests. Optimise per-post quality accordingly.

Do not over-index on top-slot heuristics. Position-zero placement is unreliable as a target because full-cover prompts and push-to-home heroes can override it. Targeting consistent top-three placement across many feed renders is a more architecturally-aligned strategy than targeting position zero on any single render.

Build for the reply-into-push-to-home loop. Posts that earn replies generate notifications, which generate push-to-home triggers for the replying viewer. That viewer returning to the feed surfaces the original post (or related cluster) at the top of their next render. The mechanic is not a single-impression bump but a recurring visibility pathway that compounds while the conversation stays active.

The slot-competition mechanics described in this article are the non-Phoenix portion of the For You feed assembly. The Phoenix scoring, the 19 engagement heads (A2), the OON retrieval lane (A3), and the diversity decay (A7) together describe how organic candidates score and rank. This article describes what those candidates are competing against once they reach the rendered feed. The structural conclusion is consistent across all of the series: voice consistency, embedding distinctiveness, and cadence discipline are the three levers creators have. A10 closes the series by scoring the four major writing tools against exactly these levers.

AI disclosure

This article was drafted with AI assistance and human-edited by the VoiceMoat team. All technical claims are sourced to the xai-org/x-algorithm repository; file paths are cited inline.