greenbook provides cost-benefit analysis primitives from
the HM Treasury Green Book: the kinked STPR, discount factors, NPV,
equivalent annual cost, GDP-deflator rebasing, optimism bias,
distributional weights and monetised valuation.
All bundled parameter tables carry vintage metadata. Inspect with:
gb_data_versions()
#> dataset
#> 1 stpr_schedule
#> 2 gdp_deflator
#> 3 optimism_bias
#> 4 metb
#> 5 wellby
#> 6 vpf
#> 7 qaly
#> 8 carbon_values
#> source
#> 1 HM Treasury Green Book supplementary guidance: discounting (updated 28 October 2026), paragraph 3.8; pre-October 2026 schedule from the 2003 Green Book
#> 2 HM Treasury, GDP deflators at market prices, and money GDP: October 2026 (Budget), calendar-year series, 2025 = 100
#> 3 HM Treasury Supplementary Green Book Guidance: Optimism Bias (Mott MacDonald 2002)
#> 4 HM Treasury Green Book 2018 and 2022 (the 2026 edition specifies no uplift; see chapter 6 Costs of raising public funds)
#> 5 HMT Wellbeing Guidance for Appraisal (July 2021)
#> 6 DfT Transport Analysis Guidance (TAG) data book v2.03FC (December 2025), Table A4.1.1, WTP element for fatal casualties
#> 7 DHSC Supplementary Green Book Guidance + NICE HTA thresholds
#> 8 DESNZ Valuation of Energy Use and GHG Emissions for Appraisal (November 2023), Data Tables 1-19, Table 3
#> last_updated
#> 1 2026-10-31
#> 2 2026-10-31
#> 3 2026-04-26
#> 4 2026-04-26
#> 5 2026-04-26
#> 6 2026-04-26
#> 7 2026-04-26
#> 8 2026-04-26
#> notes
#> 1 Vintage 2026-10 (default): 3.00/2.50/2.25 percent for years 1-30/31-75/76-125, no discounting beyond year 125, no health or catastrophic variants. Vintage 2003: 3.5/3.0/2.5/2.0/1.5/1.0 percent with health and catastrophic-risk variants.
#> 2 Outturn 1990-2025 (ONS Quarterly National Accounts, 30 September 2026). Forecast 2026-2031 chained from OBR October 2026 EFO growth rates; type column marks forecast years.
#> 3 Indicative upper bounds for capex and duration uplift across six project categories. Values unchanged since 2003.
#> 4 Uplift on revenue raised through distortionary taxation. 20 percent in 2018 onwards (was 30 percent historically).
#> 5 WELLBY central value GBP 13000 in 2019 prices (low/central/high range). Convert to other base years via gb_deflator().
#> 6 Anchor 2023 = GBP 2,474,341 (WTP component). Other years derived by 2 percent annual real GDP per head growth per TAG methodology.
#> 7 GBP 70k per QALY in 2024 prices for cross-government appraisal. NICE thresholds GBP 20k-30k retained for HTA context.
#> 8 Single consolidated series (replacing historical traded / non-traded split). Low / central / high paths 2020-2050 in 2022 prices, GBP/tCO2e.The Green Book Social Time Preference Rate is 3.00 percent for years
1 to 30, 2.50 percent for years 31 to 75 and 2.25 percent for years 76
to 125, following HM Treasury’s update of 28 October 2026.
gb_stpr() returns the rate for any year:
gb_stpr(c(10, 30, 31, 75, 76, 125))
#> [1] 0.0300 0.0300 0.0250 0.0250 0.0225 0.0225
gb_schedule_table()
#> year_from year_to standard health catastrophic
#> 1 0 30 0.0300 NA NA
#> 2 31 75 0.0250 NA NA
#> 3 76 125 0.0225 NA NAHM Treasury advises against discounting beyond year 125, so the
default schedule stops there. The schedule in force before October 2026,
with its health and catastrophic-risk variants, is available as
vintage = "2003" for reproducing earlier appraisals:
gb_stpr(c(10, 30, 31, 75, 76, 200, 300), vintage = "2003")
#> [1] 0.035 0.035 0.030 0.030 0.025 0.020 0.015
gb_schedule_table(vintage = "2003")
#> year_from year_to standard health catastrophic
#> 1 0 30 0.035 0.0150 0.0300
#> 2 31 75 0.030 0.0129 0.0257
#> 3 76 125 0.025 0.0107 0.0214
#> 4 126 200 0.020 0.0086 0.0171
#> 5 201 300 0.015 0.0064 0.0129
#> 6 301 1000 0.010 0.0043 0.0086gb_discount_factor() applies the kinked schedule
annually using prod(1 + r_t):
gb_discount_factor(0:5)
#> [1] 1.0000000 0.9708738 0.9425959 0.9151417 0.8884870 0.8626088
gb_discount_factor(c(0, 30, 31, 75, 76))
#> [1] 1.0000000 0.4119868 0.4019383 0.1356155 0.1326313The kink is correctly handled across band boundaries:
A simple appraisal: capex of GBP 100 in year 0, annual benefits of GBP 30 from year 1 to year 9.
costs <- c(100, rep(0, 9))
benefits <- c(0, rep(30, 9))
appraisal <- gb_npv(benefits - costs, base_year = 2024)
appraisal
#>
#> ── Green Book appraisal ────────────────────────────────────────────────────────
#> NPV (real, standard schedule): "GBP 133.6"
#> Horizon: 10 years (year 0 to 9)
#> Base year: 2024
#> Vintage: Green Book "2026-10"The result is a gb_appraisal object with full
provenance. Use summary() for a more detailed view:
To compare options of different durations, annualise the NPV:
gb_real() converts nominal values at year-of-occurrence
prices to real values at a chosen base year:
gb_real(nominal_values = c(100, 110, 120),
year = 2020:2022,
base_year = 2024)
#> [1] 117.4778 128.4301 132.4863gb_rebase() does the same operation between two
real-terms base years:
gb_deflator() exposes the underlying factor:
v0.2.0 adds optimism bias (Mott MacDonald upper bounds), distributional weights, and Marginal Excess Tax Burden. v0.3.0 ships the valuation library: WELLBY, VPF, QALY, DESNZ carbon values. See the package GitHub repository for the full roadmap.