PHM North America 2025 Conference Data Challenge

Problem Domain

Engine Health Management for aircraft engines includes assessment of the health of gas-path components as well as externals such as controls and accessories. Dedicated diagnostic sensors are used for monitoring structural health using vibration sensors as well as fuel and oil/lube systems.

An engine will undergo several ‘cycles’ of changes in speed and temperature from low values at idle to high values at takeoff. Cyclic stresses cause engine components to deteriorate. Typically, each aircraft flight is counted as one engine cycle. An aircraft flight between a pair of cities will consist of ground idle, taxi out, takeoff, climb, cruise, descent, approach and landing, and taxi back. A sample flight profile from the DASHlink database (reference [1], Tail_687_1, 687200104141245.mat ) is shown in the Figure below.

alt text

This challenge problem limits itself to the use of aircraft sensors and gas-path sensors to estimate the time (cycles) remaining for periodic maintenance activities such as water wash and long term servicing of key components – the High Pressure Compressor and the High Pressure Turbine.

Objective

The 2025 EHM Data Challenge focuses on predicting key maintenance events for commercial jet engines using typically available sensor data. Participants must build models to estimate remaining cycles to three key events:

  • High Pressure Turbine (HPT) Shop Visit
  • High Pressure Compressor (HPC) Shop Visit
  • HPC Water-Wash

Participants are expected to split the dataset into training, validation, and test sets, develop predictive models, and submit results in format consistent with the guidelines provided in this document.

Problem

Participants are given metadata and sensor data for eight commercial jet engines (ESN101 to ESN108), each with up to 15,000 data points across 2001 flights. As typical of commercial aviation industry, data includes up to eight snapshots per flight from different flight phases (e.g., Takeoff, Climb, Cruise). Snapshots are recorded states of a set of sensors at pretermined flight conditions.

You must predict:

  • Cycles_to_HPT_SV – Cycles to Shop Visit for the High Pressure Turbine (HPT) (typically <= ~6000 cycles )
  • Cycles_to_HPC_SV – Cycles to Shop Visit for the High Pressure Compressor (HPC) (typically <= ~12500 cycles)
  • Cycles_to_WW – Cycles to HPC Water-Wash (typically <= ~1250 cycles)

Sensor data from up to 14 available variables can be used (the last two sensors are generally optional and may or may not be available in all Test datasets). Participants are encouraged to avoid ‘peeking into the future’ i.e. using metadata that reflects post-event states when building their models. In other words, any prediction p(t) made at a time t should only use inputs available until that time, i.e. time <= t.

Datasets

The datasets includes:

  • Meta Data (Columns A-F): Engine serial number, cycles, snapshot number, cumulative maintenance counts
  • Sensor Data (Columns G-W): 16 sensed engine variables (14 primary)
  • Targets (Columns W-Y): Remaining cycles to three maintenance events

Data preprocessing and normalization are recommended. Participants must define their own train/validate/test splits

The training and test datasets are available here:

Final validation data will be posted toward the end of the competition. Winners will be judged solely on their scores on the validation data. Finalists will be invited to submit a report and present at the PHM 2025 Conference. Finalists must attend and present their approach at the conference to be eligible for prizes.

Example Submission Format

Participants will submit predictions as a CSV file with:

  • file
  • Cycles_to_HPT_SV
  • Cycles_to_HPC_SV
  • Cycles_to_WW

An example submission file can be downloaded here.

Scoring

Prediction accuracy is the primary metric however, scores will be aggregated with two levels of asymmetry.

  1. Penalties for making “late predictions” are higher than “early predictions” for all three predicted variables.
  2. Penalties are also higher if an error is made closer to actual event time than when prediction horizon is larger when measured from the actual event ground truth.

Exact scoring functions are give below.

def time_weighted_error(y_true, y_pred, alpha=0.02, beta=1):
  """Returns the weighted squared error for an array of predictions."""

  error = y_pred-y_true

  weight = np.where(
  error >= 0,
  2 / (1 + alpha * y_true),
  1 / (1 + alpha * y_true)
  )
  return weight * (error ** 2)*beta

def score_submitted_result(df_true, df_pred):
  '''Calculate the score for a single team's submission'''

  # Extract the targets
  true_WW = df_true.Cycles_to_WW.values
  true_HPC = df_true.Cycles_to_HPC_SV.values
  true_HPT = df_true.Cycles_to_HPT_SV.values

  pred_WW = df_pred.Cycles_to_WW.values
  pred_HPC = df_pred.Cycles_to_HPC_SV.values
  pred_HPT = df_pred.Cycles_to_HPT_SV.values

  # WW score
  alpha = 0.01
  beta = 1/float(max(true_WW))
  score_WW = time_weighted_error(true_WW, pred_WW, alpha, beta)
  # Take the mean of the array
  score_WW = np.mean(score_WW)

  # HPC score
  alpha = 0.01
  beta = 2/float(max(true_HPC))
  score_HPC = time_weighted_error(true_HPC, pred_HPC, alpha, beta)
  # Take the mean of the array
  score_HPC = np.mean(score_HPC)

  # HTC score
  alpha = 0.01
  beta = 2/float(max(true_HPT))
  score_HPT = time_weighted_error(true_HPT, pred_HPT, alpha, beta)
  # Take the mean of the array
  score_HPT = np.mean(score_HPT)

  # Average score
  score = np.mean([score_WW, score_HPC, score_HPT])

  return score

Timeline

Date Stage
July 1st, 2025 Competition Opens
August 22nd, 2025 Final Test data posted
September 5th, 2025 (11:59:59 pm PDT) Competition Closes
September 9th, 2025 Finalists Announced
October 1st, 2025 Conference Presentation Slides Due
October 27-30, 2025 PHM Conference
October 28th, 2025 Final Winners Announced

Submission Portal

Please upload your submissions for both the testing and validation datasets in the PHM Challenge Submission Portal (coming soon!). Note that you will only see the submission area if you have previously applied using the application form and we have granted you access. You may upload or overwrite your submissions as often as you want. The system will automatically score the latest testing submission from each team every day at 3:00 am Pacific Daylight Time (10:00 am UTC). Validation submissions will only be scored once (after competition closes). Results will automatically be posted on the Leader Board (coming soon!).

Please ensure the submission file uses the CSV format. Thus, the filename for testing dataset submissions is submission.csv and for validation dataset submissions is validation_submission.csv.  Otherwise, the automated scorer will not read your file and score your algorithm, and the conference organizers will not consider your submission as a valid submission. Please ensure that your results are in the format shown in this example submission file.

Eligibility & Teams

Teams of one or more individuals are eligible. At least one member of each finalist team must attend the PHM 2025 Conference. Reports and presentations are required for award consideration.

Tools and References

Participants may use any modeling tools or frameworks. Reference code and guidance may be provided during the competition period. For further background, refer to:

  1. NASA DASHlink – (https://c3.ndc.nasa.gov/dashlink/projects/85/).
  2. NASA AGTF30 Simulation – MATLAB Executable Steady-State Solver and Linearization Tool for the AGTF30 Engine Simulation (MEXLIN-AGTF30), https://software.nasa.gov/software/LEW-20688-1. See also https://software.nasa.gov/software/LEW-19717-1.
  3. MATLAB T-MATS Toolbox – https://ntrs.nasa.gov/api/citations/20180002976/downloads/20180002976.pdf.

For questions or support, please reach out via the official PHM 2025 Forum or email the organizers.

Good luck and happy modeling!