AI/ML
Remaining-useful-life prediction for turbofan engines, with the test engines still unopened
RUL prediction with calibrated intervals, a cost-based maintenance policy and a streaming fleet replay
Sole developer
The problem
Maintenance scheduled too early wastes money; too late risks failure in service. A useful prediction needs an honest error bar and a policy that shows when planning pays. A research demonstration on public engine data.
Team: Personal project. Timeline: October 2026.
What changed
- RMSE, best model (cycles)
- 7.40
- Baseline: 8.90 from cycle count alone, with no sensors
- 1D CNN, 5-fold cross-validation grouped by engine over 19 engines (results/phase3_sequence.json), 95% interval 4.61–10.20 resampled by engine; the 10-engine test group has not been scored yet
- LSTM RMSE
- 13.00
- Baseline: 8.90 cycle-count floor
- Same folds; the LSTM did worse than ignoring the sensors, and the likely cause (its readout) was left unfixed to avoid tuning on the reported folds
- Planning against run-to-failure (estimate)
- Wins above a cost ratio of 1
- Modelled savings of the lower-bound policy across cost ratios of 1 to 100 (results/phase4_policy.json); at ratio 1 planning loses by 20.9–90.2 cost units, above it planning wins. The cost figures are assumptions, so these are estimates
Architecture
Request flows
- Predict and plan maintenance: NASA N-CMAPSS (Parquet) → Shared feature builder → RUL model (1D CNN) with conformal intervals → Lower-bound maintenance policy → API and cost panel → Fleet dashboard
- Replay a live fleet: Streaming replay of held-out engines → Shared feature builder → RUL model (1D CNN) with conformal intervals → Lower-bound maintenance policy
Decision 1 of 4
How should the data be split?
- Options
- Random windows · By unit number · By engine · identified as sub-dataset plus unit
- Chose
- Group by engine, as the pair of sub-dataset and unit, and hold one group out entirely as the final test set
- Trade-off
- With 29 engines the confidence intervals are wide.
- Evidence
- Overlapping windows from one engine are near-duplicates, and unit numbers restart in every sub-dataset; grouping on the bare unit number had earlier merged engines and reported 16 where there are 29.
Decision 2 of 4
How are prediction intervals made trustworthy?
- Options
- Model-specific uncertainty · Conformal prediction
- Chose
- Conformal prediction, with confidence intervals on comparisons resampled by engine rather than by window
- Trade-off
- Intervals are only as good as the calibration data, and with few engines they are wide.
- Evidence
- Resampling windows would treat two views of one engine as independent and report a narrower, misleading interval.
Decision 3 of 4
What should the maintenance policy act on?
- Options
- The point prediction · The lower bound of the interval
- Chose
- The lower bound
- Trade-off
- Engines come out of service earlier than the point prediction suggests, which costs planned visits.
- Evidence
- Across the cost sweep the lower-bound policy recorded no failures, and the crossover where planning starts to pay doesn't depend on the cost figures chosen.
Decision 4 of 4
Why keep a model that failed?
- Options
- Drop the LSTM · Tune it until it wins · Report it with its diagnosis
- Chose
- Report it with its diagnosis and leave the fix for a fresh run
- Trade-off
- The table shows a clearly weak model.
- Evidence
- Its error is 14.06 early, 7.63 mid-life and 15.02 late, consistent with a readout that uses only the final hidden state; fixing it on these folds would be tuning on the set being reported.