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.
| Question | Needs | Content intent? |
|---|---|---|
| How many distinct people posted? | Author + timestamp | No |
| Which channels are alive? | Channel + timestamp | No |
| When is the server busiest? | Timestamp | No |
| Do arrivals convert to posters? | Join event + first message | No |
| What share do the top ten produce? | Author + count | No |
| What are people talking about? | Message text | Yes |
| Which words trigger arguments? | Message text | Yes |
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 want | Use |
|---|---|
| Retention by cohort, free, today | Discord Server Insights |
| Per-member activity, history, export | Statbot |
| A number in a channel name | Any counter bot |
| Roles from real activity | Statbot’s Statroles |
| A free quarter of activity history | Vetox’s server overview, 92 days |
| Application funnel and reviewer data | Vetox’s Application Analytics, free |
| Specific custom questions | Build 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