EDITION 005

The Weights Are Public. Most of the Takes About Them Aren't Right.

Two weeks after X open-sourced its ranking code, the most widely shared number from it is a misreading. What the file actually supports, what it withholds, and what still holds up.

Filip Stefanovski6 min read
A single clearly-sourced figure on the left, retold through progressively dimmer and more distorted copies until the last one is wrong.

Last week I went through the ranking weights X published and flagged one caveat at the end. That caveat has turned into the story. Two weeks after the code went up, the number travelling furthest from it is one the file doesn't actually support, and watching it spread has been a better lesson than the weights themselves.

Where "a report costs you 468 likes" comes from

You've probably seen some version of it. Report is weighted -234. A like is 0.5. Divide one by the other and you get 468, so a single report supposedly wipes out 468 likes. It's a clean, quotable, screenshot-friendly number. It's also a category error.

The repository says plainly that the weights scale predicted probabilities, not raw engagement counts. The model isn't tallying the likes a post received and subtracting for reports. For each viewer, it estimates the chance that person replies, shares, mutes, reports, then multiplies each estimate by its weight and sums them. Nothing in that loop counts what already happened to your post.

So the -234 isn't a penalty applied after a report. It's how heavily the system weighs the probability that showing you this post produces one. For an ordinary post that probability is tiny, and a tiny number times a big number is still small. The arithmetic that makes 468 requires treating a probability as an event, which is the one thing the file tells you not to do.

The general shape of the mistake is worth keeping: a real document got published, someone did plausible-looking maths on it, and the maths spread faster than the document. Almost everyone repeating the number has not opened the file. Neither had I, until I did.

There is no single score attached to your post

The second misreading follows from the first. People are talking about the weights as if every post carries one number that determines its fate. It doesn't. Scoring happens per candidate post per viewer, which means the same post is scored differently for every person it might reach.

This kills a specific fear I've seen a lot this month, that a coordinated group can mass-report you into oblivion. Recommendations are personalised, and an action can only be predicted for someone the timeline was going to show the post to in the first place. A brigade doesn't apply a global debuff, because there is no global number for it to apply one to.

It also means the honest answer to "why did this post do badly" is usually boring: it was scored against many different people, and for most of them the model guessed they wouldn't reply.

What the release doesn't include

The code is real, but it isn't everything, and it's worth being clear-eyed about the gap. The prompts behind the Grok-based classifiers that judge posts for spam and rule violations were deliberately held back, on the reasoning that publishing them would make the system straightforward to game. That's a defensible call. It also means the layer deciding whether your post is eligible to be recommended is still closed, while the layer deciding how to rank it is open.

This critique isn't new. When X open-sourced an earlier version of this code back in January, researchers told Engadget that published code without the trained models or the training data gives you the pretense of transparency more than the substance of it. Cornell's John Thickstun made the sharper version of the point: once ranking runs through neural networks, the behaviour is partly out of view of the engineers who built it, never mind the public reading the repo. The August release is more than January's. It doesn't resolve that.

What survives all the caveats

You can't do arithmetic with the weights. You can absolutely read their direction, and the direction is unambiguous:

  • Conversation is weighted far above approval. Replies over likes, by an order of magnitude.
  • Private forwarding is weighted at the very top. Someone sending your post to one person counts for more than a public repost by a wide margin.
  • Passive signals are close to worthless. Clicks, link opens, media expands, bookmarks sit at or near zero.
  • Negative signals outweigh positive ones heavily. Being actively unwanted costs more than being wanted gains.

None of that requires trusting a decimal place. It's the ranking of the ranking, and it lines up with what I was noticing before any of it was public, which is the main reason I believe it.

What I'd test going into September

  • Write for the reply, not the like. Post something a person who follows you would have an actual answer to, rather than something they'd agree with and scroll past.
  • Stop asking engagement-bait questions. They target the same weight, badly. A question with nothing at stake reads as a request for a favour, and people have got fast at spotting it.
  • Notice which posts you personally send to one friend this week, and what they have in common. That's the copy-link weight, observed from the inside.
  • Ignore anyone confidently quoting a single number from this release without linking the file.

Transparency didn't make this easier, it made it more specific

I expected the code drop to settle arguments. Mostly it's produced new and more confident ones, because a real document is much better raw material for a bad take than pure speculation was. Two weeks in, the accounts sounding most certain about the algorithm are once again the ones you should trust least, which is roughly where we started.

What hasn't moved: the weights describe predictions about whether a human will do something. Every one of them ultimately routes through a person deciding your post is worth a reply, or worth sending to a friend. There's no configuration file that gets you that.

We build Aminta on the assumption that sounding like a specific person is the durable part, and everything published this month made me more comfortable with that bet, not less. Learn someone's actual writing, keep their rules, don't flatten them into the average of the feed. That was the plan before there were numbers and it's the plan now.

Meet Aminta, your X companion.

Write posts and replies in your own voice, directly inside X. Free to start.

See how it works

Filip Stefanovski

Building Aminta.