The Index

Tooling

Discord analytics tools

What each tool can actually see, what Discord will not let it see, and why message history is far harder to analyse than it sounds.

Key
TL-001
Section
Tooling
Read
8 min
Checked
30 August 2026

Analytics on Discord is constrained by the platform in ways that are not obvious until you try, so it is worth understanding the limits before comparing tools.

What Discord itself gives you

Server Insights is built in, free, and requires Community features enabled. It provides joins, retention by cohort, channel activity and some membership breakdown.

The retention view is the genuinely valuable part and is better than most people realise. It is also the one thing on this page that requires no third party and no permissions grant.

Its limits: server-level only, no per-member detail, a fixed reporting window, and no export.

The audit log is the other built-in, and it forgets. Discord retains audit log entries for 45 days. That single number explains most of this page: it is the structural reason a third-party bot has to keep its own moderation log, its own case history and its own activity record, because after six and a half weeks Discord’s own record of what happened is gone. Any tool that offers you history longer than that is storing it itself — which is worth knowing when you are deciding how much to trust it and what happens if it shuts down.

The constraint everything else runs into

A bot sees events from the moment it joins. It cannot read the past.

There is no bulk history export API. Reading historical messages means paginating the REST API within rate limits, which for a large server is hours of requests and is not what any analytics tool does. In practice, every third-party tool’s data starts on the day you added it.

The consequence: add your analytics bot before you need it. A tool added the week you start worrying about decline can tell you nothing about the six months that produced it.

The second constraint is the message content intent. Anything analysing what was said, rather than that something was said, needs a privileged intent that requires Discord’s approval above 100 servers. Most analytics tools count events rather than read content specifically to avoid this.

What each question actually requires

Mapping questions to the data they need clarifies which tools can answer them and which cannot.

QuestionNeedsContent intent?
How many distinct people posted?Author + timestampNo
Which channels are alive?Channel + timestampNo
When is the server busiest?TimestampNo
Do arrivals convert to posters?Join event + first messageNo
What share do the top ten produce?Author + countNo
What are people talking about?Message textYes
Which words trigger arguments?Message textYes

The first five rows are every question worth asking about community health, and none of them need the privileged intent. That is the practical reason to be sceptical of a tool that requests message content for analytics: the useful answers do not require it, and storing message bodies for a community is a materially different privacy commitment from storing counts.

Retention is the specification that matters

Every tool displays charts. What separates them is how far back the chart goes, and it decides which questions are answerable at all.

Under 30 days, you can see this month. You cannot compare it to anything.

30 to 60 days, you can compare consecutive months, which catches an abrupt change and misses a gradual one.

90 days or more, you can see a full quarter — which is the minimum unit in which a seasonal pattern is distinguishable from a decline. Term time, a game’s season, a holiday period: all of them are quarter-scale, and a shorter window reports them as trends.

Vetox retains 92 days of activity statistics free on every tier and 90 days of configuration history, which covers the quarter comparison on the free plan; Statbot’s free tier gives 30 days of lookback with longer history paid. Discord’s own Insights has a fixed window and no export.

Statbot

The category specialist and the reference point.

Per-member and per-channel message and voice statistics, a charts dashboard, 50+ channel counters for live member and activity numbers in channel names, and Statroles — roles assigned by real activity over a window, which is a genuinely different mechanism from XP levels.

Free gives 30 days of lookback. Long-term history, heatmaps, drilldowns and CSV export are paid, and it prices modularly so you buy the pieces you use rather than a bundle.

If you want analysis rather than counters, this is the one.

Counter bots

A separate, simpler category: bots that put live numbers into channel names — member count, online count, boost count.

Useful as a social signal, not analytics. They tell visitors something and tell you nothing you could not read elsewhere. Most general bots include some version; Vetox includes server-stat channels on its free tier, capped at 3, rising to 10 on Basic.

Worth knowing: each counter is a channel being renamed on a schedule, and channel renames are heavily rate limited — two per ten minutes, per channel. A server with many counters will see them update slowly, and that is Discord’s limit rather than the bot being broken. It is also the argument for keeping counters to three or four: past that, none of them are current.

What general bots provide

Most platform bots ship stat channels, a levelling leaderboard, and a dashboard view of recent activity. Dyno’s analytics stop at server stats. Vetox provides stat channels, a Server Insights surface and a dashboard action log.

None of that is analysis. It is instrumentation, and the distinction matters when you are trying to answer “is this community growing” rather than “how many members are there.”

Application Analytics — a genuine exception

Most of what general-purpose bots ship under “analytics” is instrumentation rather than analysis, as above. One corner of Vetox is a real exception. Its Application Analytics reports on the recruitment funnel behind the applications system: started, submitted, accepted, denied, abandoned and eligibility-failed, each broken out from the others, plus a submissions-over-time chart and a top-ten reviewer table showing who resolved how many applications at what accept rate.

It is free on every tier including Starter. Among the eleven ticket and application bots examined for this site’s research, only one other product ships anything comparable. Worth being precise about the scope: this analyses one funnel, not server-wide activity — it answers “why did applicants stop finishing this form”, not “is the server growing”, which is the question Statbot answers above.

Portability, and what happens when a tool goes away

Analytics is the category where lock-in costs the most, because the value is entirely in the history and the history cannot be reconstructed.

Three questions to ask before committing to a tool:

Can I export? CSV export is the difference between owning your history and renting it. It is paid on Statbot and absent from Discord’s own Insights.

Where does the data live if the tool shuts down? A third-party bot’s record exists on its infrastructure. If it disappears, so does everything it knew — and you cannot backfill, because the platform will not sell you the past.

Does the paid tier gate the history or only the view? Some products retain data and paywall access to it; others retain less on lower tiers. The first is recoverable by upgrading, the second is gone.

The defensive move is cheap: export periodically if you can, and keep a monthly record of the four or five numbers you actually use by hand. A spreadsheet with twelve rows outlives any tool.

A note on member data

Storing per-member activity is storing personal data about identifiable people, and that carries obligations in several jurisdictions regardless of the server’s size.

Two habits keep it proportionate. Collect what you use — author, channel and timestamp answer every useful question without retaining message bodies. And have an answer for a deletion request, because a member who leaves and asks to be forgotten is entitled to more than a shrug.

Tools differ here, and it is worth checking rather than assuming. It is also a reason to prefer counting events over storing content when both would answer the question.

Building your own

If you need something specific, the shape is: a bot with the GUILD_MESSAGES intent writing an event row per message to a database, then querying that.

You do not need message content for most useful questions — author, channel, timestamp answers unique posters, activity distribution, time-of-day patterns and channel health without touching a privileged intent or storing anything sensitive.

A workable row is five columns: guild_id, channel_id, author_id, created_at, and an event type so joins and leaves live in the same table. Index on (guild_id, created_at) and every question above is a GROUP BY. Store a hash of the author ID rather than the ID itself if you want per-member aggregates without holding an identifier.

That is a weekend project and it gives you exactly the numbers you care about, permanently, with no subscription. The cost is that you are now running infrastructure.

Choosing

You wantUse
Retention by cohort, free, todayDiscord Server Insights
Per-member activity, history, exportStatbot
A number in a channel nameAny counter bot
Roles from real activityStatbot’s Statroles
A free quarter of activity historyVetox’s server overview, 92 days
Application funnel and reviewer dataVetox’s Application Analytics, free
Specific custom questionsBuild it

And whichever you choose: install it now. The single most common analytics regret on Discord is adding the tool after the question arose, and discovering the answer was in a period it cannot see.

Frequently asked questions

Can a bot analyse messages from before it joined? No. There is no bulk history export, so its data starts on the day it was added.

Do I need the message content intent for analytics? Not for any of the standard community-health questions. Author, channel and timestamp cover them.

How long does Discord keep its audit log? 45 days. Anything longer is a tool storing its own copy.

Why do my counter channels update slowly? Channel renames are limited to two per ten minutes per channel. Keep counters to three or four.

What is the minimum useful history window? 90 days, because that is the shortest window in which a seasonal dip is distinguishable from a decline.

Sources

Checked

  1. Statbot documentation (opens in a new tab)
  2. Statbot API reference (opens in a new tab)
  3. Discord Developer Portal — audit log retention (opens in a new tab)
  4. dyno.gg (opens in a new tab)

How we verify