6 min read

How to Visualize Event Frequency in Amplitude

Understanding how often users engage with specific actions reveals engagement patterns that raw event counts hide. In Amplitude, you can visualize event frequency—how many times users triggered a specific event—across segments, cohorts, and custom time windows. This lets you identify power users, detect engagement drops, and measure whether feature adoption is sticky.

Track Events and Filter by Frequency

Before you can visualize frequency, you need events flowing into Amplitude. Then you'll use the Segmentation panel to filter by how often users triggered an action.

Track events with the JavaScript SDK

Install the Amplitude SDK and call amplitude.track() whenever a user performs an action. Each call increments the event count for that user. Include properties like product_id or amount so you can segment on context later.

javascript
import * as amplitude from '@amplitude/analytics-browser';

amplitude.init('YOUR_API_KEY');

amplitude.track('Purchase', {
  amount: 99.99,
  currency: 'USD',
  product_id: '12345'
});
Every track() call counts as one event occurrence. Amplitude sums these per user to calculate frequency.

Open the Events tab and apply frequency filters

Navigate to Events, select your event (e.g., 'Purchase'), then click Segmentation. In the filtering panel, click Add filter and choose a frequency condition: 'at least X times', 'exactly X times', or 'more than X times'. Set the time window (last 7 days, 30 days, 90 days) to define the counting period.

javascript
// Simulate a user triggering the same event multiple times
const trackMultiplePurchases = () => {
  for (let i = 1; i <= 5; i++) {
    amplitude.track('Purchase', {
      amount: 20 + Math.random() * 80,
      attempt: i
    });
  }
};

trackMultiplePurchases();
In Amplitude's segmentation view, this user now appears in the '5+ purchases' frequency bucket.

Segment by user frequency to find power users

Set up multiple frequency tiers: 'at least 1 time' (all users), 'at least 5 times' (engaged), 'at least 20 times' (power users). Amplitude will show you separate segments, each with its own event count and active users. Compare the size of each tier to understand your engagement distribution.

Create Frequency Cohorts and Monitor Trends

Save your frequency segments as cohorts to reuse them across dashboards and funnels, then track how they change over time.

Save a frequency segment as a cohort

After filtering by frequency in the Segmentation panel, click Save as cohort. Name it something descriptive like 'Power Users - 10+ Purchases Last 30d'. Amplitude continuously updates cohort membership as users meet or drop below the frequency threshold.

javascript
// Ensure user ID is set for consistent cohort tracking
amplitude.setUserId('user_123');

// Track qualifying events
for (let i = 0; i < 10; i++) {
  amplitude.track('Purchase', {
    amount: 50 + Math.random() * 50,
    product: 'widget'
  });
}
Without setUserId(), cohort assignment fails or becomes unpredictable across sessions.

Build a dashboard to visualize frequency trends over time

Go to Dashboards and create a new one. Add a chart block, select your event, and choose the Events metric. Filter by your frequency cohort. Set the time range to days or weeks to see how many times users in that cohort triggered the event. The line chart shows engagement velocity.

Analyze Frequency Progression with Funnels and Export

Go deeper by visualizing frequency drop-off in user journeys and exporting data for custom analysis.

Create a funnel showing frequency progression

Build a funnel with steps that represent increasing frequency thresholds for the same event. For example: Step 1: 'Clicked Signup' (1+ times), Step 2: 'Clicked Signup' (3+ times), Step 3: 'Clicked Signup' (5+ times). The drop-off between steps shows how many users repeat the action.

javascript
// Simulate user retries over time
const attemptSignup = (maxAttempts) => {
  let attempt = 1;
  const interval = setInterval(() => {
    amplitude.track('Signup_Attempt', {
      attempt_number: attempt,
      success: Math.random() > 0.3
    });
    attempt++;
    if (attempt > maxAttempts) clearInterval(interval);
  }, 2000);
};

attemptSignup(5);
In the funnel view, each step counts users who triggered Signup_Attempt at least N times.

Export frequency data for distribution analysis

Click the Export button on any Events segmentation chart to download a CSV. The export includes event counts per user, letting you build histograms or distribution curves in a spreadsheet. Look for multimodal distributions (bumps at specific frequencies) that reveal behavior clusters.

Common Pitfalls

  • Confusing event count with unique user count. If 5 users each triggered 'Download' once, the total event count is 5, but frequency per user is 1. Amplitude distinguishes these in the UI—check which metric you're filtering on.
  • Setting the time window too short (1-7 days). If your product has weekly or monthly cycles, a short window will show sparse frequency data. Expand to 30 or 90 days to see real behavior patterns.
  • Forgetting to call setUserId() before tracking. Without it, Amplitude attributes events to anonymous or device IDs, which don't carry across sessions or devices. Frequency counts become meaningless.
  • Tracking the same event with inconsistent properties (e.g., 'plan' vs. 'Plan' vs. 'PLAN'). Segmentation filters are case-sensitive. One misspelled property value breaks the frequency bucket.

Wrapping Up

Event frequency reveals engagement patterns that single event counts obscure. By filtering by frequency, building cohorts of users at each tier, and monitoring trends on dashboards, you identify power users, spot churn early, and measure feature stickiness. If you want to track this automatically across tools, Product Analyst can help.

Track these metrics automatically

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

Try Product Analyst — Free