---
title: "User Sessions: Track engagement frequency and duration"
description: Build a user sessions analysis
product: analytics
token_estimate: 2099
---
# User Sessions: Track engagement frequency and duration

> For AI agents: a documentation index is available at [/docs/llms.txt](/docs/llms.txt). Append `.md` to any page URL for markdown, or send `Accept: text/markdown`.

The User Sessions chart analyzes your users through session-based metrics like the distribution of session lengths, average session length, and average sessions per user. Use it to answer questions like:

- How frequently do users engage with your product?
- How long do they engage with your product?
- How do these metrics compare to other user segments?

> **Note:** See also
>
> To analyze session metrics and event metrics together in a single chart, try [Metric Explorer (Beta)](https://amplitude.com/docs/analytics/charts/metric-explorer/metric-explorer-build).

Before you build a user sessions chart, get familiar with [building charts in Amplitude](https://amplitude.com/docs/get-started/helpful-definitions) and [session IDs and how Amplitude tracks sessions](https://amplitude.com/docs/data/sources/instrument-track-sessions).

## Set up a user sessions chart

Most Amplitude charts rely on the Events Module to build an analysis. The User Sessions chart works differently because it uses a Sessions Module.

**Figure: Total sessions per day**

Total sessions follow a strong weekly rhythm, plateauing around 118k–137k on weekdays and dropping to roughly 37k–52k on weekends.

Line chart. X axis: Date. Y axis: Sessions. All Users: values from 2026-02-24 onward cover an incomplete period and render dashed.

| Date | All Users |
| --- | --- |
| 2026-01-27 | 41478 |
| 2026-01-28 | 62170 |
| 2026-01-29 | 127085 |
| 2026-01-30 | 124717 |
| 2026-01-31 | 123541 |
| 2026-02-01 | 118131 |
| 2026-02-02 | 88374 |
| 2026-02-03 | 37584 |
| 2026-02-04 | 58917 |
| 2026-02-05 | 126418 |
| 2026-02-06 | 124873 |
| 2026-02-07 | 122146 |
| 2026-02-08 | 108327 |
| 2026-02-09 | 71284 |
| 2026-02-10 | 45093 |
| 2026-02-11 | 104312 |
| 2026-02-12 | 123847 |
| 2026-02-13 | 124631 |
| 2026-02-14 | 122918 |
| 2026-02-15 | 118276 |
| 2026-02-16 | 79438 |
| 2026-02-17 | 52147 |
| 2026-02-18 | 84623 |
| 2026-02-19 | 129736 |
| 2026-02-20 | 135412 |
| 2026-02-21 | 137251 |
| 2026-02-22 | 128394 |
| 2026-02-23 | 101237 |
| 2026-02-24 | 50418 |
| 2026-02-25 | 68932 |

This chart plots total sessions per day across all users, with one point per day. It shows a strong weekly cadence: sessions hold a weekday plateau in the low hundreds of thousands and fall to weekend troughs near 40,000. Use it as the baseline session volume that other session metrics, such as bounce, entry, and exit rate, break down into finer segments. The dashed tail marks the most recent day, whose data is still incomplete.

A user sessions analysis breaks out your users into groups based on characteristics of their sessions in your product.

You can also use this chart to **count the number of events users fire during their sessions**. This lets you assess engagement during a particular period of activity, instead of during an entire day, week, or month.

### Build a user sessions chart

To build your own user sessions chart, follow these steps:

1. In the Sessions Module (where you'd usually find an Events Module), use the _Count_ dropdown to specify whether your User Sessions chart measures sessions or events performed within sessions.
2. If you're **counting events performed within sessions**, specify the event to count by clicking _Select Event_ under _Event Count_. If you're measuring sessions instead, skip this step.
3. Add properties to your starting event by clicking _+ Filter by_ and choosing one of the available properties: `Session Duration`, `Contains Event`, `First Property` value, or `Last Property` value.

   Enter the session's minimum length in seconds, minutes, hours, or days for `Session Duration`. Choose an event the user must trigger during each session for `Contains Event`. Or choose a property each session must contain for `First Property` value or `Last Property` value.
4. To group your sessions by a property, click **+ Group by** and choose the property. You can apply a single group-by to each Sessions object in the Sessions module, and add multiple group-bys in the Segment By module.
5. If you selected **_Sessions_** in Step 1, choose from the following options in the Measured As Module:

   - **Total Sessions**: Graphs the total number of sessions across all users. Amplitude calculates this by counting the total number of valid sessions in the interval. (When you instrument session IDs, "valid" means a session with an ID other than 'none' or `-1`.) Total Sessions doesn't count sessions containing only inactive events.
   - **Time Spent**: Graphs the total sum of all session lengths in the interval.
   - **Time Spent per User**: Graphs the average time spent in sessions per interval. Amplitude calculates this by taking the sum of all session lengths in the interval, and dividing by the total number of active users in the interval.
   - **Avg Length**: Graphs the average session length. Amplitude calculates this by taking the sum of all session lengths in the interval, and dividing by the total number of sessions in that interval.
   - **Length Distribution**: Displays the distribution of session lengths in a histogram. Customize the shape of the distribution by setting the minimum and maximum session lengths. The minimum value is inclusive, and the maximum value is exclusive. The example above shows session length distribution for sessions between 1 and 30 minutes long in 5-minute intervals.
   - **Avg Per User**: Graphs the average number of sessions per user. Amplitude calculates this by dividing the total number of valid sessions in an interval by the total number of active users in the same interval.
   - **Formula**: With formulas, you can create your own custom metrics, such as bounce, entry, and exit rates. The following metric formulas are available in User Sessions analyses: `EVENTTOTALS`, `HIST`, `PROPSUM`, `SESSIONTOTALS`, and `UNIQUES`. These metric formulas work like the definitions in [the custom metric formulas Help Center article](https://amplitude.com/docs/analytics/charts/event-segmentation/event-segmentation-custom-formulas), but the syntax refers to **sessions** instead of events.

   If you selected **_Events performed within sessions_**, choose from the following chart options instead:

   - **Average Events per Sessions**: Graphs the average number of times users perform a selected event per session. The time series plots the number of times users perform the event in a session per interval (day, week, month, and so on). Use this to analyze average engagement.
   - **Total Events Across Sessions**: Graphs the total number of times users perform a selected event in sessions. Like plotting totals in Event Segmentation, this shows the number of times users have performed a particular action across all sessions in an interval.
   - **Distribution**: Graphs a distribution of the number of sessions that include a selected event. The x-axis shows a range of the number of times users performed the selected event, and the y-axis plots the number of sessions in the time range. This analysis shows which of your users have the highest or lowest in-session engagement. To set individual ranges for each bucket, click _Set buckets_:

   ![userSessions_setBuckets.png](https://amplitude.com/docs/images/user-sessions/usersessions-setbuckets-png.png)
6. In the Segment By module, identify the user segment to include in this analysis. To import a previously saved segment, click _Saved_ and select the one you want from the list. Otherwise, Amplitude targets all users by default.
7. To build your own user segment instead, add properties. Click _+ Filter by_, choose the property to include, and specify the property value you're interested in.
8. To narrow the focus further to users who already performed certain actions, click _+ Performed_, then choose the event you're interested in.
9. To add another user segment, click _+ Add Segment_ and repeat steps 5 through 7.
10. Use the datepicker to set the timeframe of your analysis.

> **Note:**
>
> Amplitude excludes sessions lasting longer than a day from analyses.

Read on to learn more about [interpreting your User Sessions chart](https://amplitude.com/docs/analytics/charts/user-sessions/user-sessions-interpret).

