Skip to main content
Build a single dashboard that gives you complete visibility into your protocol’s health. This guide shows you how to create a metrics dashboard that tracks users, transactions, volume, and trends.

What you’ll learn

  • Design an effective protocol health dashboard
  • Create key metric charts with SQL and Ask AI
  • Set up real-time monitoring for critical metrics
  • Build executive-ready visualizations
  • Automate reporting with saved dashboards

Prerequisites


Part 1: How to Plan Your Dashboard

Key metrics for protocol health

Every protocol should track these core metrics:
CategoryMetricsWhy it matters
UsersDAU, WAU, MAU, new usersGrowth and engagement
TransactionsDaily txns, success rate, avg valueProtocol usage
VolumeDaily volume, cumulative volumeEconomic activity
RetentionWeek 1, Week 4 retentionUser stickiness
AcquisitionTop referrers, conversion rateGrowth efficiency

Dashboard layout best practices

Organize your dashboard for quick scanning:
┌─────────────────────────────────────────────────────────┐
│  DAU    │  WAU    │  Daily Volume  │  Success Rate     │  ← Key numbers
├─────────────────────────────────────────────────────────┤
│                Daily Active Users (Line)                │  ← Primary trend
├─────────────────────────────────────────────────────────┤
│     Transactions (Line)      │   Volume (Line)         │  ← Secondary trends
├─────────────────────────────────────────────────────────┤
│  Top Referrers  │  Countries  │  Retention Cohort      │  ← Breakdowns
└─────────────────────────────────────────────────────────┘

Part 2: How to Create the Dashboard

Step 1: Set up your board

1

Go to Dashboards in the Formo Dashboard

2

Click Add board

3

Name it "Protocol Health" or similar

Step 2: Add key number cards

Start with the most important metrics as single-number cards. Daily Active Users (DAU) Click Ask AI and type:
“Show me the number of unique wallets that connected today”
Or use SQL in the Explorer:
SELECT countDistinct(address) AS dau
FROM events
WHERE type = 'connect'
  AND timestamp >= today()
Weekly Active Users (WAU)
SELECT countDistinct(address) AS wau
FROM events
WHERE type = 'connect'
  AND timestamp >= now() - INTERVAL 7 DAY
Daily Transaction Volume Use Ask AI:
“Show me total transaction volume for today”
Or query the revenue table which contains volume data with full attribution context. Transaction Success Rate Use Ask AI:
“What is the transaction success rate for today?”

Step 3: Add trend charts

Daily Active Users Over Time
SELECT
  toDate(timestamp) AS date,
  countDistinct(address) AS dau
FROM events
WHERE type = 'connect'
  AND timestamp >= now() - INTERVAL 30 DAY
GROUP BY date
ORDER BY date
Choose Line chart visualization. Daily Transactions and Volume Use Ask AI:
“Show me daily transactions and volume for the last 30 days”
Use a dual-axis line chart to show both metrics. New vs. Returning Users Use Ask AI:
“Show me new vs returning users by day for the last 30 days”
Choose Stacked area chart to show composition.

Part 3: How to Add Breakdown Charts

Top referrers

SELECT
  referrer,
  countDistinct(address) AS wallets,
  count(*) AS events
FROM events
WHERE timestamp >= now() - INTERVAL 30 DAY
  AND referrer != ''
GROUP BY referrer
ORDER BY wallets DESC
LIMIT 10
Choose Bar chart or Table visualization.

Geographic distribution

SELECT
  location AS country,
  countDistinct(address) AS users,
  count(*) AS transactions
FROM events
WHERE timestamp >= now() - INTERVAL 30 DAY
  AND location != ''
GROUP BY country
ORDER BY users DESC
LIMIT 10
Choose Pie chart or Bar chart.

Wallet breakdown

Use Ask AI:
“Show me wallet connects broken down by wallet type for the last 30 days”
Or use the Key Metrics page which shows wallet breakdown automatically.

Part 4: How to Add Retention View

Cohort retention table

Add a Retention chart to your dashboard:
1

Click Add Chart

2

Select Retention chart type

3

Set starting event to connect

4

Set returning event to connect

This shows week-over-week retention for each cohort.

Retention trend

Track how retention changes over time:
SELECT
  toStartOfWeek(first_seen) AS cohort_week,
  countDistinct(address) AS cohort_size,
  countDistinct(CASE
    WHEN dateDiff('day', first_seen, last_seen) >= 7
    THEN address
  END) AS returned_week_1,
  round(returned_week_1 / cohort_size * 100, 1) AS week_1_retention
FROM (
  SELECT
    address,
    min(timestamp) AS first_seen,
    max(timestamp) AS last_seen
  FROM events
  WHERE type = 'connect'
  GROUP BY address
)
WHERE first_seen >= now() - INTERVAL 8 WEEK
GROUP BY cohort_week
ORDER BY cohort_week

Part 5: How to Add Funnel Metrics

Conversion funnel

Add a Funnel chart showing your key conversion:
1

Click Add Chart

2

Select Funnel chart type

3

Add steps

  • Step 1: Page view (type = page)
  • Step 2: Wallet connect (type = connect)
  • Step 3: Transaction (type = transaction)

Funnel conversion rate over time

Track how conversion changes:
SELECT
  toDate(timestamp) AS date,
  countDistinct(anonymous_id) AS visitors,
  countDistinct(CASE WHEN type = 'connect' THEN address END) AS connected,
  countDistinct(CASE WHEN type = 'transaction' THEN address END) AS transacted,
  round(connected / visitors * 100, 1) AS connect_rate,
  round(transacted / connected * 100, 1) AS transaction_rate
FROM events
WHERE timestamp >= now() - INTERVAL 30 DAY
GROUP BY date
ORDER BY date

Part 6: How to Add Advanced Metrics

User segments breakdown

Use Ask AI:
“Show me user count by lifecycle segment for the last 30 days”
Or view the Users page and filter by Lifecycle to see the breakdown of New, Returning, Power User, Churned, and Resurrected users.

Volume per user (if applicable)

Use Ask AI:
“Show me daily volume per active user for the last 30 days”
This calculates total volume divided by active users for each day.

Week-over-week growth

SELECT
  toStartOfWeek(timestamp) AS week,
  countDistinct(address) AS wau,
  lagInFrame(wau) OVER (ORDER BY week) AS prev_wau,
  round((wau - prev_wau) / prev_wau * 100, 1) AS wow_growth
FROM events
WHERE type = 'connect'
  AND timestamp >= now() - INTERVAL 8 WEEK
GROUP BY week
ORDER BY week

Part 7: How to Set Up Monitoring

Create alerts

Set up Alerts for critical metrics: Alert: DAU drop
  • Condition: DAU drops 20% vs. 7-day average
  • Notify: Team Slack channel
Alert: Transaction failures spike
  • Condition: Failure rate > 10%
  • Notify: Engineering team
Alert: Whale activity
  • Condition: User with net worth > $1M connects
  • Notify: BD team

Schedule reviews

  • Daily: Check key numbers (DAU, volume, success rate)
  • Weekly: Review retention, acquisition sources, user segments
  • Monthly: Deep dive on trends, cohort analysis, growth rates

Example: Complete dashboard

Here’s a complete dashboard configuration:
RowChartsPurpose
1DAU, WAU, MAU, Daily VolumeKey metrics at a glance
2Daily Active Users (30d line)Primary growth trend
3Transactions (line), Volume (line)Activity metrics
4Top Referrers (bar), Countries (pie)Acquisition breakdown
5Retention cohort tableUser stickiness
6Conversion funnelHealth of user journey

Summary

You’ve learned how to:
  1. Plan an effective dashboard with the right metrics
  2. Create key number cards for at-a-glance metrics
  3. Build trend charts to track growth over time
  4. Add breakdown charts to understand user composition
  5. Include retention to measure stickiness
  6. Set up monitoring with alerts and reviews

Dashboard checklist

Next steps