PerformanceLossTracking¤
Track performance and speed losses against target cycle times.
Module: ts_shape.events.production.performance_loss
Guide: Reporting Guide
When to Use¤
Use to identify hidden speed losses where the machine runs but slower than target. The "performance" component of OEE, showing where actual cycle time exceeds ideal. This module helps production engineers find periods of reduced speed that may not trigger alarms but still erode throughput over time.
Quick Example¤
from ts_shape.events.production.performance_loss import PerformanceLossTracking
tracker = PerformanceLossTracking(
df=production_df,
start_time="2024-01-01",
end_time="2024-01-31"
)
# Performance percentage per shift
perf = tracker.performance_by_shift(
cycle_uuid="cycle-time-001",
target_cycle_time=4.5 # seconds
)
# Find periods where performance dropped below 90%
slow = tracker.slow_periods(
cycle_uuid="cycle-time-001",
target_cycle_time=4.5,
threshold_pct=90.0
)
# Daily trend of performance percentage
trend = tracker.performance_trend(
cycle_uuid="cycle-time-001",
target_cycle_time=4.5,
window="1D"
)
Key Methods¤
| Method | Purpose | Returns |
|---|---|---|
performance_by_shift(cycle_uuid, target_cycle_time) |
Performance percentage per shift (ideal / actual) | DataFrame |
slow_periods(cycle_uuid, target_cycle_time, threshold_pct=90.0) |
Time windows where performance fell below threshold | DataFrame |
performance_trend(cycle_uuid, target_cycle_time, window='1D') |
Rolling trend of performance percentage | DataFrame |
Tips & Notes¤
Exclude planned slow-downs
If your process has intentional reduced-speed modes (e.g., warm-up, cool-down), filter those periods out before analysis. Otherwise they will appear as false performance losses.
Related modules
- Cycle Time Tracking — raw cycle time analysis
- OEE Calculator — performance feeds into the OEE calculation
- Micro-Stop Detection — very short stops that also reduce effective performance