The question
Not how is this streamer doing — plenty of tools answer that. Chatspike asks how is the internet reacting to this thing, right now, where the thing is a release rather than a person. So it watches many channels at once and reports the audience in aggregate. A single streamer going loud is that streamer's news; everyone going loud at the same moment is the release's.
What it counts
Every message in a watched channel, bucketed by minute. It never stores message text or usernames — only counts, the emotes used, and whether a message mentioned one of the target's keywords. Usernames are hashed in memory to count distinct people and are never written down.
Channels are picked two ways: a hand-written seed list, and live discovery of streams either in the target's own category or whose title matches a phrase specific enough to mean this release and not the franchise it belongs to.
Distinct people never add up
One person in three streams is one person, and someone who speaks in two different minutes is not two people. So the counters for ten seconds, one minute and one hour are all kept at the same time rather than derived from each other. Summing the narrow ones would have overstated a real minute by 53% when measured against live data.
A moment
A spike loud enough and long enough to be worth remembering: at least 3× the median of the preceding half hour, at least 50 messages a minute, sustained for at least two minutes. The multipliers are not guesses — measured across live data, the 90th percentile is about 1.6× and the 99th about 6.8×, so 3× is genuinely rare. Lowering it produces noise, not moments.
Moments are kept forever, and each one stores its own context — who was loudest, what was being said, how it felt — because the minute-by-minute data behind it is deleted after thirty days.
On topic, and when we refuse to say
A chart of chat volume in watched channels is not the same as a chart of chat about the target. So each moment reports what share of messages actually mentioned the release, measured against how that target normally runs.
Two decisions matter here. First, the denominator is messages that carried any words, not all messages — during an emote wall nobody can type a keyword, and scoring that as "off topic" would discard the loudest reactions, which is exactly when streamers turn emote-only mode on. When that happens the page says emote wall · unmeasurable rather than a number, because that is the honest answer.
Second, only words that identify the release count as evidence. gta 6 and
rockstar do; bare gta does not, because it matches GTA V, GTA RP
and GTA Online just as happily — measured before this change, it was
67% of everything being counted as on-topic. Words like
trailer and pull are charted but never counted as evidence:
every game has a trailer and every raid has a pull.
There is no sentiment score, and there never will be
A single number claiming chat was 0.62 positive is a confidence the data does not
support. What chat does have is a vocabulary: LUL is amusement,
Kappa is sarcasm, monkaS is anxiety. So a moment reports a
composition — mostly amusement, some shock — plus a count of what could not be
read at all. A description the data supports, never a score it does not.
Where this is wrong today
These are known, unfixed, and worth knowing before you trust a number on the dashboard.
- Most emotes are invisible. Twitch only tags its own emotes, so BTTV and 7TV emotes are read as ordinary words. Much of the emotional vocabulary lives there — every emote in the anxiety class is third-party, which makes anxiety currently unmeasurable rather than merely rare. The affect breakdown is therefore biased toward the feelings that happen to have a Twitch-native emote.
- A large channel can carry a spike on its own. Detection runs on the summed velocity across channels, and one very large stream going live can clear the threshold without anyone else reacting. Those are recorded as moments today, and are not yet labelled as such.
- The term list is dominated by whoever is biggest. Terms are ranked by raw count, so a single huge chat's channel emotes outrank words that many channels used.
- Nothing is backfilled. Chat cannot be recovered after the fact. A target added today has no history, and an event we were not watching for is gone.
What it cannot tell you
It cannot tell you why chat reacted. It records that a spike happened, how big it was, who was loudest and what words and emotes were in the air. Whether that was a trailer, a leak, or something happening on that streamer's own screen is an inference, and one the data does not make on your behalf. Where a cause is known, it is marked on the chart as an annotation — a fact with a timestamp, written down by a person, not a guess produced by the tool.