Admin Analytics Reference
The Admin Portal provides comprehensive analytics for monitoring platform activity, money flow, and event health. This guide explains what each metric means and where the data comes from.
Metric Definitions
Money Flow Metrics
| Metric | Description | Data Source |
|---|---|---|
| USDC In | New USDC coming into the platform from purchases (points_purchase, stripe_mint, stripe_purchase). This is money flowing INTO the platform. | transaction_events where event_type IN ('points_purchase', 'stripe_mint', 'stripe_purchase', 'purchase') |
| RSNC Spent | RSNC tokens spent/burned on perk claims and redemptions. This is RSNC flowing OUT of user wallets. | transaction_events where event_type IN ('perk_claim', 'redemption', 'claim', 'burn') |
| Total Transactions | Total number of transaction events recorded across all types. | Count of all transaction_events |
| Unique Customers | Number of unique wallet addresses that have made at least one transaction. | Distinct customer_address from transaction_events |
Event Health Metrics
| Metric | Description | Data Source |
|---|---|---|
| Total Events | Total events processed by a source | Count from respective event tables |
| Success Rate | Percentage of events that completed successfully | reward_status = 'success' or processing_status = 'processed' |
| Failed Events | Events that failed to process | reward_status = 'failed' or processing_status = 'failed' |
| Skipped Events | Events intentionally not processed (unconfigured) | reward_status = 'skipped' |
| Pending Events | Events awaiting processing | processing_status = 'pending' |
| Ignored Events | Events explicitly ignored | processing_status = 'ignored' |
RSNC Velocity Metrics
| Metric | Description | Data Source |
|---|---|---|
| RSNC Minted | RSNC tokens distributed/rewarded to users | reward_distributions where processing_status = 'completed' |
| RSNC Burned | RSNC tokens spent on claims/redemptions | transaction_events where event_type IN ('perk_claim', 'redemption', 'claim', 'burn') |
| Net Velocity | Minted minus burned (positive = net RSNC growth) | Calculated: minted - burned |
Conversion Metrics
| Metric | Description | Data Source |
|---|---|---|
| Perk Conversion Rate | Percentage of perk views that result in claims | analytics_events (view → claim) |
| Perk Sell-Through | Percentage of max supply that has been claimed | perk_collections.current_supply / max_supply |
| New Customers | First-time transacting customers on a given day | First customer_address appearance in transaction_events |
| Returning Customers | Customers with prior transactions on a given day | Subsequent customer_address appearances |
User Engagement Metrics
| Metric | Description | Data Source |
|---|---|---|
| DAU (Transactions) | Unique customers with transactions per day | Distinct customer_address from transaction_events |
| Discord DAU | Unique Discord users with events per day | Distinct discord_user_id from discord_gateway_events |
| Streak Distribution | Users grouped by current streak length | discord_user_streaks.current_streak |
| CLV (Customer Lifetime Value) | Total RSNC spent by a customer over time | Sum of amount_ltz per customer_address |
Partner Metrics
| Metric | Description | Data Source |
|---|---|---|
| Time to First Transaction | Days from partner onboarding to first transaction | partners.onboarded_at to first transaction_events.timestamp |
| Revenue by Tier | Transaction volume grouped by partner tier | partners.tier joined with transaction_events |
Data Sources
Primary Tables
| Table | Purpose | Key Columns |
|---|---|---|
transaction_events | Records all on-chain transactions (purchases, claims) | event_type, amount_ltz, amount_usdc, partner_address, customer_address, timestamp |
daily_analytics | Pre-aggregated daily stats per partner (may be stale) | date, partner_address, total_ltz_points, total_usdc_invested |
discord_gateway_events | Discord bot gateway events (GM/GN, voice, messages) | event_type, reward_amount, reward_status, brand_id, server_id |
discord_third_party_events | Third-party bot events (Mee6, Arcane level-ups) | source_bot, event_type, reward_amount, reward_status |
discord_user_stats | Aggregated per-user Discord stats | discord_user_id, server_id, total_ltz_earned, total_messages, total_voice_minutes |
discord_user_streaks | User streak tracking | discord_user_id, server_id, current_streak, longest_streak |
discord_server_configs | Server-level configuration | server_id, server_name, reward_config |
website_monitoring_events | Web SDK events (account_creation, form_submit) | event_type, brand_id, processing_status |
reward_distributions | RSNC rewards minted from events | brand_id, amount, processing_status, created_at |
analytics_events | Perk market activity (views, claims, searches) | event_type, collection_id, partner_id, metadata |
perk_collections | Perk collection metadata | collection_id, name, current_supply, max_supply, price_in_points |
partners | Partner accounts | address, business_name, tier, onboarded_at |
Source of Truth
For money flow metrics, always use transaction_events rather than daily_analytics. The daily_analytics table may contain stale or conflated data from various sources. The transaction_events table records actual on-chain transactions with clear event_type classification.
Event Sources and Coverage
Event Coverage Matrix
| Event Source | Handler | Tables Written | Admin Visibility |
|---|---|---|---|
| Web SDK | cloudflare-automation/event-handler | website_monitoring_events, reward_distributions, transaction_events | Analytics → Event Health, Channel Mix |
| Stripe Purchases | cloudflare-automation/stripe-mint | transaction_events | Analytics → USDC In, Daily Money Flow |
| Perk Claims | cloudflare-automation/consume-perk | transaction_events, perk_redemptions | Analytics → RSNC Spent, Daily Money Flow |
| POS Redemptions | cloudflare-automation/pos-redemption | transaction_events | Analytics → RSNC Spent |
| Discord Gateway | resonance-discord-bot/gateway-event-handler | discord_gateway_events | Discord Tab, Analytics → Channel Mix |
| Discord Third-Party | resonance-discord-bot/gateway-event-handler | discord_third_party_events | Discord Tab, Analytics → Channel Mix |
| Discord Perk Claims | resonance-discord-bot/perk-claim-handler | transaction_events | Analytics → RSNC Spent |
| Perk Market | Various frontend + backend | analytics_events | Analytics → Top Perks, Conversion Rates |
Event Types by Category
USDC Inflow Events
These events represent money coming into the platform:
points_purchase- Direct RSNC purchase via Stripestripe_mint- Stripe webhook completed purchasestripe_purchase- Stripe checkout completedpurchase- Generic purchase event
RSNC Outflow Events
These events represent RSNC being spent/burned:
perk_claim- User claims a perkredemption- POS redemptionclaim- Generic claim eventburn- Direct RSNC burn
Discord Events
gm/gn- Good morning/night messagesvoice_activity- Voice channel participationmessage_activity- Text channel participationreaction_add- Reaction addedlevel_up- Third-party bot level-up (Mee6, Arcane)streak_milestone- Streak achievement
Web SDK Events
account_creation- New account registeredemail_verification- Email verifiednewsletter_signup- Newsletter subscriptionform_submit- Form submissionpage_view- Page visited (if tracked)- Custom events based on brand configuration
Admin Portal Views
Overview Tab
- Stats Cards: Total transactions, USDC In, RSNC Spent, Unique customers
- USDC In vs RSNC Spent Chart: Dual-line chart comparing money flow over time
- Events by Source Chart: Bar chart showing event volume by channel
- Event Health Table: Source, Total, Success, Pending, Failed, Ignored, Success Rate
- Events by Type Table: Event type, Source, Count, RSNC
- RSNC Velocity Chart: Area chart showing RSNC minted vs burned over time with 7-day net velocity
- Gateway Success by Event Type Table: Event type breakdown with success/skipped/failed counts
- Perk Conversion Funnel Table: View-to-claim conversion rates per perk
- Perk Sell-Through Table: Claimed vs max supply percentage per perk
- Web SDK Events by Brand Table: Event counts by brand with processing status breakdown
- Anomaly Detection: List of days with significant (>50%) changes in USDC or RSNC
- Top Performing Perks Table: Highest claimed perks
- Daily Money Flow Table: Date, USDC In, RSNC Spent, Events, Unique Customers (with drill-down)
Revenue Tab
- Revenue Trends Chart: RSNC and USDC volume over time
- Revenue by Partner: Top partners by volume
- Revenue by Category: Pie chart of revenue distribution
- New vs Returning Customers Chart: Stacked bar chart showing customer acquisition
- Revenue by Partner Tier Chart: Pie chart and breakdown by basic/premium/enterprise tiers
Partners Tab
- Time to First Transaction: Avg/median days from onboarding to first transaction, with distribution
- Partner Performance Rankings: RSNC/USDC volume, transaction counts, customer counts
Users Tab
- Discord Engagement Summary: Cards showing total users, messages, voice minutes, RSNC earned, claims
- Engagement Timeline Chart: DAU (transactions), Discord DAU, Discord events, perk claims/views
- Perk Market Activity Chart: Claims, views, searches over time
- Top Discord Servers Table: Servers ranked by RSNC distributed
- Top Discord Users Table: Users ranked by RSNC earned, messages, voice minutes
- Streak Distribution Chart: Bar chart of user streak lengths (0, 1-7, 8-30, 31+ days)
- Top Search Queries: Most searched terms in perk market
- Customer Lifetime Value (CLV) Table: Top customers by RSNC spent with transaction history
Discord Tab
- Gateway events with status filter (success/skipped/failed/pending)
- Third-party events
- User stats
Drill-Down Capability
The Daily Money Flow table supports drill-down by clicking on any date row. This reveals:
- Breakdown by Brand: Which partners contributed to that day's activity
- Event Type Mix: What types of events occurred
- RSNC and USDC: Amount per brand/event type
Excluding Incomplete Data
Unnamed Partners
Partners who haven't completed onboarding (profile setup) are identified by their business_name matching one of:
- "Smart Account Partner"
- "Business Account"
- "Business Partner"
- "Unnamed Business"
- "Unnamed Partner"
- Empty/null
These are excluded from:
- Partner stats (Total Partners, Basic/Premium/Enterprise counts)
- Partner performance rankings (with toggle to show them)
Failed Events
Gateway events that failed processing are not written to discord_gateway_events to avoid polluting analytics with unconfigured/failed events.
Related Documentation
- Event Handler API - API for submitting events
- Database Schema - Discord tables
- Partner Portal Guide - Managing events