Cycle-Based PM Estimated Due Dates
What It Does
Previously, cycle-based PM estimated dates could only come from external systems via API. We have added a built-in prediction engine so planners can estimate when the next cycle-based PM is due without relying on third-party software.
How the Calculation Works
The system looks at historical PM completion records to figure out how fast a machine accumulates cycles, then projects forward.
Step 1 β Gather history: It pulls completed PM dispatches for that machine where a cycle_completed value was recorded, within a configurable lookback window (default: 365 days). Needs at least 2 completed PMs to work.
Step 2 β Calculate production rate: For each pair of consecutive PM completions, it computes:
rate = (cycles at PMβ - cycles at PMβ) / (days between them)
This gives a "cycles per day" rate for the machine.
Step 3 β Determine cycles remaining: Based on the schedule type:
- Fixed-interval: next threshold = interval x occurrence count
- Floating-interval: next threshold = last completed cycle count + interval
Then: cycles remaining = next threshold - current machine cycle count
Step 4 β Project the date:
Estimated days until next PM = cycles remaining / average historical rate
Step 5 β Confidence bounds (80% interval):
- Optimistic (faster machine): uses the 90th percentile of historical rates
- Pessimistic (slower machine): uses the 10th percentile of historical rates
Confidence Score
Each prediction gets a 10β80% confidence score based on three factors:
- Sample size β reaches full weight at 5+ historical data points
- Consistency β penalizes machines with erratic production rates
- Recency β penalizes stale data (exponential decay if last PM was long ago)
What Planners See
- Predicted occurrences appear on the maintenance calendar in light green with a [PREDICTED X%] confidence label
- Planners can manually adjust predicted dates (adjustments persist across prediction refreshes)
- When a real PM is completed, the prediction converts to a real occurrence automatically
Enabling the feature
The feature is gated behind a site-level flag (**Enable Scheduler Predictions**) that is off by default. Once enabled at the site level, individual schedules can opt in by checking **Enable Predictions** on the schedule detail page.
Configuration
- Enable predictions β toggled per schedule (enable_predictions)
- Lookback window β configurable per schedule (default 365 days)
- Predictions refresh nightly via a scheduled job
Key Takeaway
With enough historical PM data (2+ completions), the system automatically forecasts future cycle-based PM dates based on actual machine usage patterns within L2L. New cycle-based schedules produce no predictions until at least 2 PM completions exist. To allow predictions from day one, set Expected Cycles Per Day on the Machine detail page.
We suggest enabling predictions for estimated due dates, but if predictions are not enabled and you'd still like to try to narrow in on a potential estimated due date the old-fashioned way within L2L, to best accomplish this, as an alternative, you will want to use Floating Interval as the TYPE, and then use the launch prior feature to help set the due date. The launch prior will launch the PM before the Interval cycles are recorded. The Interval cycles will be the due date.
In the example below, we have a 100,000 cycle PM with a Launch Prior of 10,000 cycles. The PM in this example will launch at 90,000 cycles and the due date will be the Interval cycle count at 100,000
So, while it's not really a date, it does give your team time to get the PM completed before it goes PAST DUE.