Skip to content

Numbers module

The Numbers module turns your Twitch events into stream-by-stream analytics. It starts with the core counts — follows, subscriptions, resubs, gifted subs, bits, tips, sub points, hype trains, raids and charity donations — and layers on deeper intelligence: where your viewers come from, how raids convert, the journey from first view to loyal sub, when and in what context people convert, which broadcasts do better, and how your subscriber base grows and retains. The same data drives goals, streaks, overlay widgets and the “Ask about your data” assistant.

Available on the Free tier and above. See Module access by tier. Two things depend on your tier: how long named records are kept (see Retention), and the Analytics pages and subscriber insight panels, which need the Partner or Partner+ tier. These are StreamerCatalyst tiers, not your Twitch status. See Tier comparison.

Area What it does
Overview Live Followers / Subscribers / Sub Points totals, plus a card per metric (Today / Stream / 7d / 30d) with 7-day sparklines
Charts Time series per metric (tip and charity amounts included), hype-train level, Plus Points, average viewers, and daily total-follower/subscriber/tier-split trends
Sessions Every stream with its duration, viewers and counts. Open one for its viewer-count history, category/title timeline, and who followed, subscribed, resubbed, gifted and cheered
Subscribers Tiered subscriber list, the Plus Program panel, and tier-progression, tenure and loyalty insights
Top Chatters A message-count leaderboard sourced from the Chatters module
Goals Twitch Goals shown automatically, with your own targets (and optional date ranges) per metric, including Plus Points and charity
Charity Your Twitch Charity campaign or linked Tiltify campaign: total raised, target, and a one-time import of earlier donations
Streaks Consecutive streams that hit a goal target, with live progress
Hype Trains All-time-high records (own + shared), per-train history, and live overlay variables
Audience* One page summarising where viewers come from, whether they come back, and when they convert
Acquisition* Where each new viewer first came from (raid, organic, returning), with per-raid source breakdown
Behavior* Multi-session attendance (returning vs one-time viewers) and game affinity
Journey* A cross-source engagement funnel, per-source comparison, and viewer behavior archetypes
Patterns* When and in what context viewers convert: hour of stream, stream length, viewer band, and hype-train and raid lift
Schedule* Which broadcasts do better (weekday, start time and stream length, per stream and per streamed hour), plus a verdict on a schedule change
Raids* Incoming and outgoing raid analytics: conversion, raid-back rate, source quality, and rule-based recommendations
Ask about your data Plain-language questions about your channel’s numbers from the command palette (Cmd/Ctrl-K)
Widgets Counter, goal-progress, streak, Plus Points, charity and hype-train data for browser-source overlays

* Partner and Partner+ only. See Analytics.

Every stream is recorded as a session, opened when Twitch reports you live and closed when it reports you offline (see When a stream starts and ends for what happens when the offline notice never arrives). Numbers ingests follows, subs (by tier), resubs, gifted subs, bits, tips (from the Tipping module), charity donations (see Charity), hype trains (counted when a train ends) and raids, and buckets each metric per hour, per day and per stream. While you’re live it also samples your viewer count roughly once a minute (see Sessions).

How each figure is counted:

  • Sub points weight subs by tier: Tier 1 (including Prime) = 1, Tier 2 = 2, Tier 3 = 6 points. Gifted subs add points too: the tier’s weight times the number gifted.
  • New subs and resubs count each subscriber once per month. Twitch announces every step of a tier upgrade as if it were a fresh sub plus a renewal; Numbers credits the person once. Sub points credit each tier a subscriber holds in a month once, so upgrading Tier 1 → Tier 2 → Tier 3 adds 1 + 2 + 6.
  • Total Subs = new subs + resubs + gifted subs.
  • Gifted subs count the subs given (a 5-sub gift bomb counts 5) and are credited on the gift. The recipients’ own sub notices don’t count again, and gifted subs never count as new subs.
  • Bits combine three sources: cheers (counted 1:1), Power-ups (1:1), and Bits in Extensions, credited at 80% — the broadcaster’s share of extension spend. Twitch sends no event for extension spend, so Numbers infers it from Twitch’s bits leaderboard. It only sees viewers in your top 100, it checks while you’re live, and it settles each day once that day closes (on Pacific time), so a day’s bits total can be revised slightly afterwards.
  • Tips are tracked twice: Tips counts the number of tips and Tips (amount) sums the money in your channel’s tip currency (the currency of your most recent tip). A refunded or disputed tip is subtracted back out of the hour, day and stream it originally landed in.
  • Charity counts donations, and Charity (amount) sums them in the campaign’s currency. A donation made in a different currency from its campaign is kept on record but left out of the amount, so a mixed-currency total never reads high.
  • Raids on the Overview and Charts are incoming raids. Outgoing raids are on the Raids page.
  • Every event is deduplicated, so Twitch redeliveries never inflate numbers. A raid between two StreamerCatalyst channels counts once on each side.
  • Much of the newer analytics is forward-only: it accrues from the moment the feature shipped (or the moment your channel unlocked it) and can’t be backfilled from older event history. The relevant sections call this out.

Records that name a viewer follow your tier’s retention window: 7 days (Free), 30 days (Affiliate), 365 days (Partner), unlimited (Partner+). A daily cleanup removes, once they’re past the window:

  • the individual follow, sub, resub, gift, cheer, raid and charity-donation records (who did what, and when);
  • the once-a-minute viewer-count samples;
  • the per-viewer analytics behind the Analytics pages and subscriber insights.

Kept regardless of tier: the hourly, daily and per-stream totals (charts, Overview and per-stream counts), the sessions list itself, hype-train records and history, and the daily follower / subscriber / Plus Points snapshots. Tip records aren’t removed by the window either.

So an old stream keeps its exact follow and sub counts, but shows a dash for viewers and can no longer list who took part. If your tier changes, the next daily cleanup applies the new window. See Audience analytics & viewer privacy for exactly what is stored per viewer.

When Numbers can’t read a figure, it shows a dash (—) or marks it Unavailable rather than showing 0. A 0 means a real zero. For example:

  • average and peak viewers for a stream with no viewer samples (including every stream past your retention window);
  • a session’s counts or tips when that particular read failed (each figure fails on its own, so the others still show);
  • the live Followers / Subscribers / Sub Points totals when Twitch can’t be reached;
  • a charity goal whose campaign couldn’t be read.

The Overview leads with a live totals row — your current Followers, Subscribers and Sub Points, read from Twitch — followed by one card per metric: Follows, New Subs, Resubs, Gifted Subs, Total Subs, Bits, Sub Points, Hype Trains, Raids, Tips and Charity. Each card shows Today, Stream, 7d and 30d totals with a 7-day sparkline. Avg Viewers and Tips (amount) get cards of their own.

  • Today is the current UTC day (from 00:00 UTC), not your local day.
  • Stream is your live stream, or your most recent stream when you’re offline.
  • Avg Viewers shows a dash for any window with no viewer samples.

A line chart per metric, with range buttons for Stream, Today, 7D, 30D and 90D (default 7D). Stream and Today plot hourly; longer ranges plot daily, in UTC days. When you’re offline, the Stream range shows your most recent stream and says when it ended. On desktop, each chart expands into a larger view with its own range buttons.

The summed charts cover every metric on the Overview, plus Tips (amount) (plotted in your tip currency) and Charity (amount) (plotted in the smallest unit of the campaign’s currency, such as cents).

Several point-in-time charts plot a value as it was rather than a sum, and never fill gaps with zero:

  • Hype Train Level — the level reached by each hype train.
  • Plus Points (daily) — the once-a-day Plus Program snapshot.
  • Avg Viewers — every sample on the Stream range, hourly averages on Today, and daily averages for longer ranges.
  • Total Followers, Total Subscribers, Sub Points, Tier 1 / Tier 2 / Tier 3 Subs and % Subs Gifted — recorded once a day.

The once-a-day charts have nothing to plot on the Stream or Today ranges. Because they record a value rather than summing events, they only have data from the day recording started and can’t be backfilled for earlier dates.

The Sessions page lists your streams, newest first. Choose how many to load — 20, 50 or 100 — and summary tiles add them up: Streams, Hours streamed (a live stream is counted up to now), Avg viewers (with Peak), Follows, Subs (with Resubs and Gifted) and Bits.

Each row shows the start time (with a LIVE badge while you’re live), the duration, average and peak viewers, and the stream’s Follows, Subs, Resubs, Gifted and Bits. On a narrow screen the rows become cards.

  • The per-stream counts come from per-stream totals that are kept regardless of tier, so even old streams show exact counts.
  • Average and peak viewers come from the viewer samples, which follow your retention window. A stream older than the window shows a dash, as does a stream that never got a sample. A stream’s samples are removed all at once when it ages out, so you never see an average taken from part of a stream.

Click a stream to open its detail view:

  • Duration, Avg viewers, Peak viewers, Follows, New subs, Resubs, Gifted, Bits, Tips and Tips (amount). Each figure is read separately, so one failed read shows a dash for that figure only.
  • A viewer-count chart across the stream, with the number of samples collected. While you’re live with no samples yet it reads “Collecting data…”; an ended stream with none reads “No viewer data recorded”.
  • A timeline of category / title / tag changes during the stream.

Viewer counts come from a background job that checks Twitch about every 60 seconds while you’re live, recording your viewer count, category, title and tags. Category and title changes are also captured the moment Twitch announces them, so a change between checks still shows. While a stream is live the detail view refreshes every minute so the chart keeps growing. Sampling starts with the first check, so the first minute or so of a stream isn’t backfilled.

Below the chart, Who took part has a tab for Followers, New subs, Resubs, Gifted subs and Bits, each showing that stream’s count:

  • Followers, New subs and Resubs list the most recent 25, with tier (Tier 1 and Prime share one label, because Twitch reports them the same way) and, for resubs, total months and streak. New subs lists self-purchased subs only.
  • Gifted subs lists gifters, biggest first, with the subs they gave and how many gifts that took.
  • Bits lists cheerers, biggest first. Someone who used more than one source shows the split between cheers, Power-ups and extension bits.
  • Anonymous gifts and cheers, and anything from a viewer who has opted out of analytics, show as Anonymous. Names link to the viewer’s Twitch channel.

The count on each tab is the authority; the list is who Numbers can still name. The panel says which case you’re in rather than showing an empty list:

  • Past your retention window — the stream’s per-viewer detail is gone, and the panel says so. The totals above stay exact.
  • Partly past it — only viewers from the part of the stream inside the window are listed.
  • A count with no names — the records were removed (a viewer opted out of analytics) or fall outside the stream’s time window. The count is still exact.
  • Counts that couldn’t be read — the panel says it can’t tell whether there were none, and notes when a full list may have more people.
  • Each Twitch stream is one session. If Twitch repeats its go-live notice, Numbers doesn’t open a duplicate.
  • If Twitch’s offline notice never arrives, Numbers closes the session at the last time it saw you live, plus five minutes. That happens either once Twitch’s live list hasn’t shown that broadcast for about 15 minutes, or when your next stream starts, whichever comes first. The time you were offline is never counted as stream time.
  • A failed check is never read as “offline”: Numbers only ends a stream when Twitch actually answers without it. In a rare case — Twitch unreachable for more than 15 minutes and the next answer not listing the stream — a session can close early, and the rest of that broadcast isn’t tracked.

A live subscriber list grouped by tier (Tier 3 / Tier 2 / Tier 1 & Prime), showing each subscriber’s resub streak, total months, Prime badge and, for gifted subs, the gifter (or “Anonymous”). Totals and sub points come straight from Twitch. The Prime badge is evidence-based: Twitch’s subscriber API can’t flag Prime, so it’s detected from sub and resub chat notices and fills in as Prime subscribers sub or share resubs. Lists cap at 5,000 subscribers (the page says when it’s truncated). If your Twitch connection needs re-authorising, the page asks you to reconnect.

Above the list sit the Plus Program panel and two subscriber insight panels. The insight panels need the Partner or Partner+ tier; below that they show an upgrade note. If their data can’t load, they stay hidden.

  • Live snapshot (works immediately, from your current subscriber list): tier distribution and shares, average tier value (weighted T1=1 / T2=2 / T3=6), and a paid vs known-Prime vs gifted type breakdown.
  • Progression (accrues over time, from a log of tier changes, over a 30-day window): upgrades, downgrades (confirmed at renewal, not cache lag), gifted→paid conversions, the upgrade rate and the gifted→paid conversion rate.
  • Loyalty cohorts — subs at 3mo+, 6mo+, 12mo+ and 24mo+ cumulative months.
  • Average tenure — mean cumulative months across subs with resub history (“known tenure”). Month-1 subs never send a resub notice, so they’re left out rather than dragging the average down.
  • New subs (last 30 days) — split into first-time vs returning (returning = any earlier sub or resub on your channel).
  • Resub rate / churn — derived from the two most recent daily total-sub snapshots (needs 2+ days of history first).
  • Upcoming milestones — subscribers about one month from their next anniversary (3, 6, 12, 24… up to 120 months) whose projected renewal falls within the next 30 days, which filters out lapsed subs (top 20 shown, dated in your channel timezone).

Loyalty, average tenure, first-time vs returning and upcoming milestones describe people, so a viewer who has opted out of analytics isn’t in them. Their subs still count in your totals and in resub rate / churn.

Progression, milestones and resub/churn are forward-only and honor your tier’s retention window, so early figures read low and very old progression drops off.

Twitch fires a separate subscription event for every step of a tier upgrade — going Tier 1 → Tier 2 → Tier 3 sends three of them, plus a renewal notice echoing each one. Until 4 September 2026 Numbers counted each step as its own new subscriber, its own renewal and its own sub points, so one viewer upgrading could add 3 new subs, 3 resubs and double their sub points to a stream’s totals. Everything recorded since is counted correctly (see What Numbers tracks).

Totals banked before the fix stay as they were until you correct them. A Recalculate sub totals panel appears on this page only when your history still contains that inflation, showing New subs, Resubs, Sub points and Total subs as they are now and as they’ll be after.

It works by subtracting the duplicate, not by rebuilding your counts. That distinction is what makes it safe:

  • It only ever removes a duplicate it can still see the subscription events for, and never takes a figure below zero.
  • Days where those events are gone keep their totals exactly as they are — whether they fell outside your retention window or were removed because a viewer opted out of analytics. There is nothing to prove a duplicate with, so nothing is touched. (A tool that rebuilt your counts from the surviving events would set those days to zero instead.)
  • Gifted subs never move. A gift was counted once under the old rule and is counted once under the new one.
  • Counts recorded after the fix aren’t touched. They were never inflated.

Recalculating also rebuilds your goal streaks, so a streak can’t be left standing on a figure that no longer exists. It can be run once per channel — running it twice would take the duplicate off twice. Broadcaster or Lead Mod only.

Twitch’s Plus Program raises your sub revenue share once your Plus Points stay above a level threshold for three consecutive months — Level 1 (100 points) pays 60/40, Level 2 (300 points) pays 70/30; below Level 1 the split is 50/50. Points are earned per recurring paid sub each month, weighted by tier (Tier 1 = 1, Tier 2 = 2, Tier 3 = 6); gifted and Prime subs earn none.

Plus Points run on a monthly cycle: the number on your Twitch dashboard resets on the 1st and climbs as each paid sub is charged.

When your channel’s Plus widget is enabled on Twitch (the public progress widget on your channel page), Numbers syncs Twitch’s own count and that is the number shown everywhere — the panel, the Plus Points goal, overlays, the $(plus) chat variable and the daily history chart.

  • Twitch is checked every 15 minutes, but you don’t wait 15 minutes to see a new sub: subs and tier upgrades arrive by event within seconds and are added on top of the last synced count, so overlays move right away and the figure re-settles on Twitch’s number at the next sync.
  • It never counts down mid-stream while a sync catches up. A genuine drop, such as a refund, shows within about 30 minutes.
  • If a sync fails, the last good count keeps being shown (still moving with new subs) for up to six hours before Numbers falls back to the estimate. If you turn widget sharing off, Numbers goes straight back to the estimate.

Twitch offers no official API for Plus Points, so for channels without the public widget Numbers reconstructs it — and the this-month figure counts only confirmed billings, never a forecast:

  • This month — the figure comparable to your Twitch dashboard, and what the goal, widgets and history chart use. A subscription earns its points when it is paid for, so this is two things added together: every sub bought this month — new subs and tier upgrades, counted in full on the day Twitch charged it — plus each carried sub’s renewal once its billing date passes. A sub still subscribed past its renewal date has provably been charged (one that cancelled drops off the list instead and never counts). Carried subs whose renewal date isn’t on record yet are left out and shown on the panel as unconfirmed rather than guessed at; coverage grows as they share resubs. Refunded subs are un-counted automatically.
  • Month-end pace — where the month lands once every carried sub has also renewed. This is the one figure that forecasts, and the panel’s “On pace for Level N” badge is judged against it.

Two calibrations keep the estimate honest:

  • Prime detection — the subscriber list can’t distinguish Prime subs from paid Tier 1 subs, but their sub and resub chat notices can. Numbers listens for those and automatically excludes known-Prime subscribers; coverage grows as Prime subscribers sub or share resubs.
  • Adjustment — the Adjustment field on the panel covers any remaining gap against your Twitch Creator Dashboard. It’s added point-for-point to the estimate’s this-month figure and month-end pace (enter 9 and both rise by 9) and stays constant across the month, so you can calibrate on any day. It never alters Twitch’s synced count. A calibration saved against an older version of the estimate is not applied — it was measuring that version’s error — which is why the field may read 0. The broadcaster and Lead Mods can edit it; regular mods see it read-only.
  • Tier upgrades — upgrading mid-month charges immediately and earns the new tier’s points on top of what the old tier already billed, and upgrades stack: stepping Tier 1 → Tier 2 → Tier 3 earns 1 + 2 + 6 = 9 that month. Each step announces like a fresh sub at the new tier, so Numbers credits it in real time; a daily check of the subscriber list is the safety net for anything missed.
  • Numbers → Subscribers — the Plus Program panel: this month’s points (Twitch’s count when synced, with the last synced figure and the estimate beside it), a bar toward the next level above the shown figure, the “On pace for Level N” badge, the day of the month and month-end pace, paid subs per tier, points from confirmed renewals and those due later this month, unconfirmed points, known-Prime exclusions, points bought this month, the adjustment, and a lower-bound warning if your subscriber list was truncated. It also lists up to 12 previous months’ Plus Points — Twitch’s own settled monthly counts from the same sync, so they appear only for channels sharing the public Plus widget and are never estimated. The panel stays hidden if the figure can’t be read (for example, a disconnected Twitch login).
  • Goals — the Plus Points goal (auto next-level target, or your override); progress is the this-month figure, so it fills over the month like Twitch’s own number.
  • Charts — a Plus Points (daily) trend, recorded once a day. It saw-tooths with the monthly reset, like Twitch’s figure, and history can’t be backfilled.
  • Home dashboard — an optional Plus Program card (broadcaster only).
  • Chat — the Chatters $(plus) variable quotes the same figure (see Template variables).
  • Overlays — the Goal and Counter widgets accept the Plus Points metric, and custom widgets can read it via SC_API.numbers.goal('plus_points') / SC_API.numbers.metric('plus_points'). SC_API.numbers.plus() gives a custom widget the whole picture in one call — points, level, revenue share, the next level and its target, how many points are still needed, and whether the figure is Twitch’s own count or the estimate — so an overlay never has to hardcode the level thresholds. It answers available: false when the figure can’t be read, which is a different thing from zero and should be shown as such. A custom widget’s fields can also sync to the Plus Points goal the way they sync to a tip goal (see Widgets). Plus Points move when a paid sub is charged, so an overlay refreshes them on the subscriber event rather than waiting for a metric update.

The Goals page lists one row per metric — Follows, New Subs, Resubs, Gifted Subs, Total Subs, Bits, Plus Points and Charity Raised — with its target, label, optional dates and source:

  • Twitch ⚡ — a goal you created on Twitch appears automatically. Twitch follower goals fill the Follows row; Twitch subscription goals fill the Total Subs row.
  • Override ✏ — your own target and label, set in the dashboard. An override always wins over a Twitch goal. Twitch has no bits goal, so Bits is override-only.
  • Next level 🎯 — the Plus Points row with no override auto-targets the next Plus Program level above your current points (100, then 300), so a Plus goal works with zero setup.
  • Campaign 💜 — the Charity Raised row with no override uses your charity campaign’s own fundraising target (see Charity).
  • None or Unavailable — no goal is set, or (for Charity Raised) the campaign couldn’t be read just now.

What goal progress counts (on goal overlays and the dashboard goal card):

  • Follows — all follows Numbers has recorded for your channel; with a Twitch follower goal, Twitch’s own progress.
  • Sub goals and Bits — your current stream’s total, or your most recent stream’s when you’re offline.
  • Plus Points — this month’s points.
  • Charity Raised — the campaign total.

Date ranges. An override can carry an optional date range (both dates or neither, up to 366 days) that scopes that metric’s progress to whole days in your channel timezone, inclusive of both ends — useful for a subathon or a month-long campaign. Follows then count only within the range instead of all-time, and a ranged Charity Raised override counts donations recorded in the range. A range only applies to an override (a live Twitch goal reports its own progress), and Plus Points can’t take one because it follows Twitch’s monthly cycle.

A Charity Raised override is entered in the campaign currency’s smallest unit — 500 is $5.00 where the currency has two decimal places.

If your Twitch token has expired, the page prompts you to log in again to see Twitch Goals. Only the broadcaster can edit or clear goals; mods see them read-only.

A sub or bit goal set here can also drive the Subathon goals overlay: turn on Sync progress with a Numbers goal in that widget’s settings and its ladder tracks this goal’s total — including a live Twitch creator goal’s own progress — instead of counting only what the overlay itself sees.

The Charity page shows your Twitch Charity campaign — or your Tiltify campaign, once it’s linked under Integrations — and the donations Numbers has recorded for it.

The campaign card shows its name, a via Tiltify badge for a Tiltify campaign, Live or Ended, the amount raised (in the campaign’s currency), the target and a progress bar, when it started and ended, and links to the charity’s website or the Tiltify campaign page. It also says where the total comes from:

  • Twitch — while a Twitch campaign is live, the total is Twitch’s own, so it matches your Twitch dashboard. If Twitch briefly reports a lower figure than it already announced, Numbers keeps the higher one; donations can’t be un-donated.
  • Tiltify — an open Tiltify campaign shows Tiltify’s stated total plus any donations that completed after Tiltify last stated it, so a donation moves the bar straight away and is never counted twice.
  • The campaign’s final figure — once a Twitch campaign ends, Twitch drops its donation information, so the final total Numbers captured when it ended is the record.
  • Donations we recorded — otherwise, the sum of the donations Numbers holds for that campaign.

If a Twitch campaign and a Tiltify campaign are both running, Twitch’s is shown. When a campaign has no fundraising goal, the page says so and points you to Goals to set your own target.

When there’s no campaign to show, the page tells you why instead of showing a blank panel:

Message Meaning
Reconnect your Twitch account Numbers doesn’t have permission to read your charity campaign yet. Reconnect Twitch from Settings → Module health.
Charity campaigns aren’t available on this Twitch account Twitch only offers charity campaigns to Twitch Affiliates and Partners. Nothing to fix.
No active campaign right now Start a campaign on Twitch and it appears here, with donations tracked from that moment.
Twitch didn’t answer Twitch couldn’t be reached just now; anything shown comes from donations already recorded.

The “not available on this account” and “no active campaign” messages also suggest linking a Tiltify campaign if that’s where you fundraise — Twitch’s answer says nothing about Tiltify, so none of these messages is shown over a linked Tiltify campaign.

Import earlier donations. While a Twitch campaign is live, the broadcaster can import every donation Twitch still holds for it — useful if you connected StreamerCatalyst mid-campaign. The import fills in totals, leaderboards and history only: it does not add subathon time or fire Events rules for donations that already happened. Twitch only serves this list while the campaign is running, so importing during the campaign is the only chance. Once you’ve imported, the page shows when and the button is disabled. Imported donations carry no original timestamp, so they’re dated at the time of the import and age out with your tier’s retention window from then.

Other things worth knowing:

  • Donations normally arrive live. While a Twitch campaign runs, Numbers also checks Twitch’s donation list every few minutes and adds any donation whose notification never reached it.
  • A Tiltify donation that Numbers only receives after a delay is credited to the hour and day it was made — and not to your current stream if it was made before that stream started.
  • Each donation is counted by its donation ID, so a donation is never counted twice, whether it arrived live, by the background check, or by import.
  • End your campaign on Tiltify before you unlink it. Unlinking doesn’t end the campaign in Numbers, so a campaign unlinked while still open keeps showing as live — on the Charity page, the charity goal, overlays and your public Event Page.
  • Individual donation records (who gave what) follow your tier’s retention window.

The Charity and Charity Raised metrics are also available on the Overview, Charts, Goals and overlay widgets.

A streak counts consecutive streams that hit a goal target — e.g. “gained ≥ 25 followers every stream.” Add a streak goal for Follows, New Subs, Resubs, Gifted Subs or Total Subs on the Streaks page; the target comes from that metric’s effective goal (Twitch or override), so set the goal first.

  • Streaks advance live the moment the target is crossed mid-stream, and are fully recomputed when a stream ends or settings change.
  • Each streak card shows the target, the current streak, the best streak and the best streak’s date range.
  • Combine streams from the same day treats all streams sharing a local calendar day as one unit. The day boundary uses your channel timezone; toggling this recalculates existing streak history.
  • Streak goals can be disabled (keeps history) or deleted (removes history).
  • Only the broadcaster can add, disable or delete streak goals or change the combine setting.

The Hype Trains page shows your record-setting trains as two cards: All-Time High (your own channel) and Shared All-Time High (shared/cross-channel trains you took part in). An all-time-high record captures the highest level reached, the total contribution points at that peak, and the date it was achieved — and a record only ever moves up; a lower incoming value never overwrites a stored higher one.

Records update automatically as trains run. Your own high comes from the live hype-train events; the authoritative achieved dates and the shared high come from Twitch’s hype-train status, fetched at most once every 5 minutes. If a source is briefly unavailable, existing records are left untouched.

Below the record cards, History lists every completed train grouped by stream session (trains not tied to a stream appear under “Unattributed”), 50 at a time with Load more. Each train shows its start, end, duration, level, type (Regular, Golden Kappa, Treasure or Mythic, plus a Shared badge) and the subs and bits that went into it. Twitch reports a train only as a points total — it never says how many subs or bits made it up — so those two columns are derived from the contribution events (cheers, subs, resubs and gift bombs) that landed around the train, then checked against the train’s points total. Anything the total accounts for that no contribution event reached Numbers for is added back rather than dropped, and hovering the figure says how much of it that was. Shared trains are the exception: their total includes contributions from the other channels in the train, which never reach Numbers, so those rows only count what your own channel contributed. The Discord bot’s hype-train results and the hype-train overlay use exactly the same rules, so all three report the same numbers for a train.

The native Hype Train overlay widget (banner, theater and streak variants) surfaces these live. Per-event variables include level, progress, goal, total, all_time_high_level and all_time_high_total, from which it renders the level, a progress meter (progress / goal), a “% to next level” readout, and a record line (“Best Lv N” and “Y% of record”).

A message-count leaderboard of your top 25 chatters over Stream, Today, 7D, 30D or 90D (default 7D), sourced from the Chatters module’s activity tracking.

The Analytics section of the Numbers sidebar holds seven pages: Audience, Acquisition, Behavior, Journey, Patterns, Schedule and Raids. They need the Partner or Partner+ tier; on a lower tier each page shows an upgrade note instead (with a billing link for the broadcaster).

  • Per-viewer analytics are only recorded while your channel is on Partner or Partner+. Acquisition sources, raid cohorts, journeys, attendance and sub-tier history start filling in from the day you unlock them and can’t be backfilled. Patterns, Schedule and raid counts are built from data every tier records, so they show history (within your retention window) straight away.
  • Each page has a range picker — Today, 7D, 30D or 90D (default 30D); Schedule has its own longer ranges. On small screens a strip of tabs moves between the seven pages.
  • Pages open with insight cards (“What’s working”, “Needs attention”, “Opportunity”) derived from your figures, each linking to the panel or page that explains it, then a row of headline figures.
  • These analytics need about a month of consistent stream data to fill in.
  • Only viewers Twitch identifies — by chatting or by following, subscribing, gifting, cheering or resubbing — can be counted. Silent lurkers are invisible, and anonymous cheers and gifts aren’t attributed to anyone. Chat activity comes through the Chatters module.
  • Every page links to Audience analytics & viewer privacy and the public viewer opt-out.

The Audience page is a one-page summary of the other analytics. Headline figures: New viewers (with a follows sparkline), Follow rate and Sub conversion (of identified viewers), and 30-day retention. Four preview cards each link to the page behind them:

  • Where viewers come from — your top acquisition sources as shares (→ Acquisition).
  • Discovery → loyalty — the five-stage engagement funnel (→ Journey).
  • Do they come back? — how many sessions each viewer attended (→ Behavior).
  • When conversions happen — follows by day of week in your channel timezone, with your best day highlighted (→ Patterns).

The Acquisition page answers one question: how did each viewer first arrive? The first time Numbers observes a viewer doing something meaningful — following, subscribing, receiving a gifted sub, cheering, resubbing or chatting — it classifies where they came from and locks that label in. First observation wins; a source is never overwritten by later activity.

Headline figures: New viewers, Top source, Returning seen (already-following viewers seen in the range, not counted as new) and Raid partners (channels that sent you viewers). Below them:

  • Sources — counts and shares per source for the selected range.
  • Top raid sources — the channels whose raids brought the most new viewers (top 10), with each one’s 30-day retention and a Plan raid-back link to their channel.
  • Recent acquisitions — the last 50 viewers, with source, first-seen time, and the game and viewer count live when they arrived. Each row has a Delete data button that removes that viewer’s data from your channel only; it can’t be undone.
Source How it’s attributed
Returning Already following (by Twitch’s records) more than 5 minutes before Numbers first saw them — an existing follower, not a fresh acquisition. Counted separately and excluded from new-viewer totals.
Raid First seen within 15 minutes of an incoming raid; credited to the raiding channel.
Organic First seen during a live stream with no recent raid to attribute them to.
Unknown First seen while you were offline, with no raid.

A follow that lands within the 5-minute grace window counts as a genuine new follower.

Caveats: telling a returning follower apart needs a readable Twitch connection; anonymous cheers and gifts aren’t recorded, and only the gifted-sub recipient is credited (not the gifter). Raid attribution is a 15-minute time-window heuristic.

The Behavior page tracks repeat viewers across streams and the content they prefer. It’s forward-only — streams before recording began aren’t backfilled.

Headline figures: Attendees (over how many streams), Came back 2+ times, Avg gap between visits and Churned viewers (no return within 14 days). Panels:

  • The return curve — how many sessions each viewer attended (1, 2–3, 4–7, 8+).
  • Loyalty split — viewers who return across more than one distinct game count as loyal to you; single-game viewers are following the game.
  • Second sessions run hotter — events per session in a viewer’s first session vs their later ones, so you can see whether returning viewers get more active.
  • Game affinity — for each game that acquired viewers (top 20), how many it acquired and the share who went on to follow, subscribe and return, tagged Best retainer, Best sub rate or Most traffic. Viewers with no captured game are left out.

Behind these figures Numbers also tracks schedule consistency (the average share of your streams a viewer showed up for) and same-day binge viewers. Caveats: attendance and game data need a live session when each event lands, so offline activity is excluded.

The Journey page traces how viewers move from first contact to loyal subscriber, stitching follows, subs, resubs, cheers and chat into one per-viewer timeline. Every panel recomputes for viewers first seen in the selected range. The first time each milestone happens wins and is never overwritten.

Headline figures: Identified viewers, Discovery → follow, Follow → sub and Avg time to sub (from first visit).

Engagement funnel — five stages, each shown as a share of everyone Discovered:

Stage Meaning
Discovered Every identified viewer first seen in range
Chatted Ever sent a chat message
Followed Ever followed
Returned Came back on a different stream than their first
Subscribed Ever subscribed

Stages are independent flags, not strict drop-offs (a silent follower counts in Followed but not Chatted). Insight cards point out the stage where the funnel leaks hardest and how many eventual followers chatted first.

Which source builds the best viewers — how a viewer was first acquired (raid, organic, returning or unknown) compared across follow rate, sub rate and retention, with a full comparison table (streams and time to follow and to sub, Tier 1/2/3 mix, 90-day retention).

Behavior archetypes — a rule-based classifier (first matching rule wins) sorts each viewer into one bucket by their journey shape: Instant Fan, Community First, Skeptic, Silent Supporter, Lurker Loyalist, Gifted Convert, Community Hopper or Unclassified. Viewers still mid-journey are classified on their current state, and archetypes are a snapshot of the range.

Caveats: silent lurkers are invisible (Twitch gives no identity for non-chatting, non-acting viewers); journey data ages out with your tier’s retention window.

The Patterns page answers when and in what context viewers convert. Clock times use your channel timezone. Stream context is captured only for follows and subs that land while you’re live — how far into the stream, the viewer count at that moment — so offline events are excluded.

Headline figures: Best day (by follows, in your timezone), Best window (the time of day with the most subs: Late night, Morning, Afternoon or Evening), Peak sub moment (the hour of stream when subs peak) and Hype train lift. Panels:

  • Hour of stream — follows and subs by how far into the broadcast they happened.
  • Stream length sweet spot — average follows and subs per completed stream, by length (Under 1h, 1–2h, 2–4h, 4–6h, 6h+).
  • Viewer band — conversions by the viewer count at the time (0–5, 6–15, 16–50, 51–150, 150+), highlighting your best-converting band.
  • Hype train lift — your sub rate during a hype train (through 30 minutes after it) against your baseline, as a multiplier.
  • Raid lift — your follow rate in the 15 minutes after an incoming raid against your baseline, with overlapping windows merged.

For whole-broadcast comparisons, see Schedule.

The Schedule page answers the other half of the timing question: not when inside a broadcast a viewer converts, but which broadcasts do better. Both views below live on it. Pick the metric to compare — Follows, New subs, Resubs, Gifted subs, Bits, Sub points, Tips, Tip amount, Hype trains, Raids or Avg viewers — and whether counts are shown per stream or per streamed hour.

Schedule comparison compares whole streams rather than individual events, across three dimensions: the weekday you went live, the 2-hour band you started in, and how long the stream ran (the same Under 1h → 6h+ bands as Patterns). Ranges are 30D, 90D, 180D and 1Y, covering at most the 500 most recent streams.

The unit is a completed stream — open sessions are left out (they have no length yet) and counted separately, as are zero-length rows. A stream that ran past midnight is attributed to the weekday and band it started in, in your channel timezone.

Every metric is reported both per stream and per streamed hour, and per-hour is the fair comparison: a 6h stream picks up more follows than a 2h one by construction, so ranking lengths on per-stream totals only tells you that longer streams are longer. A group with fewer than three streams is shown but never ranked, and a dimension with fewer than two ranked groups answers “not enough streams yet” instead of handing back the top of a noisy list — as does a winner that isn’t meaningfully ahead of your own baseline.

Follows, subs, bits, sub points, tips, hype trains and raids come from per-stream totals that are never pruned, so they answer as far back as you ask. Average and peak viewers do not: viewer history honors your tier’s retention window, so older streams show an em dash for viewers rather than a zero, alongside how many streams in the group did have viewer data.

Average viewers is selectable as the comparison metric too. It is already an average, so it is never divided by hours and the per-stream / per-streamed-hour buttons do not apply to it — they switch off while it is selected, and switching back to a count metric restores your choice. It is also ranked only over groups that still have viewer samples: a group can hold twelve streams and no viewer data at all, so it is shown dimmed and left out of the comparison rather than ranked on nothing, and a range reaching back past your retention window answers “no viewer history” instead of naming a winner. Peak viewers stays a per-group informational figure and is deliberately not rankable — a group’s peak is the highest of its streams’ peaks, so a weekday with forty streams has forty chances at a high peak and one with four has four; ranking on it would rank how often you stream, not how the slot performs.

Schedule experiments answer the follow-up question: you moved your streams — did it work? The same range is split into two periods, your older half and your more recent half by stream count — not by date. Streaming cadence is uneven, and a calendar split of a range containing a three-week break would compare 4 streams against 30. An equal number of streams on each side makes them comparable; the cost is that the two periods cover different spans, which is why the page shows each period’s real first and last stream, and why every figure is per stream or per streamed hour, never per day.

Numbers then checks whether three things materially moved between the periods: your start time, your stream length, and your weekday mix (each weekday’s share of that period’s streams). Start times are treated as clock positions, so a move from 23:30 to 00:30 reads as one hour later rather than 23 hours earlier. A negative start-time shift means you moved earlier.

Each metric is then compared across the two periods, both per stream and per streamed hour — per-hour is the headline, because moving earlier and shortening your streams can lower your follows per stream while making every hour strictly more productive. The verdict is one of: not enough streams yet, no change detected, improved, worse, flat, or mixed (your metrics disagree with each other). “No change detected” still shows the numbers — “nothing about your schedule moved and your follows are up 30% anyway” is worth knowing.

Each period needs at least five completed streams. Below that you get “come back after a few more streams” rather than a set of ratios computed from four of them.

Anything that qualifies the answer is listed on the page rather than left out, including: your length changed too, or your weekdays did, so the difference can’t be pinned on the start time alone; your start times are scattered enough that there wasn’t a fixed schedule to change; the two periods differ a lot in total streamed hours, so per-stream figures aren’t comparable even though per-hour ones are; the older period is outside your viewer-history window, so viewer figures read “unavailable” instead of a ratio against nothing; and both periods are short, so the result is directional only.

This is a comparison of your own two periods, not proof that the schedule caused the change. Everything else about your channel moved too — the games you played, raids you got, what Twitch recommended you to. Treat it as evidence, not a verdict.

The Raids page shows both sides of your raid activity — who you send viewers to, who sends viewers to you, whether raids get reciprocated, and how well raided-in viewers convert and stick. The range picker scopes the whole page.

Headline figures: Incoming raids (with viewers received and a sparkline), Outgoing raids (with average viewers per raid), Raid follow rate (with the number of raid arrivals) and Raid-back rate (how many of the channels you raided raided you back).

  • Raid exchange — for up to eight partner channels, viewers you sent against viewers they sent you, on one scale.
  • What raid viewers do next — Twitch reports only an aggregate raid viewer count, not who arrived, so Numbers infers each raid’s cohort: any follow, sub or chat message from a viewer within 15 minutes of an incoming raid is attributed to it. For those viewers it shows the share who Followed, Returned (came back in a later stream) and Subscribed, retention kept at 30 / 60 / 90 days, and average time to follow and to sub.
  • Source quality — each channel that raids you, grouped by how its viewers behave: High retention (≥40% return and ≥20% still around after 30 days), Quick convert (≥30% follow or ≥10% sub, but under 40% return), Slow burn (≥20% return but under 30% follow) or One and done. Each row shows viewers, follow rate, sub rate and 30-day retention, which fills in after a month of data.
  • Raid log — recent incoming and outgoing raids with viewers, game and time.

Insights. A deterministic (non-AI) rules engine surfaces advice only when the sample is large enough — the raid-size band with the best raid-back rate, the game that best keeps raid viewers, up to five channels worth raiding again (most viewers returned per raid you sent), and whether raid viewers who received a gifted sub stick around better at 30 days — alongside callouts such as your strongest partnership or most raid-outs never coming back.

Caveats: cohorts are inferred, not exact (a silent post-raid lurker isn’t attributed). Outgoing raids weren’t tracked before 19 July 2026, and the page says so when your range reaches back that far. A raid between two StreamerCatalyst channels is counted once.

Open the command palette with Cmd/Ctrl-K (or / when you’re not typing in a field), type a question, and choose Ask about your data to get a plain-language answer from your channel’s numbers. For example: “How many follows did I get last month?”, “What was my best stream this month by peak viewers?”, “Compare bits this week with the week before”, “Who were my top cheerers in the past 30 days?” or “Which channel point rewards were redeemed most?”

  • What it can answer: totals and daily series for follows, new subs, resubs, gifted subs, total subs, bits, sub points, hype trains, raids, tips and tip amounts; your best stream in a range (by peak or average viewers, follows, subs, bits or length); stream counts, hours streamed and average/peak viewers; your most recent streams; top cheerers; total follows recorded; one metric compared against the equivalent earlier window; and channel point redemptions from the Events module (most-redeemed rewards, total redemptions, top redeemers). It doesn’t read charity data or the Analytics pages’ per-viewer data. A question it can’t answer gets a list of what it can.
  • Dates: answers use whole UTC days. “Past month” means the last 30 days; “last month” means the previous calendar month. Ranges are limited to your retention window, and the answer says when a range was cut short or falls entirely outside it.
  • The figure comes first: the number the answer is based on is shown with it, and stays even if the written answer fails to generate.
  • Unavailable is not zero: if channel point data can’t be reached, or a range is outside your retention window, the answer says so rather than reporting 0.

Who gets it: data questions are included with AI plans — Affiliate (10 a day), Partner (50 a day) and Partner+ (unlimited); the Free tier doesn’t include them. One question uses one of the day’s allowance only once it has actually looked up your data, so a question it can’t answer is free. The allowance resets at midnight UTC, and questions are also limited to 10 a minute. An admin in a read-only view of your channel can’t ask, because asking spends your allowance. The palette’s other Ask option answers from these docs instead.

Numbers uses a single per-channel timezone, set in the dashboard under Settings (an IANA zone such as America/New_York; defaults to UTC; only the broadcaster can change it). It’s stored for your whole channel and shared across features. It determines:

  • Day boundaries for streaks — including whether same-day streams combine and how midnight-crossing sessions are attributed. Changing it recalculates existing streak history.
  • Patterns and Schedule — day of week, time of day, start-time bands and weekdays are worked out in your local time (DST-accurate).
  • Displayed dates — streak date ranges, subscriber milestone projections and schedule-experiment period dates.

Some things deliberately use UTC days instead: the Overview’s Today, daily chart points, goal date ranges, and the dates in Ask answers.

Numbers supplies overlay data through a per-channel widget token. Widget setup — building browser-source URLs and arranging overlays — lives in the Widgets module; Numbers is the data source behind:

  • Counter — a single live number for Follows, New Subs, Resubs, Gifted Subs, Total Subs, Bits or Sub Points over This Stream, Today, 7 Days or 30 Days (or an explicit date range). A counter can show a current or best streak instead. This Stream counts only a live stream.
  • Goal progress — current / target / percentage for a goal metric. Progress isn’t capped, so a beaten goal reads past 100%. A ranged goal override applies its own dates.
  • Plus Points — the Plus Program figure for the month (the goal variant auto-targets the next Plus level), or an “unavailable” state when it can’t be read.
  • Charity and Charity Raised — the donation count and the campaign total, with the campaign’s currency and target, and the right empty state when there’s no campaign.
  • Hype Train — live level, progress and all-time-high records (see Hype Trains).

(The old Numbers → Widgets tab now redirects to the Widgets module.)

  • The Twitch event subscriptions Numbers needs (stream online/offline, follows, subs, gifts, cheers, resubs, Power-ups, hype trains, raids, goals, charity and more) are managed by StreamerCatalyst automatically — set up when you log in and kept in sync by an hourly check. Settings → Module health shows their status and any Twitch permission you still need to grant.
  • A per-minute job checks Twitch while you’re live to sample viewer counts, close sessions whose offline notice never arrived, credit Bits in Extensions, and (every few minutes per channel) catch any missed charity donations.
  • An hourly job settles each closed day’s Bits in Extensions.
  • Daily jobs record total-follower, subscriber and Plus Points snapshots, check the subscriber list for missed tier upgrades and ended subs, and remove records past your tier’s retention window.
  • All processing is deduplicated and fail-soft: a failed write never breaks event delivery.

Open Numbers in the dashboard sidebar. Its tabs, in order: Overview, Charts, Sessions, Subscribers, Top Chatters, Goals, Charity, Streaks and Hype Trains, then the Analytics section: Audience, Acquisition, Behavior, Journey, Patterns, Schedule and Raids.

Who can change what:

  • Broadcaster only: goals, streak goals and the combine-same-day setting, the charity donation import, and the channel timezone.
  • Broadcaster and Lead Mods: the Plus Points Adjustment and Recalculate sub totals.
  • Regular mods can view every page but change none of the above. An admin viewing your channel read-only can’t change anything.

See Numbers — API endpoints for the full list of HTTP endpoints.

See Numbers — Authentication & permissions for the OAuth scopes this module uses and the EventSub subscriptions it registers.