Progression through the model is captured in discrete cycles, the length of which may be adjusted by the user. Events are generated in a hierarchical fashion such that a patient is first tested against a probability of death, followed by discontinuation of treatment. Smoking status (i.e. smoker, intermittent smoker or ex-smoker) determines current level of lung function, which in turn determines the probabilities of experiencing exacerbations and changes in other measures.