The Journal

Analytics

Discord server analytics: a record kept before you need it

Discord keeps audit log entries for 45 days. Server analytics you want in six months depend on a record you started keeping before you needed it.

Discord stores audit log entries for 45 days. That single limit is the structural reason a community needs its own record: past six weeks, the platform cannot tell you who did anything. Which numbers matter is downstream of a more basic question — which ones you will still be able to answer in March.

Most servers discover the limit at the worst possible moment, which is the first time they need to reconstruct something.

What does Discord actually keep?

Less than people assume, in three separate ways.

Retention. The audit log’s own documentation is unambiguous: “All audit log entries are stored for 45 days.” Not archived, not paginated further back. Gone.

Coverage. The audit log is a record of administrative actions, not of what happened in the community. Its message-related events are MESSAGE_DELETE, MESSAGE_BULK_DELETE, MESSAGE_PIN and MESSAGE_UNPIN — there is no edit event and no reaction event. Its voice entries, MEMBER_MOVE and MEMBER_DISCONNECT, record a moderator moving or disconnecting someone; members joining and leaving voice on their own are not audit-log material at all.

Shape. It is a list, not a dataset. There is no aggregation, no time series, no per-member view and no export. Answering “is this getting worse” from it means reading it.

None of that is a criticism of Discord — an audit log is doing exactly its job. The mistake is treating it as the community’s memory.

Three records, three jobs, three windows

The single most useful thing an operator can internalise is that these are not the same system and should not be confused for one another.

RecordAnswersTypical windowWho owns it
Audit trailWho performed this administrative action?45 days (Discord)Discord
Event logWhat happened in the community, and when?As long as you keep the channelYou
AnalyticsIs the trend up or down, and for whom?Whatever your tooling retainsYour tooling
Configuration auditWho changed the bot’s settings?Not covered by Discord at allYour tooling

The fourth row is the one nobody expects. Discord’s audit log does not see anything that happens in a bot’s dashboard, which means the entire configuration surface of your community — every threshold, every log destination, every gate — has no native record of who changed it.

Building the record before you need it

The event log is the cheapest insurance in server operations, because it is a channel, and a channel is free and permanent.

Vetox’s Logging defines 148 event types across 14 categories — server, moderation, messages, channels, roles, emotes, voice, threads, scheduled events, AutoMod, stage, webhooks, integrations and giveaways — each independently enabled, each pointed at its own channel with its own accent colour. Every event ships off by default, which is the right default: a server that turns all 148 on has built a firehose nobody reads.

The whole event catalogue is free on every tier including Starter. Three things require Basic ($4.99/month): resolving and displaying which staff member performed the action, delivery to a webhook rather than a channel, and the bulk tool that creates the channels and wires the events up in one pass.

That first one is worth understanding rather than skimming. Without executor detail, a log entry says a role was deleted. With it, the entry says who deleted it. Six weeks later, that is the difference between a record and a rumour — and it is the exact window in which Discord’s own copy expires.

Start with the minimum viable trail, not with everything:

  1. The 14 moderation events — joins, leaves, bans, unbans, role changes, mutes, timeouts, kicks, nickname changes.
  2. channelDelete, roleDelete and serverOwnershipTransfer. These three are the ones you will want during an incident and cannot reconstruct afterwards.
  3. messageDelete and messageEdit, with your busiest channels excluded — the nine message events are the only ones with a per-channel exclusion list, which exists precisely because unfiltered message logging in a large #general is unreadable within a day.

Everything else can wait until you have a reason.

Which numbers actually indicate health?

Split them by who they are about, because the two halves fail differently.

Member-side

The four leading indicators are covered in detail in measuring server health: weekly unique posters, thirty-day new-member conversion, the share of messages held by the top ten posters, and time to first response for a new member’s first post. Those four move before anything else does, and they are the set worth tracking by hand if you track nothing else.

Vetox’s server overview surfaces the raw material for the first: six headline cards — members, messages, interactions, joins, leaves and voice minutes — four charts, a top-members table and a server-activity table, over a window of 7, 14, 30, 60 or 90 days. It is free on every tier, is not gated behind any toggle, and the underlying statistics are retained for 92 days.

Ninety-two days is a deliberate figure and worth comparing to 45. It spans a full quarter, which is the shortest period over which a community trend is legible rather than seasonal.

For counters visible without opening anything, Server Insights turns a channel name into a live figure using eight placeholders — members, online, offline, bots, boosts, channels, roles and voice users — rewritten on a schedule. Starter allows 3 such channels, Basic 10, Max unlimited. These are a display, not an analysis: useful for the room, useless for a trend, and worth keeping to three or four so the channel list stays readable.

For genuine analysis rather than counters — per-member and per-channel breakdowns, heatmaps, longer history, export — a dedicated analytics bot is the better tool, and Statbot is the established specialist in that niche. This is one of the clearer cases for deliberately running a second bot rather than expecting one to be best at everything.

Staff-side

Almost nobody tracks these, and they predict operational failure earlier than the member-side numbers predict community failure.

Actions per active moderator per week. Not to enforce a quota — to spot the drop. A moderator whose action count falls while their presence holds is disengaging before they say so.

Time from report to resolution. The number that tells you whether the queue is a queue or a pile.

Consistency on repeat behaviours. Take the last ten instances of your most common violation and compare outcomes. Wide variance is the clearest possible signal that the ladder is not written down or not followed.

Configuration churn. How many settings changed last month, and by whom. Vetox’s Dashboard Watcher records this — user, module, timestamp, and an expandable list of the individual settings that moved — free on every tier, keeping the most recent 500 entries for 90 days, filterable by module, time window and free text.

Its most useful property is not the audit function. It is that an entry exists only when a save succeeded, so a missing entry is positive evidence that a change never took effect. That turns “I definitely turned that on” from an argument into a lookup, and it pairs directly with delegated dashboard access — grant by section, then verify what the grant was used for.

Which numbers lie?

Member count. Cumulative, only falls on a departure, and therefore flattering by construction.

Online count. Discord counts people with the app open, which is most of them, most of the time, doing something else entirely.

Total messages. Rises with a handful of chatty regulars and with a spam wave alike, and the two are indistinguishable in the total.

Any single-day figure. Discord activity is strongly weekly. Comparing Tuesday to Sunday produces a conclusion about the calendar.

Level leaderboards read as engagement. They measure volume, and volume is the easiest thing to inflate — including accidentally, by members posting short messages to farm XP. If you use a progression system, weight it for consistency rather than raw count and watch unique participants rather than totals.

A cadence that survives contact

Weekly, five minutes. Weekly unique posters against the previous week. Skim the moderation log category. Nothing else.

Monthly, half an hour. Thirty-day conversion for the cohort that joined last month. Top-ten concentration. Read the configuration audit end to end — this is the one that catches drift, and it takes four minutes.

Quarterly, an hour. The 90-day view, which is the longest window most tooling retains and therefore the longest one you can actually inspect. Compare against the previous quarter and write down one sentence about what changed and why you think so. That sentence, kept somewhere, is worth more in a year than the charts are.

The uncomfortable conclusion

You cannot analyse a period you did not instrument, and instrumentation is only ever set up by someone who is not currently in a hurry.

The 45-day figure is the deadline. Whatever record you want to have during the next incident, the next staff dispute or the next attempt to explain a decline, you have about six weeks of grace on the platform’s own copy — and after that, the only version that exists is the one you decided to keep.

Sources

Checked

  1. Discord developer docs — Audit Log resource (retention and event types) (opens in a new tab)
  2. Statbot documentation (opens in a new tab)
  3. docs.vetox.io — Logs (opens in a new tab)
  4. docs.vetox.io — Server Insights (opens in a new tab)
  5. docs.vetox.io — Dashboard Watcher (opens in a new tab)

How we verify