6 min read

What Is DAU MAU Ratio in Amplitude

Your Monthly Active Users might look healthy, but if most of them aren't coming back daily, you've got a retention problem. The DAU/MAU ratio is the metric that catches this—it shows what percentage of your monthly users are actually active on any given day. In Amplitude, calculating this ratio reveals whether you're building a habit-forming product or just acquiring users who disappear.

Understanding DAU/MAU Ratio

DAU/MAU ratio (Daily Active Users ÷ Monthly Active Users) is a fundamental engagement metric. A healthy ratio depends on your product type.

Know what DAU and MAU mean in Amplitude

In Amplitude, DAU counts unique users who triggered at least one Event in a calendar day (UTC). MAU counts unique users who triggered an event in a calendar month. The ratio of DAU to MAU is typically expressed as a percentage. For example, if you have 10,000 MAU and 2,000 DAU, your ratio is 20%—meaning 1 in 5 monthly users comes back on any given day.

javascript
// Track user activity events in Amplitude SDK
amplitude.track('Product Used', {
  timestamp: new Date().getTime(),
  user_id: 'user123',
  device_id: 'device-abc'
});

// This event counts the user as Active for that day
// Amplitude automatically rolls up into DAU/MAU calculations
Every tracked event increments the user's active status for that calendar day

Understand what your ratio reveals

A low ratio (5-10%) suggests users aren't returning—maybe acquisition is strong but retention is weak. A high ratio (30%+) indicates strong engagement. Social apps typically see 40-60% ratios; productivity tools often sit at 10-20%. In Amplitude, use the Events > Active Users dashboard to see your active users broken down by day and month.

javascript
// Query Amplitude's User Search API to count active users in a date range
const response = await fetch('https://api.amplitude.com/api/2/usersearch', {
  method: 'POST',
  headers: {
    'Authorization': `Basic ${btoa(apiKey + ':' + secretKey)}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    'filters': [{
      'field': 'event_time',
      'operator': 'within last',
      'value': 1,
      'unit': 'day'
    }]
  })
});
const dau = (await response.json()).matches.length;
Use the User Search API to query active users for custom date ranges
Tip: Your DAU/MAU ratio will fluctuate based on time of week and seasonality. Compare week-over-week or month-over-month to spot real trends, not day-to-day noise.

Calculating DAU/MAU in Amplitude

You can pull DAU/MAU data directly from Amplitude's dashboards or use the Analytics API for custom calculations.

Pull active users from the Events dashboard

Go to Events > Active Users in Amplitude. Select Daily Active Users from the metric dropdown. Set your date range to one month. Take the average DAU, then switch to Monthly Active Users for the same period. The ratio is (Average DAU ÷ MAU) × 100 to get a percentage.

javascript
// Amplitude Dashboard API to fetch user count metrics
const dau = await fetch(
  'https://api.amplitude.com/api/2/metrics?metric=daily_active_users' +
  '&start=2024-01-01&end=2024-01-31&granularity=day',
  {
    headers: {
      'Authorization': `Basic ${btoa(apiKey + ':' + secretKey)}`
    }
  }
).then(r => r.json());

const mau = await fetch(
  'https://api.amplitude.com/api/2/metrics?metric=monthly_active_users' +
  '&start=2024-01-01&end=2024-01-31',
  {
    headers: {
      'Authorization': `Basic ${btoa(apiKey + ':' + secretKey)}`
    }
  }
).then(r => r.json());

const averageDau = dau.data.reduce((a, b) => a + b.value, 0) / dau.data.length;
const ratio = (averageDau / mau.data[0].value) * 100;
console.log(`DAU/MAU Ratio: ${ratio.toFixed(2)}%`);
Use the Analytics API to programmatically fetch and calculate DAU/MAU

Create a custom cohort for comparison

In Amplitude, go to Cohorts > Create Cohort. Build one cohort for "active in last 24 hours" using the filter Event Time >= yesterday and another for "active in last 30 days". Save both. Then create a dashboard chart that compares the sizes of these cohorts. This gives you a visual DAU/MAU ratio over time.

javascript
// Set user properties to track cohort membership
amplitude.identify(new amplitude.Identify()
  .set('daily_active', true)
  .set('monthly_active', true)
  .set('last_active_timestamp', new Date().getTime())
);

// Or use setUserProperties for simpler cases
amplitude.setUserProperties({
  'dau_cohort': 'active',
  'engagement_level': 'high'
});

// These properties can then be used in Amplitude's Cohort builder
Track user properties in Amplitude to enable cohort segmentation
Watch out: Amplitude's 'Active Users' metric counts any tracked event. If you're tracking background events (push notifications, analytics pings), your counts will be artificially high. Filter to intentional user actions in your amplitude.track() calls.

Interpreting and Acting on Your Ratio

Once you have your DAU/MAU ratio, the next step is understanding what it means and how to improve it.

Benchmark against your product type

Gaming apps target 40-70% DAU/MAU. Social networks aim for 50-80%. Productivity tools expect 5-20%. Ecommerce usually sits at 2-10%. In Amplitude, segment your users by Platform, Device Type, or User Source to see if some groups have dramatically different engagement. Power users and acquired users often have vastly different ratios.

javascript
// Track the user's segment in event properties
amplitude.track('Feature Used', {
  'feature_type': 'dashboard',
  'user_segment': 'power_user',
  'platform': 'mobile',
  'days_since_signup': 45
});

// In Amplitude dashboard, filter Events > Active Users by these properties
// Compare DAU/MAU for power_user vs casual_user segments separately
Use event properties to calculate DAU/MAU separately for each user segment

Drill into cohorts with low retention

If your overall ratio is 20% but new users have only 5%, you have an onboarding problem. Create a cohort in Amplitude for "Users created in last 7 days" and check their DAU/MAU separately. If it's much lower, your retention cliff is in week one. Use the Funnel view to see exactly where they drop off.

javascript
// Mark onboarding completion as a milestone event
amplitude.track('Onboarding Completed', {
  'onboarding_duration_seconds': 420,
  'steps_completed': 5,
  'user_source': 'organic'
});

// Set a user property to cohort users by onboarding status
amplitude.identify(new amplitude.Identify()
  .set('onboarded', true)
  .set('onboarded_date', new Date().toISOString())
);

// Now in Amplitude, create a Cohort filtered to onboarded=true and calculate their DAU/MAU
Tag user milestones to compare DAU/MAU retention curves by cohort
Tip: DAU/MAU alone doesn't tell the full story. A 20% ratio with a declining trend is worse than a flat 15%. Use Amplitude's Retention chart to see week-to-week patterns alongside your DAU/MAU ratio.

Common Pitfalls

  • Conflating 'active user' with 'engaged user'. Amplitude counts any event, including accidental clicks or system pings. Make sure your event tracking reflects intentional product usage, not noise.
  • Ignoring time zone differences. Amplitude's DAU uses UTC by default. If your users span zones, midnight UTC might be noon for them. Check your Event Settings > Timezone to align with your user base.
  • Comparing DAU/MAU across products without context. A note-taking app with 10% ratio is healthy; a messaging app with 10% is failing. Benchmark within your product category and user intent.
  • Forgetting to exclude test and internal events. QA team logins, demo accounts, and internal usage inflate your DAU counts. Use Amplitude's Property Filters or SDKs to exclude test users before they hit active user tallies.

Wrapping Up

Your DAU/MAU ratio is a window into whether your product is building habit. A declining ratio signals retention problems before churn accelerates. In Amplitude, calculate it monthly, drill into cohorts with low ratios, and track trends over quarters. If you want to track this automatically across tools and aggregate it with other product health metrics, Product Analyst can help.

Track these metrics automatically

Product Analyst connects to your stack and surfaces the insights that matter.

Try Product Analyst — Free