1 Introduction

Complexity Risk Index (CRI) represents a risk index, calculated aggregating all reported and assessed safety occurrences.

2 Import data

To run CRI calculation it is necessary to (prepare) and load User’s safety occurrence data and pre-calculated EUROCONTROL average values.

Sample data is available to test the methodology and it can be found at “data/sample_data/” folder.

Please feel free to use this data as input to get familiar with the methodology.

If you want to run analysis and calculation of CRI based on you own data, please use the empty template provided in “data/sample_data/” folder (safety_data_template.csv) and populate it with your values.

Please make sure that you do not change the names of the columns!

safety_data <- data_import(
  "data/sample_data/astdata_sample.csv",                   # Safety Data
  "data/processed_data/ectrl_data.xlsx"                    # EUROCONTROL average values + weights data
) 

3 Calculate indicators

cri <- calculate_indicators(safety_data) 

4 Visualisation

Plots below are customisable. User can select year of analysis (Pri_x), and what indicator to analyse (Pri_y). Please modify titles of the X (Pri_x_name) and Y axis (Pri_y_name) accordingly, and add Title (Title) of the plot if required.

Additional examples of plots and interactive plots can be found in the script main.R in folder “R/”.

4.1 CRI distribution per year

Plot gives CRI distribution change through the years.

violin <- violin_plot(
  data = cri,                                   # your dataset
  Pri_x = "year",                               # specify primary x axis
  Pri_y = "cri_n_occ_flhr",                     # specify primary y axis
  Sec_y = "occs_all",                           # specify secondary y axis
  highl = "to_highlight",                       # specify column used for color
  Pri_y_name = "CRI normalised by flight hours",# name of primary y axis
  Sec_y_name = "Total number of occurrences"    # name of secondary y axis
)
plot(violin)
BoxPlot of CRI normalised 2015 - 2017

Figure 4.1: BoxPlot of CRI normalised 2015 - 2017

The figure 4.1 shows the distributin of normalised CRI in period 2015 - 2017.

4.2 CRI

Plot shows CRI for all Entities.

CRIplot <- plot_indicator(
  data = cri,                                   # your dataset
  my_year = 2017,                               # specify the year for the filter
  Pri_x = "Entity",                             # specify primary x axis
  Pri_y = "cri_n_occ",                          # specify primary y axis
  Sec_y = "occs_all",                           # specify secondary y axis
  highl = "to_highlight",                       # specify column used for color
  Pri_y_name = "CRI",                           # name of primary y axis
  Sec_y_name = "Total number of occurrences",   # name of secondary y axis
  Title = "Composite Risk Index (2017)"         # specify the plot title (optional)
)
plot(CRIplot)
CRI

Figure 4.2: CRI

The figure 4.2 shows CRI in entities in year selected.

4.3 CRI normalised

Plot gives CRI normalised by million flight hours for all Entities.

CRInormplot <- plot_indicator(
  data = cri,                                   # your dataset
  my_year = 2017,                               # specify the year for the filter
  Pri_x = "Entity",                             # specify primary x axis
  Pri_y = "cri_n_occ_flhr",                     # specify primary y axis
  Sec_y = "occs_all",                           # specify secondary y axis
  highl = "to_highlight",                       # specify column used for color
  Pri_y_name = "CRI normalised by flight hours",# name of primary y axis
  Sec_y_name = "Total number of occurrences",   # name of secondary y axis
  Title = "Composite Risk Index normalised by flight hours (2017)"         # specify the plot title (optional)
)
plot(CRInormplot)
CRI normalised

Figure 4.3: CRI normalised

The figure 4.3 shows normalised CRI entities in year selected.