Reports
Reports summarize your data in grid tables, letting you analyze customer behavior and spot insights quickly. You define which attributes or events appear in rows and columns, choose a metric to measure, and the report generates a table where each cell shows the count of customers or events that match your settings. You can highlight important cells or visualize the table as a chart.
Tip
If you use pivot tables in Microsoft Excel, reports work the same way. You can transfer that knowledge directly.
Watch this introductory video about reports. For a recent overview of UI improvements, watch the Report improvements video.
Example: purchase patterns by day and hour
To understand when customers make purchases throughout the week, create a report with:
- Columns: Weekdays of purchase
- Rows: Hours of purchase
- Metric: Total number of purchases (or average price, or total revenue)
The result shows purchase patterns across the week, helping you identify peak shopping times. For details, see the Weekly Heat-map analysis article.

The table created as in the example showing the number of purchases, highlighted yellow to white.
Understand the data
For each customer, your database will contain a lot of events and customer attributes. However, to give the data meaning, you will almost always need to condense and visualize your data. Reports allow you to summarise your data into a comprehensible structure of a grid table, which you can further clarify using either highlighting or the chart view. This gives you quick insights into the raw data stored in Bloomreach Engagement.
For a guide through a typical use case, view this article about creating a report from A/B testing.
Create reports
- Go to Analyses > Reports.
- Click the + sign next to Reports.
- The report editor opens with a blank report.
Use template library
The analytics template library offers predefined report templates to help you get started. From the new report screen, search by tag, keyword, or use case, select a template, and edit as needed. Any user with edit access can import templates.
Report editor
The report editor has 2 main parts.
Building area: Define what you want to measure:
- Metrics: What to measure (customer count, event count, revenue, and more)
- Drill-downs: How to organize results into rows and columns
- Filters: How to narrow data by date range, customer segments, or value thresholds

The initial configuration of a new report
Results area: See calculated results and customize display:
- Adjust time range.
- Change formats.
- Add heat maps.
- Switch between table and chart views.

The Results part of the Report Editor
The report starts with a customer count metric already filled in. Customize it to your needs. By default, the editor generates a bar chart where row attributes map to the x-axis and column attributes to the bars. Metrics map to the y-axis.
Metrics filters
In the Metrics filters, you can filter the Time range of the events you want to calculate in the metric.
In the Value filter, you can filter specific results of the metric.
The example below filters results based on whether the number of customers is greater than 10,000.
Remember to name your report and save it.
Metrics
Metrics compute values in each table cell based on the drill-down settings in rows and columns. For example, a customer count metric combined with a session_start > country attribute in rows shows how many customers started a session in each country.
You can measure the number of customers or events. You can build a metric from scratch within the report and save it to the project for reuse, or pick an existing project metric to avoid duplication.
Note
Refer to this metrics guide for more information about metrics.
You have 2 main options for building a metric definition:
- Simple metric: Measures a singular aspect.
- Formula: Combines multiple simple metrics or constants using mathematical operations for more complex calculations.

Metrics part of the Report Editor
Aggregations
Choose from six predefined aggregates:
- Minimum: Minimum of a numeric property value.
- Maximum: Maximum of a numeric property value.
- Sum: Sum of a numeric property value.
- Count: Number of customers.
- Average: Average of a numeric property value.
- Exists: Existence of at least one value.
Formats
Apply one format at a time from the right side of the metrics area:
- Default: Default value.
- Date format: From minutes to quarters
- Date part: From minutes to years
- Date difference: Applicable to the timestamp value. Refer to some time ago, ranging from "seconds ago" to some "years ago" reflected in the chart as the time passed from the chosen value in an ascending order.
- Numeric:
- Floating: With a decimal point.
- Integer (round): Rounded number.
- Percent: %.
- Financial: Such as $, €, £
- Rounding: Up to 4 digits.
Note
If sorting produces unexpected results, manually set the format to match your data type.
Edit definitions
You can create or edit segmentations, event segmentations, expressions, aggregates, or running aggregates without leaving the report. When you edit a definition inside a report, you can apply the change to all instances of that definition or only to the current report.
Note
When you edit a definition in a report, you can choose to apply the changes to the definition in all instances, or just for the specific report.
Filters
See the Filtering data article for full details on date filters.
Date filter
The date filter sets the time period for report calculations. It only affects event aggregates and segmentations—not customer attributes.
Customer filter
A customer filter restricts the report to customers who meet specific conditions. For example, only customers with a valid email address.
Value filter
A value filter hides results that don't meet a threshold. For example, filter out cells with more than 10,000 customers.
Drill-downs
Drill-downs organize your metric results into rows and columns using events or customer properties such as expressions, segmentations, and aggregates.
- Rows: Groups appear in the first column of the table and on the x-axis of the chart.
- Columns: Groups appear horizontally in the table and as separate bars in the chart.
You can also apply drill-downs directly in the table.
The Report Editor will generate a bar graph by default. Here, the row attributes represent the values of the x-axis of the bar chart, and the column attributes are represented by one or more bars per value on the x-axis. The Metrics section in the table editor represents the values on the y-axis of the bar graph.
If you use drill-down in Rows, the groups will appear in the first column of the table.
Examples
In the example below, we drill down in Rows using an expression that counts the average number of days between purchases. The groups of buyers with a similar number of days between purchases are shown in the first column of the table. In the chart, you see them on the x-axis.
If you use columns for the drill-down, those groups appear horizontally.
In the example below, we drill down in Columns using the Segmentation "Returning customers" to find the revenue from returning customers by how much they have purchased. The chart displays a single bar that depicts the proportion of revenue generated by each segment.
To track how a metric changes over time, drill down by timestamp. To see metrics per campaign, drill down by campaign_name.
Grouping
Use grouping when there are too many values to display, or when you want to cluster values by certain properties.
Grouping options:
- None: Disables any grouping.
- Auto: Selects the best grouping based on the attribute.
- Top: Shows only the top X values (max 9,999) ordered by the first metric.
- Discretization: Creates equally sized groups; the number you enter defines how many groups.
- Histogram: Automatically groups values based on average and standard deviation.
- Custom: Define your own groups by entering at least one number to create a left-closed interval.
Note
In the discretization grouping, if one value is significantly more prevalent than other values, the number of groups might end up being smaller.
Formats for drill-downs
In addition to date and numeric formats (same as metrics), drill-downs support string formatting:
- Original case
- Capitalize
- Uppercase
- Lowercase
Show N/A
Enabling Show N/A includes undefined values in the report, so customers without a value for a field still appear in calculations.
Report filters
Report filters are superior to metric filters. However, they don't overwrite the metric filters but create a common intersection.
Actions
On the right side of each field in the report definition, you'll find icons to delete, duplicate, or reorder (click and drag) the field.
Limitations
| Item | Limit |
|---|---|
| Rows | 9,999 |
| Columns | 99 |
| Metrics | 249 |
| Cells | 200,000 |
Exceeding any limit returns an error. If these limits aren't enough, consider splitting the report into smaller chunks or using BigQuery or Exports for full data access.
If your output is too large due to long JSON values, try:
- Changing the row grouping from None to any option that reduces rows below 9,999.
- Changing the column grouping from None to any option that reduces columns below 9,999.
- Narrowing the time range.
Report views
Display your report as a table, a chart, or both.
Chart
Customize the chart by clicking on it. Options include:
- Series type: Choose your preferred chart type.
- Series color: Choose your preferred color for the chart.
- Y-axis: Set the y-axis as your primary or secondary one.
- Format: Format your data to your liking. For example, these results are rounded to 3 decimal points.
- Show customers: Preview the customers behind a data point. Clicking this takes you to Data & Assets > Customers with the relevant customer filter applied.
Why report and customer counts can differ
If you've clicked Show customers and noticed the count in the Customers view doesn't match the number in your report cell, this is expected behavior. Different filter layers apply differently depending on where you are. Metric-level filters (set inside the metric definition, such as event filters or metric date ranges) apply when calculating the report table. They're not passed through to the Customers view. Report-level customer filters (set in the report's Filter section) are passed through to the Customers view.
Event metrics vs. customer metrics count different things. An event metric counts occurrences; a customer metric counts unique customers. The same filter setup can produce different numbers depending on which type you use.
Funnels inside customer filters apply to a customer's full event history by default, regardless of the report's date filter.
To get consistent counts, use report-level customer filters instead of (or in addition to) metric-level filters when you plan to use Show customers.
Note
Show customers applies only report-level customer filters—not metric-level filters. This means the customer count shown in the Customers view may differ from the number in the report cell. See Why report and customer counts can differ below for a full explanation.
- Send campaign: Set up a campaign for the relevant customers. Clicking this opens a scenario with pre-filtered conditions.
Series types
There are 8 chart types:
- Column: A classic column chart.
- Stacked column: Available when using field in columns.
- Bar: Limits to 15 values.
- Line: Adjusts y-axis based on the values (can start from negative values).
- Area: Doesn't adjust the y-axis (starts from 0).
- Pie: Shows additional information on hover (percentage of the whole).
- Percentage area
- Bubble: To create a bubble chart (more complex scatter plot), you ideally want to have a report with:
- One row - the different values in this attribute will determine the discrete bubbles
- One column - the different values in this attribute will determine the color of the bubble (overrides the fourth metric)
- Up to 4 metrics:
- The first metric determines the size of the bubble.
- The second metric determines the bubble's position on the x-axis.
- The third metric will determine the position of the bubble on the y-axis.
- The fourth metric will determine the color of the bubble.
Timeframe
Above the chart, you can set up the timeframe of your choosing:
- Lifetime
- Last 2 days
- Last 7 days
- Last 14 days
- Last 30 days
- Last 60 days
- Last 365 days
This doesn't override the metric date but finds an intersecting time period.
Axis limits
Set minimum and maximum values for either axis to focus on relevant data and remove outliers. Consistent axis limits across multiple charts make it easier to compare metrics across segments. If data exists outside the visible range, a warning icon appears.
For example, you might want to compare the average order value (AOV) across different customer segments. You categorized your customers into three segments: new, regular, and VIP customers. By setting the same axis limits for AOV in each report, let's say $0 to $1,000, you can focus the analysis on AOV within this range. This helps eliminate extreme values or outliers that might skew comparisons across customer segments. You can spot any patterns or trends in AOV for each customer segment. For example, if the AOV for VIP customers consistently falls within the upper range of $800 to $1000, while regular customers have an AOV of $300 to $500, you can identify distinct purchasing behaviors for these segments.
To set it up, click on the very right icon. If there is data outside the shown chart, it will display a warning sign.
Table
For large reports, the header row and first column stay frozen while you scroll horizontally or vertically.

Example: a report with session start > country in rows and count customer metric
Modifiers
Hover over the table and click the View options icon (top-right corner) to access modifiers. There are three categories:
There are 3 categories: aggregation, show value, and visualize.
- Aggregation shows statistical data at the bottom of rows: sum, average, maximum, minimum, standard deviation, or variance.
- Show value as
- Column total % shows the percentage distribution within the column.
- Grand total % shows percentage distribution considering all columns.
- Running total counts values from all previous rows up to the current one, being effective in YTD revenue reporting.
- Running total % counts percentages from all previous rows up to the current one, resulting in the last row always being 100%.
- Visualize
- Heatmap changes the background of the cells based on their value in the selected color scale.
- Highlight changes in the background of the cells based on the selected condition.
Send via email
To receive updated reports by email, go to … > Send via email and set your preferred frequency:
You can choose to receive it:
- Daily: Sent every day at 8 a.m.
- Weekly: Sent every Monday at 8 a.m.
- Never: No emails sent.
To manage your subscriptions, go to your profile and open the Email digest tab. You can view all reports you're subscribed to and unsubscribe by clicking the trash icon..
Hide or exclude data from reports
You have several options for decluttering a report. No filters are applied.
The results table of the report looks like this:
The following is a list of ways to declutter a report.
Hide N/A: Hides undefined values. Enabled by default for both rows and columns.
Grouping: Groups results by value to reduce the number of rows or columns displayed. An example of a report with enabled grouping.
An example of a report with disabled grouping.
Metric filters: Hides results that don't meet a value condition. Useful for checking, for example, how many customers share an email address (combine a customer metric with the email property in rows and a metric filter on count).
An example of a report with no metric filter.
An example of a report with a metric filter.
Event filter: Excludes events with certain values. Useful for filtering by specific campaign event statuses.
An example of a report with no global event filter applied.
An example of a report with a global event filter applied.
Metric modifiers: Adding any modifier hides the "other" group from the report.
Example of a metric with a modifier.
Example of a metric with no modifier.

Updated about 10 hours ago
