Story
Ethics & methods
What we will and won't publish about real people, and how to check our work.
EdgeStories is about the data between people. That data is about people, which means every piece here carries the risk of doing something to someone who never agreed to be studied. This page is the standing answer to what we do about that. It is not a disclaimer. It's a set of rules we wrote down before we needed them, because rules written at publication time are just permission slips.
Public is not the same as fair game
Almost everything we use is technically public. Follow records, blocks, co-authorships, commit histories, edit logs — all of it is readable by anyone with a URL. That establishes we can look. It does not establish we should publish.
The test we apply is not "is this public?" but "did this person do this thing publicly, on purpose, in a way they'd recognise?" A maintainer's review history is public work, done publicly, by someone acting in a public role. Someone quietly unfollowing an ex is a public record of a private act. Same access, different thing entirely.
Named, aggregated, or not at all
Every subject falls into one of three buckets, and the bucket is decided before the analysis starts, not after we see the result.
Nameable. Public figures acting in public roles, where the behaviour under discussion is the public role. A senior scientist whose paper was retracted. A maintainer who reviews a thousand PRs a year. A person with a large audience who repeatedly and deliberately picks fights in front of it.
Aggregate only. Everyone else, always. We report rates, structures, distributions, and cascades. We do not report dyads. "Blocks are 4× more asymmetric than follows" is a finding. "X blocks Y" is a personal attack with our byline on it, and there is no version of the second one that is worth publishing.
Off limits. Private individuals in hostile contexts, full stop. Junior researchers who happened to co-author with someone who committed fraud. The target of a pile-on. Anyone whose inclusion would make them easier to harass.
If a piece can't be told without violating this, the piece doesn't run. That has already cost us ideas and it will cost us more.
Things we will never build
- A lookup tool for hostile data. No "who blocks me," no "who unfollowed you," no searchable interface over anyone's negative space. The data exists and we use it in aggregate; making it queryable per-person builds a harassment feature and calls it journalism.
- A model we know is wrong, shipped as entertainment. If we can't do the honest version, we don't do a dishonest one with a wink.
- Numbers we didn't measure. No illustrative statistics, no rounded-up counts, no "10M+" on a marketing page. Every number on this site is one we can show our work for.
How to check our work
Methods are published with the piece. Sources, queries, sample sizes, and the code where we can share it.
Caveats are in the piece, not the footnotes. If a result only holds for one platform's users, the piece says so where you'll read it. Bluesky's population is not the world's; findings drawn from it are findings about Bluesky until replicated somewhere else, and we say that every time rather than hoping you assume it.
Truncation is disclosed. Many of these datasets are too large to read completely, so we cap them. Any capped result says what was capped and how much was left. A number computed from the first ten thousand rows will never be presented as a number about everyone.
LLMs get used, and get named. Some pieces use models to classify or summarise text at a scale a person can't read. Where that happens, we say so, we say what the model was asked, and we hand-check a sample. Model output is treated as a claim about text that a human verified — never as a finding on its own.
Errors get fixed in public. Corrections are appended to the piece with the date and what changed. Nothing gets quietly edited.
Right of reply
If you're named in a piece here, you can reach us before and after publication. Where we name someone for something unflattering, we contact them first and their response goes in the piece. If we get something wrong about you, tell us and we'll correct it.
If you're in one of our datasets and don't want to be, say so. For anything aggregate the answer is usually that you're already anonymous. Where you're not, we'll take you out.