# 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.

- Canonical: https://discordtools.blog/blog/discord-analytics-tools
- Published: 2026-08-25
- Author: The Index desk
- Facts checked: 2026-08-30
- Sources:
  - Statbot documentation (https://statbot.net/) — checked 2026-08-30
  - Statbot API reference (https://statbot.net/docs) — checked 2026-08-30
  - Discord Developer Portal — audit log retention (https://docs.discord.com/developers/resources/audit-log) — checked 2026-08-30
  - dyno.gg (https://dyno.gg/) — checked 2026-08-30
- Publication: The Index, an independent site not affiliated with Discord Inc.

---
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](/blog/discord-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](https://dyno.gg/)'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](/blog/vetox-tickets-reference): 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](https://statbot.net/)     |
| 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.