Smoking is more common among people in more deprived areas, and the benefits of the service depend on who is identified, who takes up support and who quits. The model keeps every result by age group (seven bands from 16 to 24 to 90 and over), sex and IMD quintile, so the costs and outcomes of the service can be compared between groups.
8.0.1 Differences by age, sex and deprivation
The chance of starting a quit attempt, and of still being smoke free at four weeks, differs by age, sex and deprivation. The model takes these differences from the 2024 NHS tobacco dependence patient level data, as analysed by Agrawal et al. (Agrawal et al. 2026): adjusted odds ratios from multilevel logistic regression, adjusted for age, sex, ethnicity and trust. Two outcomes are used:
Outcome in Agrawal et al.
Model parameter it is applied to
Commenced a supported quit attempt
pr_quit_attempt_seen, the chance of a quit attempt once seen by a tobacco dependence advisor
Smoke free at 28 days
every 4-week quit rate: quit_rate_4w_after_discharge, quit_rate_4w_inperson_self, quit_rate_4w_phone_self, quit_rate_4w_self_vba (not the background rate, pr_quit_4w_background)
The paper reports odds ratios in narrower age bands than the model’s. They were combined into the model’s age bands as a patient-weighted average of the log odds ratios. The paper has no row for ages 85 to 89, which sit inside its oldest bands; all of them fall in the model’s 75 to 89 band.
16-24
25-34
35-49
50-64
65-74
75-89
90+
Quit attempt
0.35
0.504
0.765
0.972
0.913
0.678
0.23
Smoke free at 28 days
0.66
0.721
0.791
1.068
1.16
1.162
1.35
IMD 1 (least deprived)
2
3
4
5 (most deprived)
Female (male = 1)
Quit attempt
1
1.07
1.11
1.13
1.17
1.12
Smoke free at 28 days
1
0.98
0.92
0.84
0.78
0.98
No differences are applied to screening, very brief advice, assessment or registration for specialist support after discharge, where the patient level data don’t give adjusted estimates that map onto the model’s steps.
8.0.2 How the odds ratios are applied
The odds ratios are held in user_inputs/equity_multipliers_panel.csv, one column per scenario, with a Justification column giving the source. Every scenario in scenarios_control_panel.csv must have a column. A scenario with no differences has a column of 1s (the MVS scenario is set up this way). In the BEST_ALL scenario the gradients are narrowed: each log odds ratio is multiplied by 0.7.
scripts/00_build_scenarios.R applies them on the odds scale, which is the scale they were estimated on:
for age group \(a\), sex \(s\) and IMD quintile \(d\). Working on the odds scale keeps every probability between 0 and 1 without any clipping. The constant \(k\) is chosen for each parameter and scenario so that the average probability across identified smokers in England equals the value in the control panel. The control panel value is therefore the national average, and the odds ratios only spread it across groups. The weights are patients multiplied by calibrated smoking prevalence in each age group, sex and IMD quintile, from the national inputs, and the same national weights are used whichever area is run. A trust or ICB with a different mix of patients therefore has a different average, which is the point: its results reflect who it treats.
The script stops if a scenario has no column, a level is missing or misspelt, an odds ratio is not a positive number, or a row is duplicated. After applying the odds ratios it checks that every value is a probability and that each national average equals the panel value. It prints the range across groups for the basecase.
Age, sex and deprivation act independently, as in the regression the odds ratios come from; interactions between them are not modelled.
8.0.3 Results by subgroup
The pathway tables and the admissions avoided keep age group, sex and IMD quintile throughout, so any result can be split by them: the pathway by IMD quintile, age group and sex (Tab_10, Tab_11 and Tab_12), and the admissions avoided by group and follow-up year (Tab_13). R/build_subgroup_economics.R brings the two together in Tab_16. For each IMD quintile, broad age group (16 to 34, 35 to 64, and 65 and over) and sex, it gives the admissions avoided, bed days freed and savings over the five follow-up years, the extra 12-month quits (with the service minus without it), and the admissions and bed days avoided per 1,000 extra quits:
Code
# Extract from R/build_subgroup_economics.Rstratum_report <-function(avoided_dt, pathway_dt, group_col) { totals <- avoided_dt[, .(`Adms Prevented`=sum(adms_total), `Bed Days Prevented`=sum(beds_total),`Cost Savings`=sum(savs_total)), by = group_col] quits <-dcast(pathway_dt[, .(Quits =sum(`Total Quits (12m)`)), by =c(group_col, "Arm")],as.formula(paste(group_col, "~ Arm")), value.var ="Quits") quits[, Net_Quits :=round(get(ARM_TREATMENT) -get(ARM_CONTROL), 5)] merged <-merge(totals, quits[, c(group_col, "Net_Quits"), with =FALSE], by = group_col, all.x =TRUE) merged[, .(Subgroup =get(group_col), `Net Quits (12m)`= Net_Quits, `Adms Prevented`, `Bed Days Prevented`, `Cost Savings`,`Adms Prevented per 1000 Quits`=per_1000(`Adms Prevented`, Net_Quits),`Bed Days Prevented per 1000 Quits`=per_1000(`Bed Days Prevented`, Net_Quits))]}
All cohorts from 2019 to 2045 are added together in Tab_16. The report’s inequality tables (report_inequality_tables() in R/report_results.R) use one year of the service instead, and follow the IMD quintiles from smoking among patients, through the share seen and the extra quits, to the admissions avoided per 1,000 identified smokers.