Every number in this document should be checkable, or labelled as not checkable. This section says which, and how. It is short on purpose: a method note long enough to hide in is not a method note.
Public sources
MEASURED All read-only, none authenticated: openrouter.ai and its robots.txt,
sitemap.xml, llms.txt, llms-full.txt and per-model variants; the OpenRouter and Stripe
newsrooms; jobs.ashbyhq.com/openrouter and its public posting API; lu.ma/openrouter; Hacker
News; and the public sites of the conferences named in the context section. Nothing was scraped
behind a login, and nothing was fetched that a crawler could not fetch.
MEASURED Both job postings this document argues from — Director, Growth Marketing and Director, Channel Partnerships — were taken from that public posting API and kept verbatim, rather than transcribed from a rendered page. Every quotation of either posting on this site is checked against those copies. That is not fussiness: an earlier draft quoted the positioning sentence with two connecting words missing, which is the kind of error that is invisible until somebody who wrote the sentence reads it back.
The Discord
MEASURED The community counts come from reading the rendered contents of channels as an ordinary member of the server. No API calls, no automation run against the platform, nothing written, joined or posted. Author identities were hashed or discarded at capture.
MEASURED The counts therefore describe patterns and not people. No individual is named, characterised or counted in this document, and no quotation here is attributed to a person — the one quotation from the server is the company speaking in its own voice.
The choices that could have gone the other way
MEASURED Where a count could be distorted by how a channel renders — virtualised lists, thread cards that under- and over-report their own reply counts, threads too young to judge — the census was taken in full rather than sampled, and young threads were excluded rather than counted as unanswered.
INFERRED Excluding young threads moves every response-rate figure here in the direction least favourable to my own argument, which is why I made that choice rather than the convenient one. A silence metric that counts a two-hour-old thread as abandoned will always find the neglect it was built to find.
MEASURED Reaction counts in the announcement corpus were normalised within year before being compared, because the yearly medians rise across the corpus and a corpus-wide median is not a valid yardstick against an early post.
What this method cannot support
PLATFORM FACT Discord sits behind authentication. Nothing counted there is crawlable or indexed — which is both the reason the community’s knowledge never reaches an answer engine and the reason these particular counts cannot be re-run by anyone outside the server.
UNKNOWN Anything internal. Conversion rates, revenue, retention, spend, the
warehouse’s join keys, and every product decision that produced a surface I only observed from
outside. Where a claim in this document depends on one of those, it is graded UNKNOWN and named
rather than estimated.
INFERRED The weakest class of claim I make is absence — that something is missing. Absence is not observable; only a failed search is. Four of the hypotheses recorded in What I got wrong were absence claims, and two of those four failed because I searched using my own vocabulary rather than yours; the other two failed more simply, because I was wrong about what existed. The findings I would defend hardest are the reachability ones, where something demonstrably exists and demonstrably cannot be got to, because that is checkable in both directions.