Skip to content
Open
140 changes: 102 additions & 38 deletions docs/reports.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
title: "Reports Overview"
---

A report is a visual display of your tracked Mixpanel data.

Check warning on line 5 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L5

Did you really mean 'Mixpanel'?

Mixpanel has several types of reports: [Insights](/docs/reports/insights), [Funnels](/docs/reports/funnels/funnels-overview), [Flows](/docs/reports/flows), [Retention](/docs/reports/retention) and other advanced reports, each with their specialized use, and they can be accessed from the top-left side of the screen by clicking the '\+ Create New' button.

Check warning on line 7 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L7

Did you really mean 'Mixpanel'?

This article focuses on the key concepts that are applicable across the four basic report types (Insights/Funnels/Flows/Retention).

<Note>
Mixpanel's core reports are available on all free and paid subscription plans.

Check warning on line 12 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L12

Did you really mean 'Mixpanel's'?
</Note>

## Metrics
Expand Down Expand Up @@ -86,13 +86,13 @@
- How well do users retain after performing a key event for the first time?
- What events do users perform before and after making their first purchase?

You can do this by adding a First Time Filter to any event in Mixpanel. This filters the event down to only the first instance of the event performed by a user:

Check warning on line 89 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L89

Did you really mean 'Mixpanel'?

<Frame>
![233894752-93851682-9d83-4c87-937d-8fd90db465c6.png](https://user-images.githubusercontent.com/2077899/233894752-93851682-9d83-4c87-937d-8fd90db465c6.png)
</Frame>

Mixpanel computes this on-the-fly by scanning each user's history to determine if this was the first instance of the event performed by the user, based on timestamp. Note that when there's a tie in the timestamps of the first event (e.g., the user does multiple first-time Purchases in the same second), all of those events will be considered the "first time" and will match the filter. The impact will be that Mixpanel includes multiple events for those users, so if you break down by user ID, you may see that the user did multiple first events.

Check warning on line 95 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L95

Did you really mean 'Mixpanel'?

Check warning on line 95 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L95

Did you really mean 'Mixpanel'?

## Breakdowns

Expand Down Expand Up @@ -132,91 +132,146 @@

- Select "Event" to show only the [Event properties](/docs/data-structure/events-and-properties).
- Select "User" to show only the [Profile properties](/docs/data-structure/events-and-properties).
- If you set up [Group Analytics](/docs/data-structure/advanced/group-analytics), the group keys will show up individually under their display names. You can select any Group key to show only the Group properties relevant to the selected Group key.
- Select "Computed" to show only the [Computed properties](/docs/features/computed-properties).
- If you set up [Group Analytics](/docs/data-structure/advanced/group-analytics), the group keys will appear individually under their respective display names. You can select any Group key to show only the Group properties relevant to the selected Group key.
- Select "Cohorts" to show only the [Cohorts](/docs/users/cohorts).
- If you set up [Experiments](/docs/experiments), the experiments will show up individually under their display names.
- If you set up [Experiments](/docs/experiments), they will appear individually under their respective display names.

<Frame>
![/prefix.png](/images/prefix.png)
![/insights\_properties\_section.png](/insights_properties_section.png)
</Frame>

### Duplicating Metrics

To duplicate any metrics or properties in your query, select the inline action menu and choose **Duplicate**. Delete any events or properties by clicking the **trash** icon.
To duplicate any metrics or properties in your query, select the inline action menu and choose **Duplicate**. Delete any events or properties by clicking the **Remove** button.

<Frame>
![image](/images/f496b609-47a3-4287-95f8-e9e6f2ac915d.png)
<img
src="/images/event_options.png"
alt="Event Options"
title="Event Options"
className="mx-auto"
style={{ width:"57%" }}
/>
</Frame>

## Date Range

Determine the time range of a query by clicking on the date range selector. The date range selector is common across all reports.

All dates and times in Mixpanel reflect the project timezone. The default on most reports is “Last 30 days” (displayed as "30D"), but there are a variety of preset options, as well as the option to select a custom date range.
All dates and times in Mixpanel reflect the project's timezone [(by default, UTC)](/docs/orgs-and-projects/managing-projects#changing-your-timezone). The default for most reports is “Last 30 days” (displayed as "30D"), but there are a variety of preset options, as well as the option to select a custom date range.

Check warning on line 162 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L162

Did you really mean 'Mixpanel'?

<Frame>
![date rate](/images/date-range.png)
![new date rate](/images/new_date_range.png)
</Frame>

For these date ranges, the output shows results from the last complete 30 days, plus any results from the current incomplete day.
For these date ranges, the output shows results from the last complete days, plus any results from the current incomplete day.

| Preset | Description |
| --- | --- |
| Custom | Gives multiple customization possibilities, explained below. |
| Today | Includes the current incomplete day up to the current second. |
| Yesterday | Includes the whole of the previous day from midnight to midnight. |
| Last 7 days | Last 7 days and the query count from the current incomplete day up to the current second. |
| Last 30 days | Last 30 days and the query count from the current incomplete day up to the current second. |
| Last 3 months | Last 3 months and the query count from the current incomplete day up to the current second. |
| Last 6 months | Last 6 months and the query count from the current incomplete day up to the current second. |
| Last 12 months | Last 12 months and the query count from the current incomplete day up to the current second. |
| Week to Date | From midnight of the start of the current week up to the current second. |
| Month to Date | From midnight of the start of the current month up to the current second. |
| Quarter to Date | From midnight of the start of the current quarter up to the current second. |
| Year to Date | From midnight of the start of the current year up to the current second. |

### Select a Date Range
### Custom

Selecting **Custom** on the date range selector opens up some additional options: "Last", "Fixed", and "Since".
Selecting **Custom** on the date range selector opens up some additional options: "Recently Applied", "Fixed", Last", Since", "Period to date", and "Previous period".

### Last
### Recently Applied

“In the last” allows you to select a rolling time range similar to the default “last 30 days”, but you have the flexibility to choose the time value and scale, either days, weeks, or months.
This option will give you access to a prompt field, where you can type the range you're looking for (_'last 16 days starting on June 4th'_) for the AI to resolve for you, and also see a list of the last ranges used.

<Frame>
![/Screen\_Shot\_2022-07-11\_at\_3.17.05\_PM.png](/images/Screen_Shot_2022-07-11_at_3.17.05_PM.png)
<img
src="/images/date_picker_recently_applied.png"
alt="Date Picker Recently Applied"
title="Date Picker Recently Applied"
className="mx-auto"
/>
</Frame>

If you need to, you can click on the **\+ Ending** button and shift back the desired time window by a selected number of days. So, for instance, in the example below, we are still looking at a 2-week window that is shifted by 7 days back. This is a rolling date range, and if this report is saved as a bookmark or added to a board, the actual dates will continue to update to show this relative time period vs. today.
### Fixed

“Fixed” allows you to select two dates to query between by entering the same start and end date. If you save this report as a bookmark or add it to a board, the date range selection will always persist.

<Frame>
![/Screen\_Shot\_2022-07-11\_at\_3.18.03\_PM.png](/images/Screen_Shot_2022-07-11_at_3.18.03_PM.png)
<img
src="/images/date_picker_fixed.png"
alt="Date Picker Fixed"
title="Date Picker Fixed"
className="mx-auto"
/>
</Frame>

### Fixed
### Last

“Last" allows you to select a rolling time range similar to the default “last 30 days”, but you have the flexibility to choose the time value and scale, either days, weeks, months, or quarters.

“Fixed” allows you to select two dates to query between, by entering the same start & end date. If you save this report as a bookmark or add it to a board, the date range selection will always persist.
<Frame>
<img
src="/images/date_picker_last.png"
alt="Date Picker Last"
title="Date Picker Last"
className="mx-auto"
/>
</Frame>

If needed, you can adjust the desired time window backward by the selected number of days in the "Ending" section. For instance, in the example below, we are still looking at a 2-week window that is shifted 7 days back. This is a rolling date range, and if this report is saved as a bookmark or added to a board, the actual dates will continue to update to show this relative time period vs. today.

<Frame>
![/Screen\_Shot\_2022-07-11\_at\_3.21.03\_PM.png](/images/Screen_Shot_2022-07-11_at_3.21.03_PM.png)
![Date Picker Last Rolling Window](/images/date_picker_last_rolling_window.png)
</Frame>

### Since

“Since” allows you to select a specific date to query for all data since that start date.

### To Date
<Frame>
<img
src="/images/date_picker_since.png"
alt="Date Picker Since"
title="Date Picker Since"
className="mx-auto"
/>
</Frame>

"To Date" allows you to select a date range that will update dynamically to fit the current interval. You can choose 'Week to Date', 'Month to Date', 'Quarter to Date', and 'Year to Date'. When the boundary of the interval is passed, the date range will automatically update to include only the current interval. For example, if "Month to Date" was selected, and the date was February 27, the date range would include Feb 1 - Feb 27. The next week, after the month boundary has passed, the date range would include Mar 1 - Mar 4. To Date respects start of week and start of quarter settings under project settings.
### Period to date

### Minute Level Granularity
This option allows you to select a date range that will update dynamically to fit the current interval - you can choose "Day", "Week", "Month", "Quarter", and "Year". When the boundary of the interval is passed, the date range will automatically update to include only the current interval. For example, if "Month" was selected on June 27, the date range would include Jun 1 - Jun 27. The next month, after June has passed, the date range would include Jul 1 - Jul 8, as shown in the image below.\
"Period to date" respects the start of the week and start of quarter settings under Project Settings.

<Frame>
![minute level granularity](/images/enable-minute-granularity.png)
![Date Picker Period To Date](/images/date_picker_period_to_date.png)
</Frame>

Enable hourly and minute-level granularity by going to the advanced submenu under "custom" date range selection. This enables you to select time ranges up to the minute. You can also use this for the "Last" time range to monitor only the past few hours or minutes. When doing time series using minute or hourly intervals, there is a lower time range limit supported.
### Previous period

#### Zoom In
Choosing this option allows you to query information tracked only in the selected period: "Day", "Week", "Month", "Quarter", and "Year".

<Frame>
![Date Picker Previous Period](/images/date_picker_previous_period.png)
</Frame>

### Minute Level Granularity

Enable hourly and minute-level granularity by clicking the "Enable Time Ranges" toggle on the bottom-left side of the date range picker. This enables you to select time ranges up to the minute. You can also use this for the "Last" time range to monitor only the past few hours or minutes.\
This setting only works for the "Fixed", "Last", and "Since" options; it's not available for "Period to date" and "Previous period".

<Frame>
<img
src="/images/date_picker_fixed_time_ranges.png"
alt="Date Picker Fixed Time Ranges"
title="Date Picker Fixed Time Ranges"
className="mx-auto"
/>
</Frame>

## Zoom In

To zoom in, click on the graph and drag to highlight a specific window of time in your report. Click **Reset zoom** to return to the previous view.

Expand All @@ -236,7 +291,7 @@
![/compare\_to\_past.png](/images/compare_to_past.png)
</Frame>

By default, Mixpanel will visualize the values for both time periods. If you wish to see the lift of the current time period against the past time period, you can select the "Percent Change over Baseline" option to see the lift of your metric over time.

Check warning on line 294 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L294

Did you really mean 'Mixpanel'?

<Frame>
![/compare\_to\_past\_lift.png](/images/compare_to_past_lift.png)
Expand Down Expand Up @@ -278,26 +333,31 @@
## Saving to a board

<Note>
Free plans allow each user to save up to 5 reports. Growth and Enterprise plan users can save an unlimited number of reports. See our [pricing page](https://mixpanel.com/pricing/) for more details.
Free plans allow each user to save up to 5 reports, while Growth and Enterprise plan users can save an unlimited number of reports. See our [pricing page](https://mixpanel.com/pricing/) for more details.
</Note>

When you are satisfied with the analysis and decide that this is something that you are likely to revisit, Mixpanel recommends that you save the report to a [board](/docs/boards). You can do this by pressing "Save" in the top right and selecting the board you would like to save to, or creating a new board.
When you are satisfied with the analysis and decide that this is something that you are likely to revisit, you save the report to a [board](/docs/boards) by pressing "Save" in the top right and selecting the board you would like to save to, or creating a new board.

All reports are saved to a board, which inherits the sharing settings and permissions applied to that board. Learn more about saving, sharing, and permission for your reports and boards [here](/docs/boards/sharing-and-permission).

<Frame>
![/Screen\_Shot\_2022-07-08\_at\_5.40.30\_PM.png](/images/Screen_Shot_2022-07-08_at_5.40.30_PM.png)
<img
src="/images/reports_save_to_board.png"
alt="Reports Save To Board"
title="Reports Save To Board"
className="mx-auto"
/>
</Frame>

## Typecasting

Mixpanel allows you to force Properties into another [data type](https://help.mixpanel.com/hc/en-us/articles/115004547063) by using the **"Data Type"** option in the overflow menu for property filters and breakdowns.

Check warning on line 354 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L354

Did you really mean 'Mixpanel'?

<Frame>
![/Kapture\_2022-01-04\_at\_11.38.41.gif](/images/Kapture_2022-01-04_at_11.38.41.gif)
</Frame>

Typecasting is helpful when one of your properties is a number but is sent to Mixpanel as a string, and you want to see histogram data for that property. Or if one of your properties is a Unix timestamp and got sent as a number, and you want it to be treated as a date Property instead.

Check warning on line 360 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L360

Did you really mean 'Mixpanel'?

**How do I see the exact numeric values when applying a breakdown to a number data type in Insights?**

Expand All @@ -305,7 +365,7 @@

You can either customize the ranges by clicking "[Customize Range](/docs/features/advanced#custom-buckets)".

Or alternatively, if you'd like to see the exact numeric values, you can typecast the Number property to a String to remove the range bucketing.
Alternatively, if you'd like to see the exact numeric values, you can typecast the Number property to a String to remove the range bucketing.

## View Users

Expand All @@ -318,7 +378,7 @@
- Export these users to a CSV file.

<Frame>
![/View\_Users\_Insights\_gif.gif](/images/View_Users_Insights_gif.gif)
![Reports View Users](/images/reports_view_users.gif)
</Frame>

## Segment Limits and Ordering
Expand All @@ -327,7 +387,7 @@
When you encounter a "cardinality limit" error or see a "-" in your report despite having data, it indicates that the query returned more unique segments than the UI can display. To resolve this, narrow the time range, apply filters to specific events or properties, or reduce the number of breakdowns. These steps limit the segments, making your report easier to interpret and reducing the strain on the querying capacity of your projects.
</Warning>

In order to keep the interactive analysis experience snappy for projects of all sizes, Mixpanel limits how many segments are returned when using breakdowns. When breakdown (also referred to as segmentation) limits are reached, the response will be truncated to only return the top N segments. We have higher limits available via CSV exports.

Check warning on line 390 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L390

Did you really mean 'Mixpanel'?

### UI

Expand Down Expand Up @@ -392,38 +452,42 @@

### Enable Sampling

From the report in which you would like to use sampling, click the **lightning bolt** in the upper right corner of the query builder.
From the report in which you would like to use sampling, click the **lightning bolt** in the upper-right corner of the query builder. This will enable sampling on the report and will be indicated by the lightning bolt symbol turning blue.\
The percentage of the total that is included in the query calculations will be indicated in the banner shown above the report.

<Frame>
![/13109650264596](/images/13109650264596.png)
<img
src="/images/reports_query_time_sampling.png"
alt="Reports Query Time Sampling"
title="Reports Query Time Sampling"
className="mx-auto"
/>
</Frame>

This will enable sampling on the report and will be indicated by the lightning bolt symbol turning blue. The percentage of the total that is included in the query calculations will be indicated in the top right corner of the query builder.

To turn off sampling, click the lightning bolt symbol in the upper right corner of the query builder again. The lightning bolt symbol will turn grey to indicate that sampling is disabled.
To turn off sampling, simply click the lightning bolt toggle again.

### Query Time Sampling Calculation and Presentation

Mixpanel will not sample or drop events at ingestion. Instead, Mixpanel will ingest all event data and sample it at query time. This prevents the loss of important data and, therefore, allows you to toggle sampling on and off depending on need.

Check warning on line 471 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L471

Did you really mean 'Mixpanel'?

Check warning on line 471 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L471

Did you really mean 'Mixpanel'?

For example, if you need iterative querying, then sampling will greatly speed up this process. When you build the proper query, you can turn off sampling and query the entire dataset.

The following occurs when sampling is enabled:

1. Mixpanel selects a uniformly random sample of users on which to run the analysis.

Check warning on line 477 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L477

Did you really mean 'Mixpanel'?
2. The sample size is 10% of the total population.
3. The report is generated using that subset of users.
4. Mixpanel up-samples the data by multiplying by the inverse of the sampling factor. This is done for [functions](/docs/reports/insights) such as totals and uniques. Functions that do not scale with users (average, min, max) will not be up-sampled.

Check warning on line 480 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L480

Did you really mean 'Mixpanel'?

Check warning on line 480 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L480

Did you really mean 'uniques'?
5. The effect is that numbers should closely approximate results seen without sampling enabled. This works better as the number of users increases, particularly for customers with more than 5 million users.
6. Mixpanel adds an annotation to reports.

Check warning on line 482 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L482

Did you really mean 'Mixpanel'?

<Note>
If you save a report that uses query time sampling, then a version of the report _without_ sampling is saved. This ensures that boards and saved reports are computed on the entire dataset for high fidelity.

Check warning on line 485 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L485

Did you really mean '_without_'?
</Note>

## Query Result Caching

Mixpanel stores the results from a report query in our server cache and presents these results from there when appropriate. This saves time when running a complicated query multiple times, and allows you to surface previously calculated results near-instantaneously. The date range of the query will adjust how Mixpanel presents results from the server cache.

Check warning on line 490 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L490

Did you really mean 'Mixpanel'?

Check warning on line 490 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L490

Did you really mean 'Mixpanel'?

- If the query date range is 1 year or over, then the query results are cached for up to 14 days.
- If the query date range is under 1 year, then the query results are cached for up to 7 days.
Expand Down Expand Up @@ -477,7 +541,7 @@
![/10038188905364](/images/10038188905364.png)
</Frame>

Rather than searching through multiple property breakdowns to find significant data, this feature automatically identifies this data for you. Mixpanel combs through your event properties and cohorts to show you which of those segments convert higher or lower than average, and are therefore statistically significant.

Check warning on line 544 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L544

Did you really mean 'Mixpanel'?

There are two reports you will receive in your email: segment analysis and time comparison.

Expand All @@ -501,7 +565,7 @@
- Which groups of users are trending in a way that is different from the overall behavior?
- Which groups of users are driving the overall behavior?

Mixpanel automatically compares the currently selected date period to the previous one. For example, if you are viewing the current week, the email will compare to the week before.

Check warning on line 568 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L568

Did you really mean 'Mixpanel'?

### Interesting Segments in Retention

Expand All @@ -511,7 +575,7 @@
![/10037069627156](/images/10037069627156.png)
</Frame>

Rather than searching through multiple segment breakdowns to find significant data, this feature automatically identifies that data for you. Mixpanel combs through your event properties and cohorts and shows you which of those segments retain at a higher or lower rate than average.

Check warning on line 578 in docs/reports.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mixpanel-edb78807) - vale-spellcheck

docs/reports.mdx#L578

Did you really mean 'Mixpanel'?

An email that breaks down the top and bottom retaining segments of your Retention report based on changes in retention rates is automatically sent after you click the button.

Expand Down
Loading