"Your top fan list" is theater - what a measured tier actually shows
Why any 'most engaged followers' list you see anywhere is a narrow snapshot computed by unknown rules, and what transparent, per-person exchange measurement looks like instead - on your own device.
A "top fans" or "most interacted" list is a snapshot computed from a window
you didn't choose, by a rule you can't see, usually to make you open the app
again. Your export supports the opposite: per-person exchange measured from
sender-tagged message rows and graph sets, over cutoffs the code publishes,
in a directory you can sort any way you like - with the thresholds printed
next to the label so the tier can be checked instead of believed.
"Your top fans" is one of the most seductive interfaces in social software:
a short list of names that flatters you, ranks people you know against each
other, and invites the next move - check profiles, send messages, post again.
It is also, at every layer, an artifact: a particular window, a particular
definition of "engagement", a particular purpose (yours is to keep you
engaged), and no way for the person being ranked to inspect any of it.
Theatre is not the same as lying. The names on such a list may well be people
who interacted with you. The performance is the authority the list projects -
a verdict that looks measured while being unauditable.
What any fan list is made of
Strip the label and every version of this list has four hidden choices:
- The window. Last 30 days? Last engagement ever? Since you opened the
business dashboard? Change the window and the list changes; the interface
rarely tells you which one produced today's ranking. - The currency. Reactions weighted more than views? Comments more than
taps? Story replies? Each platform (and each third-party tool) picks its
own exchange rate, and none of them publish it. - The denominator. Top of whom? Followers-only? Everyone who saw you?
Lists measured against tiny pools look dramatic.
- The purpose. A list that made you feel finished would be a failure by
its designer's metrics. These lists are built to prompt the next action,
which means they are built to highlight what's missing as much as what's
there.
Psychology supplies the hook: people are drawn to social ranking because
rankings compress identity into one legible number (or short list), and
legibility feels like knowledge.1 The discomfort when your name
isn't on someone's list - or when a low-rank reading appears - shows the same
mechanism running in reverse. Any system that hands out flattery by ranking
is also handing out anxiety by ranking.
The measured alternative: a tier you can audit
What your own archive supports is structurally different. Not nicer feelings -
inspectable arithmetic:
- Inputs are visible rows. The engagement tier per person is computed from
message exchange (sender tags, timestamps), graph sets (who follows whom,
close friends, favorites) and activity presence - every input a file you
can open in a text editor.2 - **Thresholds are published, in the code and in the post that documents
them.*
core >= 60,active >= 35,casual >= 15, otherwisedormant;at-riskwhen the score is at least 35 and their recent reply rate fell
below 30% of their prior rate and* it has been over 21 days since their
last reply.2 No secret currency, no unannounced window: 60 and 35 are
numbers you can argue with. - The window is stated, not implied. Recent-versus-prior rate comparisons
use declared windows (the last 60 days against the 120 before them); the
strength side uses declared staleness cutoffs of 180 and 365 days.3 - Ranking is your choice, not the interface's. The accounts directory
sorts by any column - searches, messages, last exchange, tier - and filters
by relationship state. The default order is a reading order, not a
leaderboard, and nothing rolls a person's rows into a public-facing badge. - It never leaves the device. The tier is computed inside your browser
from your ZIP; there is no server that knows who your core people are,
and no counter that exists to tempt you into checking.4
Why flattery-by-list fails even on its own terms
- It mistakes volume for regard. The loudest interactors are not
necessarily the most attached - spam-like engagement patterns and genuine
intimacy look identical in a window short enough.2 - It collapses direction. Someone who watches every story and never
replies is a fan by one currency and invisible by another; the
parasocial post covers why direction has to be shown as two columns, never
summed into one.6 - It is unfalsifiable from outside. You can never check the window, the
weights or the denominator - which is precisely why the list's authority
can't be audited, and why the anxious part of the mind treats each reshuffle
as meaningful news.
The archive's version fails differently and therefore better: if you disagree
with your tier assignment, you can open the rows and see exactly which inputs
produced it. Disagreement with a fan list can only be felt; disagreement with
a threshold can be demonstrated.
Does this app show me who my biggest fans are?
It shows who you exchange with: per-person message balance, reply rates,
recency, graph state, search counts - sortable and filterable in the accounts
directory, with published thresholds behind each tier. It pointedly does not
produce a single ranked "top fans" list, because ranking people for flattery
requires exchange rates and windows the file can't defend, and because the
composite version of it is exactly the score the decision ledger bans.
What does 'at-risk' mean on a person's card?
Three measured conditions over their message rows: engagement score at least
35, their reply rate in the last 60 days below 30% of their rate in the 120
days before that, and more than 21 days since their last reply. All past
tense, all from timestamps - it describes a drop that already happened, not a
prediction of what happens next.
Can I see a list of people who engage with me but that I don't follow?
Yes - that's the silent-fan population on the strength side: accounts that
follow you where you don't follow back.7 It's a set, not a ranking:
no ordering is applied by default, and the directory lets you sort it however
you like, or not look at it at all.
Why should I trust tiers from this app more than a platform's fan list?
Not because this app is nicer - because it's inspectable. The inputs (your
message rows and connection lists), the thresholds (60/35/15, the at-risk
rule, 180/365-day cutoffs) and the computation (all in your browser) are each
checkable against the file. A platform list offers none of the three. Trust
the version you can open.
Related reading
The counts post for how every metric in the product is derived and disclosed;
the follow-doesn't-mean-care post for the graph-versus-evidence layering that
underlies any tier; the quantified-self post for why no score of you ever
appears next to these labels.
1: Scott, J. - Seeing Like a State (1998) on legibility as a
prerequisite for institutional control of complex social facts; cited here as
framing for why ranking compresses identity into readable outputs.
2: packages/shared/src/analytics/engagement-intel.ts:149-176 -
recent (60d) vs prior (120d) reply-rate windows, balance from sender-tagged
counts, tier thresholds core >= 60, active >= 35, casual >= 15, elsedormant, and the three-part at-risk rule.
3: packages/shared/src/analytics/relationship-insights.ts:10-12 -STALE_DAYS = 180, VERY_STALE_DAYS = 365.
5: The decision ledger D5 ban on composite scores, documented incontent/blogs/2026-10-07-the-parts-we-refused-to-build.md section 5.
4: SECURITY.md section 1 - analysis engine makes zero network calls;packages/shared/src contains no fetch, XMLHttpRequest or sockets.
6: content/blogs/2026-10-08-parasocial-imbalance-who-watches-back.md -
directional attention shown as two columns, never summed.
7: packages/shared/src/analytics/relationship-insights.ts:39 -if (!following && followed) return 'silent-fan'; population collected atrelationship-insights.ts:312.
Footnotes
- legibility
- intel
- stale
- local
- d5
- para
- silent