Skip to main content

KPI Tracking & Goals

Monitor your loyalty program's performance with KPIs and community goals.

Setting KPIs

Create a KPI

/kpi set metric:daily_active_users target:500 period:week

With Alert Threshold

/kpi set metric:streak_retention target:70 alert_threshold:80

When the KPI drops below 80% of target (56% in this case), you'll get an alert.


Available Metrics

MetricDescriptionTypical TargetType
daily_active_usersUsers who claimed in 24h100Count
weekly_active_usersUsers who claimed in 7 days500Count
streak_retention% maintaining streaks60%Percentage
new_user_conversion% of new users engaging50%Percentage
voice_participation% using voice channels30%Percentage
reward_efficiencyAvg LTZ per active uservariesCount
churn_rate% becoming inactive20%Percentage
top_10_concentration% LTZ held by top 10%40%Percentage
triggered_event_rateEvents triggered per dayvariesCount
events_per_active_userAverage events per active user2-3Count
time_to_first_rewardMedian hours to first reward24Hours
time_to_first_reward_pct% rewarded within first day70%Percentage
repeat_event_rateAverage events per rewarded user3-5Count
repeat_event_rate_pct% triggering 3+ events40%Percentage
avg_streak_lengthAverage streak length7-14Days
streak_break_frequency% of streaks that break30%Percentage

KPI Periods

PeriodDescription
dayDaily targets (resets daily)
weekWeekly targets (resets weekly)
monthMonthly targets (resets monthly)
quarterQuarterly targets (resets quarterly)

Managing KPIs

View All KPIs

/kpi list

Shows active and inactive KPIs.

Generate Report

/kpi report

Comprehensive performance report.

Enable/Disable KPI

/kpi enable metric:daily_active_users
/kpi disable metric:churn_rate

Remove KPI

/kpi remove metric:old_metric

Export Data

/kpi export format:csv
/kpi export format:json start_date:2024-01-01

KPI Alerts

Set thresholds to get notified when performance drops.

Basic Alert Configuration

/kpi alert-config metric:daily_active_users threshold:80 frequency:daily_digest severity:warning

When DAU drops below 80% of target, alert is sent based on frequency and severity settings.

Advanced Alert Settings

/kpi alert-config metric:streak_retention threshold:75 frequency:immediate severity:critical channel:#alerts escalation_days:3 escalation_role:@Admin

Alert Options:

  • threshold - Alert when below X% of target (0-100)
  • frequency - immediate, hourly, or daily_digest
  • severity - critical, warning, or info
  • channel - Specific channel for alerts
  • escalation_days - Days before escalating to higher severity
  • escalation_role - Role to mention on escalation

Alert Logic

Metric TypeAlert When
Most metricsactual < (target × threshold / 100)
churn_rateactual > threshold (lower is better)
top_10_concentrationactual > threshold (lower is better)

View Alert Configuration

/kpi alert-config

Shows all configured alerts. Omit metric to see all, or specify a metric to see its config.


Compound Alerts

Create multi-condition alert rules that trigger when multiple KPIs meet certain conditions.

Create Compound Alert

/kpi compound-alert create name:"Low Engagement Alert" conditions:"dau<100,streak<50" logic:AND severity:critical

Conditions Format:

  • metric<value,metric>value (comma-separated)
  • Operators: <, <=, >, >=, =, !=
  • Example: dau<100,streak_retention<50,churn>20

Logic Types:

  • AND - All conditions must match
  • OR - Any condition can match

Manage Compound Alerts

/kpi compound-alert list                    # List all compound alerts
/kpi compound-alert view name:"Alert Name" # View details
/kpi compound-alert toggle name:"Alert Name" enable:true # Enable/disable
/kpi compound-alert remove name:"Alert Name" # Remove
/kpi compound-alert history # View trigger history

Custom Metrics

Create formula-based KPIs using existing metrics.

Create Custom Metric

/kpi custom-metric create name:"Engagement Score" formula:"(daily_active_users*0.6)+(weekly_active_users*0.4)" unit:count target:500

Formula Examples:

  • daily_active_users * 0.6 + weekly_active_users * 0.4 - Weighted engagement
  • (streak_retention + new_user_conversion) / 2 - Average of two metrics
  • reward_efficiency / daily_active_users - Efficiency per user

Available Base Metrics: All standard KPI metrics can be used in formulas (e.g., daily_active_users, streak_retention, reward_efficiency).

Test Formulas

/kpi custom-metric test formula:"daily_active_users * 2"

Test a formula without creating a metric.

Manage Custom Metrics

/kpi custom-metric list                    # List all custom metrics
/kpi custom-metric view name:"Metric Name" # View details
/kpi custom-metric edit name:"Metric Name" formula:"new formula" # Edit
/kpi custom-metric remove name:"Metric Name" # Remove

Period Comparisons

Compare current performance against a baseline period.

Set Baseline Period

/kpi compare set metric:daily_active_users baseline_start:2024-01-01 baseline_end:2024-01-31

This sets January 2024 as the baseline. Future reports will show:

  • Current value vs baseline value
  • Percentage change
  • Period-over-period trends

View Comparisons

/kpi compare                    # View all comparisons
/kpi compare metric:daily_active_users # View specific metric
/kpi compare disable metric:daily_active_users # Disable comparison

Presets & Templates

Use pre-configured KPI sets or save your own configuration.

Apply a Preset

/kpi preset list                    # List available presets
/kpi preset view name:"Gaming Community" # View preset details
/kpi preset apply name:"Gaming Community" # Apply to your server

Preset Types:

  • Industry Templates - Pre-built for gaming, NFT, DeFi, etc.
  • Alert Configs - Alert configurations
  • KPI Sets - Complete KPI configurations
  • Custom - Your saved configurations

Create Your Own Preset

/kpi preset create name:"My Server Config" description:"Optimized for our community" public:false

Saves your current KPI configuration as a reusable preset.


Role-Based Alert Routing

Route alerts to specific roles or channels based on severity.

Configure Role Routing

/kpi role-alerts set severity:critical role:@Admin channel:#critical-alerts mention:true
/kpi role-alerts set severity:warning role:@Moderators
/kpi role-alerts set severity:all channel:#all-alerts

Severity Levels:

  • critical - 🔴 Critical alerts only
  • warning - 🟡 Warning alerts only
  • info - 🔵 Info alerts only
  • all - All alert types

View Role Alert Configuration

/kpi role-alerts list                    # View all routing
/kpi role-alerts remove severity:critical # Remove routing

KPI Snapshots

The system automatically takes daily snapshots at midnight UTC.

What's Captured

  • All active KPI values
  • Actual vs target
  • Achievement status
  • Server stats

Storage

Snapshots are stored in discord_kpi_snapshots table for trend analysis.

Use Cases

  • Historical trend analysis
  • Period-over-period comparisons
  • Export with date ranges

Community Goals

Set server-wide goals for your community.

Create a Goal

/goals set name:"Q1 Growth" type:users target:1000 deadline:2024-03-31

Goal Types

TypeDescriptionSynced With
usersTotal active usersweekly_active_users KPI
dauDaily active usersdaily_active_users KPI
ltz_distributedTotal LTZ given outreward_efficiency KPI
streak_retentionStreak retention %streak_retention KPI
customCustom metricNot synced

Track Progress

/goals progress

Celebrate Completion

/goals celebrate

Post a celebration message when goal is achieved!


Scheduled Reports

Automate analytics delivery.

Schedule Weekly Report

/reports schedule frequency:weekly channel:#admin-stats day:monday

Preview Format

/reports preview

Disable Reports

/reports disable

KPI Dashboard Strategy

For Active Communities:

  • daily_active_users - Core engagement
  • streak_retention - Habit formation
  • new_user_conversion - Onboarding effectiveness

For Growing Communities:

  • weekly_active_users - Growth metric
  • churn_rate - Retention tracking
  • top_10_concentration - Distribution health

Alert Thresholds

KPIRecommended Threshold
Daily Active Users80%
Streak Retention75%
New User Conversion70%
Churn Rate120% (alert if above)

Database Schema

discord_kpi_configs

server_id       TEXT NOT NULL
metric TEXT NOT NULL
target_value NUMERIC NOT NULL
period TEXT DEFAULT 'week'
alert_threshold NUMERIC
is_active BOOLEAN DEFAULT TRUE

discord_kpi_snapshots

server_id     TEXT NOT NULL
snapshot_date DATE NOT NULL
snapshot_type TEXT DEFAULT 'daily'
metrics JSONB NOT NULL

Best Practices

Start Simple

Begin with 2-3 core KPIs:

  • daily_active_users
  • streak_retention
  • new_user_conversion

Review Weekly

Check /kpi report every Monday to:

  • Assess performance
  • Identify trends
  • Plan adjustments

Celebrate Wins

When goals are hit:

  • Use /goals celebrate
  • Post in announcement channel
  • Consider bonus drops