X published on August 13, 2026 the numerical weights that turn its For You ranking model's predictions into one score per post, closing a gap that had stood since the xai-org/x-algorithm repository went public in January. The largest positive action weight in the file, home-mixer/params/param.rs, belongs to sharing a post by copying its link, at 20.0. A like carries 0.5 and a report -234.0, and the configuration was last synchronised with production defaults on September 18.

ELI5

X has put on GitHub the actual numbers its For You timeline uses to score posts, and the largest single reward goes to posts that people are predicted to pass on by copying their link. That matters to anyone who depends on X for reach, including brands, publishers and creators, because the numbers show which predicted reactions push a post up and which push it down. What changes is that guesses built on the old 2023 figures can now be checked against the current defaults, although X says the values multiply probabilities rather than counts and can be changed at any time.

What the file contains

The weights sit in a Rust file of 1,059 lines and 20.9 KB inside home-mixer, the component that, according to the repository's README, builds the For You feed, holds the scoring weights and calls other systems on the request path. Every entry follows the same pattern: a parameter name, a data type, a feature-switch key and a default value. The first line of the file states that it is mirrored from configuration feature-switch defaults, and it records the last synchronisation at 16:21:20 UTC on September 18, 2026.

That header is the key to reading everything below it. According to the README, many tunable values are read from a configuration system rather than written into the code, so that X can run experiments, and "we run cron scripts that set the defaults in this repository's code to be the primary production values." The file is a published snapshot of production settings. It is not the switchboard.

Twenty-five parameters attach a weight to a specific predicted action. Fifteen are above zero, five are set at zero and five are negative. Sorted by value, the defaults as of the September 18 synchronisation read as follows.

Predicted actionParameterDefault
Share via copy linkShareViaCopyLinkWeight20.0
ReplyReplyWeight5.0
QuoteQuoteWeight5.0
Share via direct messageShareViaDmWeight5.0
Follow authorFollowAuthorWeight4.0
Share (generic)ShareWeight2.0
RepostRetweetWeight1.0
LikeFavoriteWeight0.5
ClickClickWeight0.4
Open linkOpenLinkWeight0.2
Video openVideoOpenWeight0.07
DwellDwellWeight0.05
Photo expandPhotoExpandWeight0.05
Quoted post clickQuotedClickWeight0.05
Continuous dwell timeContDwellTimeWeight0.004
Profile click, video quality view, quoted video quality view, click dwell time, active secondsFive separate parameters0.0
Not dwelledNotDwelledWeight-0.02
Block authorBlockAuthorWeight-31.2
Not interestedNotInterestedWeight-43.2
Mute authorMuteAuthorWeight-58.8
ReportReportWeight-234.0

Three further values modify the picture. BidirectionalFollowReplyWeightBoost is set at 15.0 and, by its name, applies to replies where viewer and author follow each other; its dwell counterpart sits at 0.0. A term called PostUnexploredWeight stands at 0.02, and a companion flag restricts it to in-network posts. A parameter for randomly perturbing the weights, WeightPerturbationSigma, is 0.0.

Several readings stand out before any interpretation is attempted. A profile click contributes nothing. Neither does a video quality view. Muting an author carries a heavier negative weight than blocking one. And the largest weight by absolute value is the one attached to a report.

How the score is assembled

According to the README, the Phoenix model reads a viewer's recent engagement history and predicts, for each candidate post, how likely that viewer is to take each action. A component called RankingScorer then combines those predictions using the formula Final Score = Σ (weight_i × P(action_i)). The arithmetic itself lives in home-mixer/scorers/ranking_scorer.rs, a file not among the documents reviewed for this article.

The README sorts the predicted actions into five families. Engagement covers favourite, reply, repost, quote, share, share via DM and share via copy link. Clicks covers the post, the profile, a link, a photo expand, a video open and a quoted post. Attention covers video quality view, dwell, dwell time, click dwell time and active seconds. Author covers following the author, while Negative covers not interested, mute author, block author, report and not dwelled. That makes 24 actions. When the repository first appeared, the documentation listed 15 prediction types, and an analysis of the model code the same day counted 19.

The Attention label invites confusion with the attention metrics that measurement vendors sell to advertisers. Here the values are predictions about organic posts, used to order a timeline, and not measurements of whether an ad was seen.

The most consequential passage in param.rs is a comment block placed directly above the weights. "These weights reflect a combination of how much an action is valued in ranking and typical propensities of these actions across the X network," it reads, citing negative feedback as an example of a rare action. The same comment states that "the weights do not multiply raw engagement counts." A weight, in other words, is not a pure statement of how much X values an action. It is partly a correction for how seldom that action happens.

The report weight is the worked example. According to the comment, "the baseline probability of a Report is more than 1000x lower than a Like, so it's weighted more to allow the prediction to affect the final ranking at all." Dividing 234 by 0.5 produces the ratio of 468 that has circulated as the claim that one report cancels 468 likes. The comment names that sentence and calls the reading incorrect "because the weights apply to the predicted probabilities rather than raw counts." Taking X's own figures at face value, the arithmetic runs the other way. If a report is at least 1,000 times less likely than a like, then 234 times that smaller probability yields, on average, a term less than half the size of the like term, pulling in the opposite direction.

X added the explanation in August. According to the README, "We've added comments to the code so that LLMs or people reading it are more likely to understand it correctly." The first readers named are machines.

The comment block also addresses coordinated reporting. Predictions are personalised, so, according to the code, "reports from bad actors will primarily affect recommendations for users who are similar to the bad actors" rather than moving a post equally for everyone. Engagement counts, the comment continues, only when it happens on a post served in the Home Timeline. "Directly navigating to a post (i.e., coordinating via groupchat) has no ranking impact."

Seven months without values

Elon Musk committed on January 10, 2026 to open-source the new algorithm within seven days, including code for organic and advertising recommendations, and to repeat the exercise every four weeks with developer notes. The repository went live on January 20. PPC Land recorded at the time that the documentation did not specify the exact weight values applied to each prediction type, that the repository held a single commit, and that it contained no documentation on how sponsored content is ranked. Another reading, on January 25, described the constants as redacted.

According to MemRa, an app whose analysis of the file is discussed below, the January code referred to each weight by name in a file called weighted_scorer.rs, the share via copy link included, while the file defining their values did not exist. Anyone reading the code between January and August could see which signals counted. Nobody outside X could see what they were worth.

The README now carries a dated notes section with three entries. The August 13 entry lists the additions: key configuration parameters, including the weights used to blend predicted action values into a score; code for systems that decide whether a post is filtered from the For You feed; and the code used to train the models the feed relies on, replacing an earlier demonstration model, with synthetic data generation for a proof-of-concept training run. The August 14 entry adds the explanation of how weights work and a filter for Brazil's 2026 elections. The September 18 entry extends a transparency report, covered further below.

The values have already moved once. According to MemRa, which says it checked its table against the source on August 28, X updated the file on August 26 and the dwell weight rose from 0.0 to 0.05. The September 18 synchronisation still shows 0.05.

When the GitHub pages were captured, the repository counted 32 commits on one branch, no tags and no published releases, with 33.3k stars, 5.4k forks, 36 open issues and 76 pull requests. Its code is 36.4 percent Rust, 32.5 percent Python, 22 percent Scala and 7 percent Java, published under the Apache 2.0 licence.

Two repositories, two sets of figures

X, then still Twitter, open-sourced a ranking system once before, in the twitter/the-algorithm-ml repository in 2023. That model, known as the Heavy Ranker, carried its own weights. According to that repository's README, dated April 5, 2023, they were 0.5 for a favourite, 1.0 for a retweet, 13.5 for a reply, 12.0 for a good profile click, 0.005 for watching half of a video, 75.0 for a reply the author then engaged with, 11.0 and 10.0 for two variants of a good click, -74.0 for negative feedback and -369.0 for a report. The same README said the weights had first been set so that each weighted probability contributed a roughly equal amount to the score on average, and had since been adjusted to optimise platform metrics.

Most of the figures still repeated in online write-ups trace to that list, according to MemRa, presented as though they described the current feed. Its write-up decodes several. Claims that replies count 13.5 times, profile clicks 12 times and link clicks 11 times are the 2023 values, unchanged. A claim that bookmarks count 10 times is, according to MemRa, a misreading of good_click_v2, which meant clicking into a conversation and staying for at least two minutes; bookmarks carry no weight in either version. The claim that a reply is worth 27 likes is 13.5 divided by 0.5, a ratio between two 2023 weights rather than a weight. A claim that retweets count 20 times appears in neither repository, MemRa says, since a repost is weighted 1.0 in both. Its rule of thumb is blunt: "if a breakdown does not mention sharing by copy link, it is describing the old one."

MemRa's own 2023 table, however, lists eight of those ten values. It omits the video weight of 0.005 and the negative-feedback weight of -74.0, and the second omission bears directly on any comparison with the current negative weights.

Set side by side, with the caveat that two different models are being compared, the shifts are large. The plain reply weight fell from 13.5 to 5.0. The report weight moved from -369.0 to -234.0. The single 2023 negative-feedback value, which covered requests to see a post or author less often as well as blocks and mutes, has been split into three: not interested at -43.2, block at -31.2 and mute at -58.8. Profile clicks went from 12.0 to zero, although the 2023 signal counted only a profile visit followed by a like or a reply. No form of sharing appeared among the 2023 weights at all.

Because the 2023 README described weights set to equalise average contributions, and the 2026 comment describes weights that blend value with propensity, reading either list as a straight ranking of importance runs into the same objection.

What the MemRa analysis adds, and where it goes further than the code

MemRa is operated by Dostum Amigo SL, a company with an address in Puerto del Carmen, Tías, Spain. The app keeps videos people save so they can be found later by asking what they were about, and saving to it works by copying a link. The company states its interest openly: the action its app depends on, it says, turns out to be the one the ranker values most. MemRa drew PPC Land's attention to the published values on September 14, 2026, referring back to the January coverage.

Its central claim is that X's system is tuned to promote content people are expected to copy and send on. Does the code bear that out? Only in part. ShareViaCopyLinkWeight is the highest single action value in the file, and the README places the action within the Engagement family. But X's comment says every weight blends value with the typical propensity of an action. A weight of 20.0 is consistent with an action X prizes, with an action that is rare, or with both. X has published no baseline rates that would separate the two.

A second complication sits in MemRa's own table, which lists a reply where the author follows the viewer back at "5.0 + 15.0". Added together, that is 20.0, level with ShareViaCopyLinkWeight. Whether the 15.0 boost is added, multiplied or applied in some other way depends on ranking_scorer.rs, and neither the README nor param.rs says. The statement that sharing by copied link stands alone at the top therefore rests on how that boost works.

The MemRa table also leaves out three of the five negative weights: not interested, block and mute. The missing values range from -31.2 to -58.8, which makes them hard to ignore in any account of what pushes a post down. MemRa further states that X is the only large platform to have published its actual numbers, and describes Instagram and TikTok as pointing in a similar direction on sharing without published values.

After the weighted sum

The weighted sum is only the first step. According to the README, three adjustments follow. Author diversitymultiplies each post after an author's first by a decaying factor, down to a floor, and the defaults set that decay at 0.5 and the floor at 0.25. An out-of-network discount multiplies posts from accounts the viewer does not follow by a factor below one, and does the same to replies and reposts from followed accounts. OonWeightFactor is 0.75, with a separate factor of 0.5 for topic-based out-of-network posts. A new-author boost lifts posts from authors whose impressions fall below a threshold toward a target position.

The cold-start parameters behind that boost are specific. The impression threshold is 1,000 and a follower cap is also 1,000, while eligible posts can be no older than 172,800 seconds, or 48 hours. Slot parameters are set at 15 and 16, and a maximum position ratio for low-impression posts at 0.85. A Thompson sampling variant of the boost exists in the configuration but is switched off. The README does not say how these values translate into positions on a screen.

A reranking service, vm-ranker, then reorders the scored posts using what the README describes as a determinantal point process over their embeddings, "giving up a little score for less similarity between neighbours." Its default theta is 0.65 and its maximum selected rank 150.

Upstream, candidate volumes are capped at 1,000 posts from Phoenix retrieval and 1,200 from Thunder, the in-network store of recent posts from followed accounts. A third source, TweetMixer, has a limit of 800 but is disabled; SimClusters, which clusters accounts and posts by who engages with what, is enabled. Maximum sequence lengths for scoring and retrieval are both 1,024. Before scoring, 17 filters remove, among other things, posts older than 48 hours, the viewer's own posts, posts from blocked or muted accounts and posts matching muted keywords.

Where the ads go

For advertisers, the most practical passage in the README concerns what the ranking model does not touch. Two pipelines build the feed. The Post Pipeline finds, ranks and filters posts. The Blending Pipeline wraps it and adds what the model does not rank: ads, Who to Follow recommendations and prompts. A component called BlenderSelector interleaves them. "The default ads blender reorders posts for ad adjacency," the README states, while Who to Follow modules and prompts go at fixed positions.

The configuration names that default blender "multi_risk". A set of timing parameters sits beside it: AdsTimeGapTSec at 4.0, a lower clamp of 0.5, an upper clamp of 2.0 and AdsTimeGapMinOrganicGap at 3. The names point to spacing between ads, the variable that sets ad load in a scrolling feed, but neither file documents their exact semantics. An experiment flag for a second version of an ads brand-safety verdict is off, as is a parameter called EnableAdAdjacentServedFilter. Ad injection logging is on.

What does that settle? Part of a question left open in January. Musk's commitment covered code determining which advertising posts are recommended, and the January release said nothing about sponsored content. The files now show how ads are placed among ranked posts, and that adjacency is a factor in that placement. They do not show how ads are selected, priced or auctioned.

The adjacency detail lands in a particular commercial setting. X's annual advertising revenue fell from 2.43 billion dollars in 2021 to an estimated 1.25 billion dollars in 2025, according to eMarketer projections cited in coverage of X's Brand Suitability Playbook, which described Grok being used to score the posts that appear next to ad placements. X began a phased rollout of a rebuilt Ads Manager in April 2026, and on July 29, 2026 the World Federation of Advertisers settled X's suit over GARM, agreeing not to form or restart that initiative or anything similar. Buyers assessing brand suitabilityon X can now see, in code, that the default blender reorders organic posts around ads for adjacency. What they cannot see is how that risk is scored.

Labels, filters and the Under the Hood report

Ranking and eligibility are handled by separate systems. "Ranking decides the order. Visibility filtering decides whether a post can be shown at all," according to the README. The August 13 release added the code for the second of those, visibility-filtering, which answers for each post and viewer with one of three outcomes: ALLOWINTERSTITIAL, meaning the post sits behind a screen the viewer can tap through, for instance for adult or graphic media, or DROP. "The first rule that answers drop ends the evaluation." A further set of rules applies only to recommendations from accounts the viewer does not follow, and those rules can only drop. The README gives spam caught at high recall as an example and notes that the same post is allowed to a follower.

The labels those rules read come from a separate path. Among the systems published in August are grox, which runs classifiers for spam, adult content and violent media as posts are published; agatha, offline jobs that label an account from blocks, reports and spam reports relative to favourites; user-cred-v2, which runs PageRank over the follow graph and engagement edges to produce a per-account score; and abuse-enforcement-service, which can label, challenge or suspend an account on the strength of model scores. For accounts that attract negative reactions, the effect compounds. Those reactions enter ranking as predicted probabilities and, aggregated over time, can become account-level labels that visibility filtering reads.

X frames the release in terms of accountability. "We believe transparency is important for trust," the README states, adding that the aim is for the public to be able to audit, critique or help improve the system. Not everything is public, though. According to the README, the Grox prompts, the specific LLM prompts used in that classifier service, are withheld, as are some botmaker rules. "To reduce the risk of gaming to circumvent these systems, some rules aren't currently in this repository." In their place X is piloting Under the Hood, a tool that shows people aggregate statistics about visibility-limiting labels on their own account and posts. The September 18 update extends those reports to show whether visibility was limited to comply with law, including whether a post was withheld in a country following a legal demand, and which country.

One jurisdiction already appears by name in the code. According to the README, For You now runs a filter called Brazil2026ElectionFilter, which removes posts from accounts reported to Brazil's Electoral Court for the 2026 election unless the viewer explicitly follows the account. The account list was updated on August 27, 2026.

Signals switched on by default

The configuration also records which inputs a request draws in. Flags for hydrating a viewer's inferred gender and a viewer's installed apps are set to true, as is a parameter named EnableIpFeature whose configuration key refers to geo features. Context features are on, and so are both explicit and implicit engagement signals, capped at 15 per type. A second version of the installed-apps hydration is off, as is a mutual-follow similarity feature. The documents reviewed do not describe where the installed-apps or inferred-gender data comes from, or whether the same defaults apply in every jurisdiction.

What the published numbers change

The January release left marketers with a documented blind spot. PPC Land's analysis at the time said the absence of weight values created strategic uncertainty for anyone planning content on X. That blind spot is now narrower. It has not closed. The values are defaults, the README says X regularly runs experiments on a small percentage of timeline traffic, and its stated aim is only for experiments at a notable share of traffic, 10 percent or more, to show up in the repository. Smaller tests need not appear.

Links show how quickly the picture can shift. In January, an analysis of the model code found no prediction for external link clicks among 19 action types and cited a test in which posts carrying links drew 94 percent fewer views. In July, Musk said X had not penalised linked posts for over a year. The current README lists link clicks among the predicted actions, and param.rs weights opening a link at 0.2, positive but below a like. Sharing via copy link, at 20.0, concerns the address of the X post itself. How the two interact in practice is a question the weights alone cannot settle, for the reasons X's own comment gives.

Other platforms have said less. YouTube's senior director of growth and discovery, Todd Beaupré, told creators in an interview published on September 1, 2026 that ranking weights shift by device and by moment, without putting figures on them. The mechanics of feed ranking have also started to carry legal weight in Europe. On September 16, 2026, a Frankfurt court held that Meta's ad auction and feed algorithms give it control over what users see, removing its hosting protection under the Digital Services Act. That judgment is not final and did not concern X. X's repository, meanwhile, now sets out its own distribution logic in public, parameter by parameter.

How long any of these numbers will hold is another matter. MemRa describes undated accounts of the weights, its own included, as possibly stale. The first line of param.rs carries a timestamp for the same reason.

Timeline

Summary

Who: X, through its xai-org GitHub organisation, published the ranking configuration for its For You feed. MemRa, an app operated by Spain's Dostum Amigo SL, analysed the file and brought it to PPC Land's attention. Advertisers, publishers, creators and brand accounts on X are the parties most directly affected.

What: The file home-mixer/params/param.rs sets 25 action weights that multiply the Phoenix model's predicted probabilities. Sharing via copy link carries the highest positive action weight at 20.0, while reply, quote and share via DM carry 5.0 each and a like 0.5. Report stands at -234.0, mute at -58.8, not interested at -43.2 and block at -31.2. The same release added visibility filtering, labelling systems, an ads blending configuration and a code comment warning that weight ratios are not count equivalences.

When: The weights were added on August 13, 2026, with an explanatory note on August 14. MemRa reports a dwell weight change on August 26. The file was last synchronised with production defaults at 16:21:20 UTC on September 18, 2026, the date of the most recent README update.

Where: In the public xai-org/x-algorithm repository on GitHub, published under the Apache 2.0 licence, governing the For You timeline on X globally, with a Brazil-specific election filter and country-level legal withholding now reported through the Under the Hood tool.

Why: The January 2026 release showed which signals X's ranker predicts but not what each was worth, leaving marketers and creators to rely on 2023 figures from a different model. The published defaults fill that gap, although X's own comments say the weights blend value with how rare an action is, that they apply to probabilities rather than counts, and that production values can change through configuration at any time.