Analytics

oee analytics charts

The Analytics page provides user-created charts for analyzing OEE data over time. Users create, configure, and arrange charts on a dashboard grid. Each chart is persisted to the database per site.

Chart Types

Line Charts (Time-Series)

Line charts plot a metric over time, grouped by time interval. Each selected machine appears as a separate line. The X-axis is time; the Y-axis is the chosen metric.

Available metrics:

MetricDescription
oeeOverall Equipment Effectiveness (0-100%)
availabilityUptime percentage
performanceProduction rate vs. target rate
qualityGood parts vs. total parts
downtimeTotal downtime in minutes
mtbfMean Time Between Failures in hours
mttrMean Time To Repair in minutes
scrap_rateScrap as percentage of total parts
batch_countNumber of completed batches
batch_durationTotal batch run time in minutes
avg_batch_durationAverage batch run time in minutes
incident_countNumber of incidents
incident_durationTotal incident duration in minutes

Pareto Charts

Pareto charts show categorical breakdowns with bars sorted by value (descending) and a cumulative percentage line overlay. They answer “where is the biggest impact?”

Category groupings:

CategoryGroups by
downtime_reasonIndividual downtime reason codes
downtime_typeDowntime type (planned, unplanned, idle)
equipmentPer machine
shiftPer shift
batchPer individual batch
incident_reasonIndividual incident reason codes
incident_categoryIncident reason groups

Value metrics for Pareto bars:

ValueMeasures
durationTotal duration in minutes
countNumber of occurrences
frequencyOccurrences per day
batch_countNumber of completed batches
batch_durationTotal batch run time in minutes

Data source is either downtime or incident events.

Calculation Modes

Charts that use availability-based metrics support three calculation modes:

ModeFormulaDescription
standardRun Time / (Run Time + Unplanned Downtime)Excludes idle and planned downtime from denominator
strictRun Time / (Run Time + Unplanned + Planned Downtime)Only excludes idle time
teepRun Time / Total Calendar TimeMost stringent — all time counts against availability

Time Configuration

Intervals

Data points are grouped by interval:

IntervalLabel
1h1 Hour
1d1 Day
1w1 Week
1m1 Month

Each data point represents the metric value for that interval. For example, with 1d interval and oee metric, each point is the OEE for that day.

Date Ranges

Quick presets: 24 Hours, 7 Days, 30 Days, 3 Months, 1 Year, Max. A custom date range is also available.

Chart Configuration

Each chart stores a full configuration:

  • Title — user-defined chart name
  • Chart typeline or pareto
  • Metric — which Y-axis metric to display
  • Calculation modestandard, strict, or teep
  • Equipment selection — which machines to include (stored as JSON array of UUIDs)
  • Downtime filters — which downtime types and specific reason codes to include
  • Incident filters — which incident reason codes to include
  • Time interval and date range
  • Display options — legend visibility, Y-axis min/max overrides, duration unit (minutes/hours/days)
  • Layout — display order and column span (1-4 columns)

Charts are saved to oee_analytics_charts and load automatically when the user visits the analytics page.

Dashboard Grid

Charts render in a responsive grid layout. Users can:

  • Create new charts via a configuration modal
  • Edit chart settings (metric, equipment, time range, etc.)
  • Reorganize chart positions and column spans via a drag-handle mode
  • Delete charts with a confirmation modal

Per-Interval Data Points

Each data point in a line chart represents the metric calculated for that specific interval, not a running cumulative total. For example, if the interval is 1d and the metric is oee:

  • March 1: OEE = 82% (for that day only)
  • March 2: OEE = 87% (for that day only)
  • March 3: OEE = 79% (for that day only)

This makes trends immediately visible — you see how each day (or hour, week, month) performed independently.

Database Table: oee_analytics_charts

ColumnTypeDescription
idUUID (PK)Auto-generated
site_idUUID (FK)Which Site
titleVARCHAR(255)Chart title
chart_typeVARCHAR(20)'line' or 'pareto'
metricVARCHAR(50)Y-axis metric
calculation_modeVARCHAR(20)'standard', 'strict', or 'teep'
time_intervalVARCHAR(10)'1h', '1d', '1w', '1m'
date_rangeVARCHAR(30)Quick preset or 'custom'
equipment_idsJSONBArray of machine UUIDs
downtime_typesJSONBArray of downtime type filters
downtime_reason_idsJSONBArray of specific reason UUIDs
incident_reason_idsJSONBArray of incident reason UUIDs
pareto_data_sourceVARCHAR(20)'downtime' or 'incident'
pareto_category_metricVARCHAR(30)Category grouping for Pareto
pareto_value_metricVARCHAR(20)Value metric for Pareto
duration_unitVARCHAR(10)'minutes', 'hours', or 'days'
show_legendBOOLEANWhether to show chart legend
y_axis_min / y_axis_maxNUMERICCustom Y-axis bounds (NULL = auto)
display_orderINTEGERPosition in dashboard grid
column_spanINTEGERGrid columns to span (1-4)

Codebase Paths

  • Chart table: database/sql_scripts/tables/oee_analytics_charts.sql
  • Frontend component: frontend/src/app/features/oee-dashboard/components/analytics-tab/
  • Chart config model: frontend/src/app/features/oee-dashboard/models/chart-config.model.ts

See Also