Reporting

Our reporting provides comprehensive analytics and insights, helping you understand trends, identify bottlenecks, and optimize your incident response.

You can see the data directly in UI, or create powerful custom reports with live data exports to be processed elsewhere, e.g. in Google Sheets.

Go to Uptime -> Reporting to see the overview, or navigate to a specific report in the left submenu:

Reporting overview

Key features

The reporting interface allows you to analyze various aspects of your system's performance and your team's incident response. You can filter data by numerous criteria and visualize it through different chart types.

Key features include:

  • Report Categories: Access a wide array of reports across different domains.

  • Filtering: Apply over 10 filter types, including monitors, integrations, escalation policies, users, causes, business hours, and metadata.

  • Date Ranges: Select data resolution and absolute or relative date range.

  • Reusable URL: Changes to filters and ranges immediately change your URL, allowing you to copy it for later use or quick collaboration.

  • Updated in real-time: All your reporting data is always up to date.

  • CSV Export: Export data in real-time streaming CSV format.

  • Business Hours: Customize what hours and days count as business time for relevant reports.

Date ranges in reporting

Individual reports

Our reports are organized into the following categories:

  • Incidents reports: Access incident overview, manual incidents, started-at and resolved-time reports, MTTR, MTTA, heatmaps, and acknowledged-incident insights.

  • Organization reports: View organization-wide metrics, including cross-team incident volume, alert metrics, MTTR, and on-call schedule visibility.

  • Teams reports: Explore team-level reports such as response effort, MTTR, MTTA, incidents, team alerts, on-calls, and detailed on-call metrics.

  • Status page reports: Monitor status page activity through status updates and subscriber metrics.

  • Monitors reports: Track compound SLA, average SLA, monitor performance, incident volume, and per-monitor MTTA/MTTR.

Custom reports with live CSV export

While our pre-built reports offer extensive functionality, you might need highly customized analyses or visualizations that are updated in real-time. Our live CSV export feature, e.g. combined with Google Sheets, empowers you to create dynamic, automatically refreshing custom reports.

This method is particularly useful for:

  • Building bespoke dashboards tailored to unique business metrics.
  • Sharing real-time data with stakeholders who prefer spreadsheet formats.
  • Performing advanced statistical analysis not available in the UI.

Export as CSV

Exporting data as CSV

  1. Navigate to a report: Go to any report that contains the data you wish to analyze. For example, Incidents overview.
  2. Apply filters (Optional): Apply any filters or date ranges to narrow down the data before export. The exported CSV will reflect these selections.
  3. Get your CSV URL: Look for the Export CSV button located near the top right of the report interface and copy the link address.

You now have a URL that holds your real-time reporting data in an easily usable format 🚀

Importing live data into Google Sheets

Create a new Google Spreadsheet. Of course, you can use other software in a similar fashion.

Select cell A1 and use the IMPORTDATA function, pasting the copied URL:

Import your data by pasting URL into A1 cell
=IMPORTDATA("YOUR_EXPORT_CSV_URL_HERE")

Allow loading external data

After allowing access to data from Better Stack, your data from the live CSV endpoint will be fetched ✨

Live data in Google Spreadsheet

Now that your live data is in Google Sheets, you can use its powerful features, like pivot tables, to create insightful visualizations in an environment you're likely already familiar with.

Seeing numbers instead of dates in columns such as "Started at"?

Select the column, open Format -> Number menu and select Date and time.

As a real-world example, explore weekly trends in number of incidents, grouping them by the type of resolution and their urgency based on your metadata.

The example will use these 3 columns of the Incidents overview report:

  • Started at in column D
  • Resolved by in column I
  • Metadata in column K

Weekly incidents trends sheet

Date range format

To group the data on a weekly basis, transform the Started at column into week ranges - such as 2025/11/17 - 2025/11/23.

  1. Write Started in week into the empty cell L1.
  2. Paste the following formula into L2. Feel free to customize the format.
  3. Autofill the rest of the cells in the L column.
Cell L2: Transform "Started at" into a week label Start weeks on Sunday
=TEXT(D4 - WEEKDAY(D4,2) + 1, "yyyy/mm/dd") & " - " & TEXT(D4 - WEEKDAY(D4,2) + 7, "yyyy/mm/dd")
=TEXT(D4 - WEEKDAY(D4,1) + 1, "yyyy/mm/dd") & " - " & TEXT(D4 - WEEKDAY(D4,1) + 7, "yyyy/mm/dd")

Categorize values

To simplify the trend report, it might be great to ignore specific people who resolved the incident. Categorize the Resolved by column into "Ongoing", "Automatically resolved", and "Manually resolved".

  1. Write Resolution type into the empty cell M1.
  2. Paste the following formula into M2. It will replace names of specific team members by "Manually resolved".
  3. Autofill the rest of the cells in the M column.
Cell M2: Simplify "Resolved by" into just 3 states
=IF(OR(I2 = "Ongoing", I2 = "Automatically resolved"), I2, "Manually resolved")

Extract metadata

You can extract any metadata value from your incidents and use it in your report. For example, extract the Urgency key into a separate column.

  1. Write Urgency into the empty cell N1.
  2. Paste the following formula into N2. It will extract values from a specific key in the Metadata column, for example the "Urgency" key.
  3. Autofill the rest of the cells in the N column.
Cell N2: Extract value of specific key in "Metadata"
=IFNA(REGEXEXTRACT(K2, "Urgency: (.*?)(?:;|$)"), "N/A")

Pivot tables

Now, all data are transformed and formatted for your reports 🚀

Go to Insert menu and select Pivot table. Change the data range to Sheet1!A1:N to work with the whole sheet, insert to a new sheet, and click Create.

To see the summary, configure the pivot table:

  • Rows: pick Started in week
  • Columns: pick Resolved type or Urgency
  • Value: pick Started at and summarize by COUNTA
  • Filters: add Started at, and select Filter by condition: Is not empty.

You can see the number of incidents started each week of your report, grouped by the column you selected.

Weekly incidents by resolution type

Quick visualizing

To visualize the data, select all cells of your pivot table, go to Insert menu, and select Chart.

You'll get a quick visualizion of the trends in your started incidents.

Chart weekly incidents by resolution type

Real-time updates

The beauty of this setup is that your custom reports and charts in Google Sheets will automatically update as new data becomes available through the IMPORTDATA function.

This provides you with live, dynamic dashboards without any manual intervention after the initial setup 🚀

Tips for custom reports

Google Sheets allows easy sharing and collaboration, enabling you to share your live reports with your team or management.

Leverage other advanced formulas and functions, such as QUERY, FILTER, or SUMIF, for more complex analysis.

This approach gives you unmatched flexibility and control over your reporting, ensuring you always have the insights you need, exactly how you need them ✨