This page provides supporting software and other materials for implementing, using SHELF, the methodology described in the NICE Decision Support Unit Technical Support Document
Oakley J. E., Ren S., Forsyth J. E., Gosling J. P., Wilson K., Latimer N., Rutherford M. J., Uttley L., Fotheringham J., NICE DSU Technical Support Document 26: Expert elicitation for long-term survival outcomes. 2025.
The SHELF R package includes an app and supporting functions for survival extrapolation.
# Install the SHELF R package first
install.packages("SHELF")
# To run the main app
SHELF::elicitSurvivalExtrapolation()
The app in the R package can also be run online at https://jeremy-oakley.shinyapps.io/SHELF-survival-extrapolation/
Please refer to the main SHELF download for the full set of templates and advice, including powerpoint slides to walk the experts through the process of making probability judgements. A full documentation of an elicitation session would use the SHELF 1 and SHELF 3 Survival Extrapolation templates.
These slides can be used for training the experts. They include general content on elicitation, and additional content related to survival extrapolation.
The above pdf is a handout, intended for use a training exercise in survival extrapolation. It is based on a study reported in Koshiaris, C., Aveyard, P., Oke, J. et al. Smoking cessation and survival in lung, upper aero-digestive tract and bladder cancer: cohort study. Br J Cancer 117, 1224–1232 (2017). https://doi.org/10.1038/bjc.2017.179.
This .csv file contains synthetic data, based on Koshairis et al. (2017) cited above above. There is no real patient data in this file. Synthetic data has been generated by digitising the survival curves in Figure 2a in this paper, using the WebPlotDigitizer tool (A. Rohatgi, WebPlotDigitizer.[Online]. Available: https://automeris.io), followed by the reconstruction of individual patient-level data using an algorithm proposed by Guyot et al (2012) https://doi.org/10.1186/1471-2288-12-9.
The data can be used with the R shiny app SHELF::elicitSurvivalExtrapolation(), and are also the basis for the training exercise.