---
title: "Analyze downtime with Pareto and trend charts"
description: "The Downtimes report ranks your downtime reasons by the time they cost, using a Pareto chart, a by-interval trend and a by-machine breakdown over a paginated table of individual stops. Filter by department or machine, shift, category, severity, and only-with-notes, sort by date or duration, pick a rolling date preset, and export the result as CSV or PDF. Shift islands, in the Shifts popover, reports a shift that crosses midnight entirely on the day it began."
category: "Track and classify downtime"
source_url: "https://www.iotflows.com/docs/monitoring/downtimes/"
---
# Analyze downtime with Pareto and trend charts

Find the few downtime reasons that cost the most, and see whether they are getting better.

The Downtimes report is the root cause analysis tool for production losses. It answers three questions about every stop in your fleet: which reasons cost the most time, how that changes over time, and which machines carry it. The page is at `/assets?select=downtimes`.

**Prerequisites.** Machines reporting, see [Monitor your fleet on the Assets page](/docs/monitoring/assets-overview/). Stops classified, see [Classify a downtime event](/docs/monitoring/classify-downtime/). Every figure on this page is defined in [Metrics](/docs/monitoring/metrics-reference/).

![The Downtimes report over the last four weeks. A filter bar across the top shows Machines 22, Shifts, Categories 17, Sort by Date: New to Old, Reset Filters, an Only with Notes toggle, an Actions menu and a Last 4 weeks date button. Below it, the Downtimes by Category Pareto chart ranks nine categories from Mold Wash at 60.76 hours down to Unclassified at 0 hours, with a cumulative percentage line rising to 100 percent. Under that, Downtimes by Time Interval shows four stacked weekly bars, W34 to W37, and Downtimes by Asset shows one stacked bar per machine numbered 214 to 256, each with an hours label.](/images/monitoring/mon-down-01.webp)

*The Downtimes report. The Pareto orders your reasons by the time they cost.*

## Read the Pareto chart
**Downtimes by Category** ranks every downtime reason by total duration, longest first. Each bar is one category, and the line over the bars is the cumulative percentage, so you can read off how many categories make up 80% of the loss.

Start with the leading bar. A plant with 60 hours of **Mold Wash** and 3.5 hours of **Parts in inspection** gets more back from a faster mold wash than from a faster inspection.

> **Warning:**
> **Is Unclassified your tallest bar?** Then the Pareto is ranking the absence of reasons, not the reasons. Put reasons on the stops, or turn on [automatic classification](/docs/monitoring/auto-downtime-rules/) for the routine ones.

![The Downtimes by Category Pareto chart. Nine bars run left to right in descending order: Mold Wash 60.76 hours, Unplanned maintenance 31.76, Required foreman approval 27.84, Samples sent to postcure 16.50, Lunch Break 10.35, Mold Wash (Sand Blast) 7.73, Parts in inspection 3.50, Breaks - None 0.68 and Unclassified 0.00. A cumulative percentage line climbs from about 40 percent at the first bar to 100 percent at the last.](/images/monitoring/mon-down-02.webp)

*A Pareto with a clear leader. That bar is where the next improvement is.*

## Read the interval and asset charts
Two stacked bar charts follow the Pareto. Both split each bar by category, in the Pareto's colors, with a legend on the right. Hover any bar for its exact value.

**Downtimes by Time Interval** plots downtime per day, week, month, quarter or year, depending on the interval in the date filter. Read it to see whether a reason is trending, seasonal, or responding to a fix. For example, a **Mold Wash** segment that shrinks week over week after the wash procedure changes is the evidence the change worked.

**Downtimes by Asset** plots the same downtime per machine, with a duration label on each segment such as `16.73h`. Read it to see whether a category is spread across the floor or concentrated on one machine.

Click a category in the legend to hide or show it. Hiding the leading category is the fastest way to see what is underneath it.

![Two stacked bar charts with a category legend on the right of each. Downtimes by Time Interval shows four weekly bars labeled W34 (W3 AUG) to W37 (W1 SEP), each split by category color with hour labels such as 26.01h for Mold Wash. Downtimes by Asset shows one bar per machine, numbered 214 to 256, split by the same colors, with labels such as 16.73h on machine 226 and 17.78h on machine 244.](/images/monitoring/mon-down-03.webp)

*The same downtime split by interval and by machine.*

## Filter the report
The filters sit across the top of the page, or behind the **Filters** button on a phone. Every filter is written into the address bar, so the URL is the report: copy it and it opens in the same state for anyone with access.

The date filter picks both a window and an *interval*, the grouping the by-interval chart uses. Choose **Daily**, **Weekly**, **Monthly**, **Quarterly** or **Yearly**, then a rolling preset such as **Last 7 days**, or a custom range. A rolling preset stays rolling: a link to **Last 7 days** shows the last seven days on the day it is opened.

### Filters reference
| Filter | Values | Applies to |
|---|---|---|
| **Date** | An interval (**Daily**, **Weekly**, **Monthly**, **Quarterly**, **Yearly**), then a rolling preset for that interval or a custom range | Every chart and the table. The interval also sets the grouping of **Downtimes by Time Interval** |
| **Machines** | Whole departments, or individual machines inside them | Every chart and the table |
| **Shifts** | One or more of your organization's shifts, multi-select | Every chart and the table. Only stops inside the selected shifts count |
| **Shift islands** | On or off, at the top of the **Shifts** popover. Off by default | Every chart and the table. On, a shift that crosses midnight reports entirely on the day it began |
| **Categories** | Individual downtime categories, plus **Unclassified** | Every chart and the table |
| **Severity** | A group heading inside **Categories**: **Unclassified**, **None**, **Low**, **Medium**, **High**, each with a count. Ticking a heading selects every category of that severity | Every chart and the table |
| **Sort** | **Date: New to Old**, **Date: Old to New**, **Duration: High to Low**, **Duration: Low to High** | The table only |
| **Only with Notes** | On or off | The table only. Hides stops that carry no operator note |

*Severity* is a rank each category carries, set when the category is created, see [Manage downtime categories](/docs/monitoring/downtime-categories/). **Reset Filters** clears every filter except the date.

Turn on **Shift islands** before you read a night shift's downtime. Off, the hours a shift works after midnight are charged to the next day, so a Monday-to-Friday night shift puts downtime on Saturday, a day it never ran. This report and the [Advanced Report](/docs/monitoring/advanced-report/#shift-islands) are the only two places the toggle exists, see [Where the overnight hours land](/docs/admin/shifts-and-timezone/#overnight-hours).

![The right of the Downtimes by Time Interval chart, filtered to the Evening Shift, which runs 5 PM to 1 AM Monday through Friday, with Shift islands off. Three columns stand over the day labels Thu Sep 24, Fri Sep 25 and Sat Sep 26. The Thursday and Friday columns are tall, each a red Unclassified block over a blue Entire Shift Down block labeled 12h and 28h. The Saturday column is a stub, labeled 3.34h and 10h.](/images/monitoring/mon-down-06.webp)

*The last three days of the week, Shift islands off. Saturday carries ten hours of Entire Shift Down from Friday night, on a day the Evening Shift never runs.*

Two filters answer two different questions:

- Filter to **Only with Notes** when you are building a maintenance case. The notes are what a technician needs.
- Filter to **Unclassified** when you are checking whether operators are keeping up. A growing unclassified share means the habit is slipping, not that the plant is running better.

![The Downtimes report filter bar with the Categories popover open. The bar shows Machines 22, Shifts, Categories 14, Sort by Date: New to Old, Reset Filters, an Only with Notes toggle, an Actions menu and a Last 4 weeks button. The popover has a Search categories box, then a LOW heading with its own checkbox and 12 categories such as Short Downtimes, Shift change and Machine setup, then a MEDIUM heading with 21 categories such as No job and Broken tool, and Clear and Apply buttons at the bottom.](/images/monitoring/mon-down-04.webp)

*Every filter on the report. The severity headings inside Categories select every reason of that severity at once.*

## Read the detail table
Below the charts, a table lists each stop matching the filters, 25 to a page.

| Column | Shows |
|---|---|
| Machine | Photo, name and identifier, with the stop's start and end times |
| **Duration** | How long the stop lasted |
| **Category** | The downtime reason, or blank if unclassified |
| **Categorized By** | The person who classified it, or IoTFlows AI for stops an automatic rule classified |
| **Note** | The operator's note, if one was added |
| **Severity** | The category's severity as a colored badge: **None**, **Low**, **Medium** or **High** |

The table covers stops that overlap your selected dates and shifts, up to the first 1,000 stops or the first three months. A stop that began before the window, or falls past that limit, is not listed. Narrow the date range if you need every row.

Every time on this page is in the organization's time zone, not yours, see [Shifts and time zone](/docs/admin/shifts-and-timezone/).

![Six rows of the downtime detail table. Each row shows a machine photo with a name such as C2 and an identifier such as #6, a duration such as 00:03:59.21 over its start and end times, a category such as Foil factory splice, Mechanical Issue (Specify Why) or Operator Stopped, the avatar and first name of the person who classified it, a note such as Jam or Putting labels, and a severity badge reading Medium, High or Low.](/images/monitoring/mon-down-05.webp)

*The detail table. Filtering to only-with-notes builds a maintenance case quickly.*

## Export the report
The **Actions** menu at the right of the filter bar downloads the report in two forms, both using the filters you have set. What each export carries is listed in [Available exports](/docs/monitoring/exports-reference/).

### Download a CSV
1. Set the filters.
2. Open **Actions**.
3. Click **Download as CSV**.

The file `Downtime Classification Data.csv` carries one row per stop: machine identifier and name, start and end timestamps, duration, category and note. Choose CSV when you want the rows themselves, to pivot in a spreadsheet.

### Download a PDF
1. Set the filters.
2. Open **Actions**.
3. Click **Download as PDF**.
4. Wait for **Generating PDF report… this may take a few seconds.** to become **PDF report generated successfully.**

The file `Downtime_Report_<from>_to_<to>.pdf` is rendered from the report as you see it, charts included. Choose PDF when the reader needs the picture rather than the rows, for example a weekly review with a plant manager.

You do not need to export to get the report to other people. **Share** emails the current view to members of your organization, and **Schedule** sends it on a cadence, see [Email a report and schedule it to repeat](/docs/monitoring/share-and-schedule-reports/).

### Export errors
| Message | Means |
|---|---|
| **Failed to download CSV. Please try again.** | The browser could not build the file. Reload the page and retry once the table has loaded |
| **Something went wrong generating the PDF.** | The PDF service could not render the report. Retry; if it repeats, narrow the date range |

## Classify as it happens
The report is only as honest as its classifications. Two habits keep it useful.

Turn on automatic classification for short stops, start and end of shift, and scheduled breaks, see [Classify downtime automatically](/docs/monitoring/auto-downtime-rules/).

Put a tablet at each machine, assigned to that machine, so operators classify a stop as it happens and the note is fresh, see [Set up a dedicated operator station](/docs/monitoring/operator-stations/).

## See also
- [Classify a downtime event](/docs/monitoring/classify-downtime/)
- [Manage downtime categories](/docs/monitoring/downtime-categories/)
- [Classify downtime automatically](/docs/monitoring/auto-downtime-rules/)
- [Email a report and schedule it to repeat](/docs/monitoring/share-and-schedule-reports/)
- [Available exports](/docs/monitoring/exports-reference/)
