analytics

Discord Bot Analytics: KPIs, Metrics, and Growth Tracking

Rank.top Team8 min read

Server count tells you where your bot is installed. Analytics helps you see whether people use it, come back, and get what they need. Start with a few clear questions, then collect the data that helps you answer them.

a few numbers worth watchingIllustrative data
Weekly active users
210
People using the bot
Activation
48%
New servers finishing setup
Week-3 retention
28%
An earlier cohort returning
Command success
99.2%
Attempts completed successfully

Weekly active users · six example weeks

Example figures for this guide, not live bot statistics or performance targets.

Choose metrics that answer a question

A key performance indicator (KPI) should help you make a decision. If you want to improve onboarding, measure how many new servers finish setup. If commands feel slow, measure response times. Use the categories below to choose a small starting set.

Active users

How many distinct people use a command or component each day, week, or month? These are your DAU, WAU, and MAU.

Activation

How many new users or servers complete a useful first action within a defined period?

Engagement

Which commands and features get used, and by how many different people or servers?

Retention

Do people return after their first use? Compare groups that started in the same week.

Reliability

How often do commands succeed, and how long do people wait for a response?

Conversion

If you sell a paid plan, how many people reach checkout and complete a purchase?

start small

One goal. A few useful numbers.

For a new bot, start with activation, weekly active servers, and command success rate. Together, they show whether setup works, whether servers keep using the bot, and whether it delivers what they ask for.

From an install to a useful first action

Acquisition measures how people find and add your bot. Activation measures whether they get it working. Count those separately: an install does not tell you that setup succeeded.

  1. Record the install

    Track when the bot joins a server. Record the referral or campaign source when you can reliably identify it.
  2. Define the first useful action

    For a moderation bot, this might be enabling the first rule. For an events bot, it could be creating an event.
  3. Choose a time window

    For example, count servers that complete that action within 72 hours of installing. Give each server the full window before including it in the result.

Look beyond command totals

A rise in commands can come from a growing audience, one busy server, or repeated failed attempts. Count unique users and servers alongside command volume to see what changed.

Command usage

Track attempts, successes, and distinct users for each command. A rarely used command may need a clearer name or better documentation.

Feature adoption

Measure the share of active servers using a feature. Separate enabling it during setup from actually using it afterward.
  • Define active: choose a meaningful action, such as a successful command, and use that definition consistently.
  • Choose your unit: count people when studying personal use and servers when studying community adoption.
  • Compare similar groups: small servers and large communities may use the same bot very differently.

See whether people come back

A cohort is a group that started in the same period. Follow each group over time instead of comparing this week's total users with last week's: new arrivals can hide a drop in returning users.

read across, then compare downExample cohorts of 100 servers each. Cells show the share active in each week.
First activeWeek 0Week 1Week 2Week 3
Week A100%46%33%28%
Week B100%52%37%Not yet measured
Week C100%55%Not yet measuredNot yet measured

Week A has 28 of its original 100 servers active in week 3. Dashes mean that week has not finished yet.

Pick one retention definition and label it clearly. The example above counts servers that were active during each week after their first use. A day-7 retention metric would answer a different question.

Server churn

Start with the servers installed at the beginning of a period. Measure what share of that same group has removed your bot by the end.

Reactivation

Track previously inactive servers that use the bot again after a release or reminder. Define how long they must have been inactive first.

Put reliability beside usage

If engagement falls, check failures and response times before changing features. A command that times out gives people little reason to try again.

Reliability metrics and what they help diagnose
MetricWhat to look for
P95 and P99 latencySlow responses that an average can hide. P95 is the time within which 95% of measured responses finish.
Errors and timeoutsThe share of command attempts that fail, grouped by command and error type.
Rate-limit eventsRepeated throttling that may point to bursts or unnecessary API calls.
Gateway connectionDisconnects, missed heartbeat acknowledgements, and whether the bot can receive events.

Follow the path to a paid plan

If your bot offers paid features, track the steps between seeing an offer and completing a purchase. A single conversion percentage will not show you where people stop.

where do people stop?
  1. 01See the offer
  2. 02Open the paid-plan page
  3. 03Start checkout
  4. 04Complete a purchase
  • Conversion: divide completed purchases by the relevant starting group, such as users who saw the offer.
  • Checkout completion: compare successful payments with checkout starts.
  • Refunds and cancellations: track what happens after purchase, alongside revenue.
  • Attribution: use campaign tags or known referrers where available; keep unknown sources labeled as unknown.

Keep votes and revenue-sharing earnings separate from paid-plan conversion. They measure different ways people support your bot. The monetization guide covers the broader options.

Track listing activity with Rank.top

Rank.top provides vote data and statistics reported by your bot. For activation, retention, and per-user command usage, collect events in your own application as well.

GET/api/bots/{botId}/votes

Read vote data while signed in as the bot owner.

GET/api/bots/{botId}/stats

Retrieve the statistics available for your bot.

POST/api/bots/{botId}/post

Submit server count, user count, ping, and memory from your bot.

Send a statistics snapshot

Call this function from your bot process with its current statistics. Supply your account API key and the bot authorization token through environment variables.

submit-stats.jsNode.js
async function submitBotStats(botId, stats) {
const apiKey = process.env.RANK_TOP_API_KEY;
const token = process.env.RANK_TOP_AUTH_TOKEN;
if (!apiKey || !token) {
throw new Error("Missing Rank.top credentials");
}

const res = await fetch(
"https://rank.top/api/bots/" + botId + "/post",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " + apiKey,
},
body: JSON.stringify({
authorization: token,
serverCount: stats.serverCount,
userCount: stats.userCount,
ping: stats.ping,
memory: stats.memory,
}),
}
);

if (!res.ok) {
throw new Error("Stats submission failed: " + res.status);
}
}

Where to view the results

Open the Stats tab on your bot page to view available statistics. Use the owner dashboard for voting activity. Keep your own event dashboard for questions that need individual command or onboarding events.

Build a dashboard you will use

Put each metric next to a question and a possible action. Include the reporting period, comparison period, and release dates so changes have context.

A weekly review

Review activation, active servers, retention, and feature use. Compare equal time windows and note releases or campaigns that might explain a change.

Operational alerts

Alert on errors, disconnects, or slow responses that need attention now. Choose thresholds from your normal traffic and include enough detail to investigate.

from data to a decision

Change one thing, then measure again.

If new servers install the bot but never finish setup, try a shorter setup flow. Compare activation for the next complete cohort, and check that errors or support requests have not increased.

Common mistakes to avoid

Counting installations as activity

Being installed in a server does not mean the bot is being used. Keep installation counts and active-server counts separate.

Changing the definition midstream

A new definition of active can create a jump in your chart. Document changes before comparing periods.

Collecting without a question

Record events that support a decision. Avoid collecting message content or other data you do not need for the metric.

Treating every spike as progress

Exclude test traffic, check for retries, and investigate whether a small number of servers account for the increase.

Add your bot to Rank.top

Create a listing, submit your bot statistics, and follow its voting activity.

keep reading

More from the blog

All articles