Appearance
Downtime Tracking
Last updated
License feature: Downtime TrackingMonitor > Downtime opens Downtime Tracking ("Equipment downtime events and analysis"), with tabs Events, Pareto and Reasons.
Note: Downtime is detected automatically only through the OEE form's Run Status Tag (see above). Without one, every event is started and ended by a person, or by something calling the API. Events opened by the Run Status Tag carry a small Auto label, and the OEE form's Minimum Downtime (seconds) keeps stops shorter than it off this list — see Feeding OEE counts and downtime.
Reason codes (Reasons tab)
- Click Add Reason. The New Reason Code form opens.
- Fill in the fields below and click Save.
| Field | Meaning | Default |
|---|---|---|
| Name | Shown to operators, e.g. "Film Jam" | required — Save stays disabled without it |
| Category | Unplanned, Planned or Changeover | Unplanned |
| Color | Picker or hex; used on Pareto and Andon | #ef4444 |
| Sort Order | Order in lists | number of existing reasons |
The table shows Color, Name, Category, Order, Status and Actions. Edit opens Edit Reason Code. The trash icon deletes immediately with no confirmation. The UI has no enable/disable switch (the API accepts enabled on PUT); only enabled reasons appear when logging. There are no sub-categories.
Seeded reasons:
- Unplanned: Mechanical Failure, Electrical Failure, Material Shortage, Operator Unavailable
- Planned: Preventive Maintenance, Break / Lunch
- Changeover: Tool Change, Product Changeover
How categories affect OEE
| Category | Effect on Availability |
|---|---|
| Planned | Removed from planned time — does not lower Availability |
| Unplanned | Lowers Availability |
| Changeover | Lowers Availability, and is shown separately from unplanned downtime |
| no reason | Treated as unplanned |
See OEE formulas. If the shift already has Break Periods or Total Break (min), don't also log "Break / Lunch" — the time is subtracted twice.
Log a stoppage (Events tab)
- Click Log Downtime. Start Downtime Event opens.
- Choose the Device ("Select device..."), a Reason (optional, shown as "Name (category)") and Notes.
- Click Start Downtime. The start time is now.
- A red Active Downtime (n) banner shows each open event with its elapsed time (refreshes every 5 seconds).
- When the machine restarts, click End in the banner, or the play icon ("End downtime") in the table. The server sets the end time and duration.
- To set or change the reason or notes later — while the event is running or after it ended — click the pencil in the table, pick the reason and click the check mark. Disabled reasons are listed only for an event that already uses one.
- An event with no reason shows as "Uncategorized" and is left out of the Pareto.
- Starting and ending needs operator or higher; deleting (trash icon) needs editor or higher.
- Nothing stops two open events on the same device; both count as downtime.
The table has Started, Ended ("Active" while open), Duration, Device, Reason, Notes and Actions, with an All devices filter.
Pareto tab
Ranks reasons by total downtime: rank, color, name, category badge, number of events, total duration and percentage, with a footer of reason count and total.
- Only closed events with a reason are included.
- Covers all time — the page has only a device filter (the API also accepts
fromandto). - Empty state: "No completed downtime events to analyze."
Other places downtime appears
- Andon: a device shows DOWN while it has an open event — see Andon displays.
- Downtime Pareto dashboard widget — see Production widgets.
- Report designer data source Downtime Events.
REST endpoints
| Method | Path | Purpose | Role |
|---|---|---|---|
| GET | /api/downtime/reasons | List reasons | viewer |
| POST | /api/downtime/reasons | Create a reason | editor |
| PUT | /api/downtime/reasons/:id | Update (name, category, color, sortOrder, enabled) | editor |
| DELETE | /api/downtime/reasons/:id | Delete a reason | editor |
| GET | /api/downtime/events | List; deviceId, reasonId, from, to, active, limit (50), offset | viewer |
| GET | /api/downtime/events/active | Open events; optional deviceId | viewer |
| POST | /api/downtime/events | Start: deviceId, optional reasonId, notes, startedAt | operator |
| PUT | /api/downtime/events/:id | Update reasonId, notes, endedAt | operator |
| DELETE | /api/downtime/events/:id | Delete an event | editor |
| GET | /api/downtime/pareto | Pareto; deviceId, from, to | viewer |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "deviceId is required" | API call without a device | Send deviceId. |
| Event missing from Pareto | Still open, or no reason | End it; set a reason with the pencil. |
| Downtime keeps growing overnight | Event left open | Click End. Its duration runs from start to the moment you end it — correct it with PUT and an accurate endedAt. |
| Reason not in the dropdown | Reason disabled via the API | Re-enable with PUT /api/downtime/reasons/:id {"enabled": true}. |