HM Treasury changed the Green Book discount rate on 28 October 2026, adopting the recommendations of the Green Book Discount Rate Review 2026 (Freeman and Groom). This release makes the new schedule the default. Results change: any appraisal run with default arguments now discounts at a lower rate, so NPVs of projects with long-dated benefits rise.
New default schedule (vintage = "2026-10"): 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. It reproduces the discount factors in Annex A of the October 2026
supplementary guidance to four decimal places.
The October 2026 guidance says discounting is not meaningful beyond
year 125 and that one rate applies to all proposals. Under the default
vintage, years above 125 and the "health" and "catastrophic"
schedules are therefore errors with a message pointing to the
guidance, rather than being silently extrapolated or applied.
The earlier schedule (3.5 percent declining to 1.0 percent, with the
health and catastrophic-risk variants) is kept as vintage = "2003".
The edition labels "2018", "2020", "2022" and "2026-02" map to
it, the February 2026 edition having kept the 3.5 percent rate.
gb_stpr(), gb_discount_factor(), gb_discount(),
gb_schedule_table(), gb_carbon_npv() and gb_eanc() gain a
vintage argument. In gb_npv(), gb_appraise() and
gb_dist_weighted_npv(), vintage was previously a label stored on
the result; it now selects the schedule, and defaults to "2026-10"
instead of "2022". An unknown vintage is now an error at the point
of appraisal.
gb_validate() recognises the new vintages and reports, as
information, when an appraisal uses the pre-October 2026 schedule.
gb_dist_weight() and
gb_dist_weighted_npv() is now 1.25, the value in the updated Green
Book, down from 1.3. Pass eta = 1.3 to reproduce earlier results.GDP deflator refreshed to HM Treasury's October 2026 (Budget) release:
ONS outturn to 2025 (2025 = 100) and, new, OBR forecasts for 2026 to
2031, chained from the published growth rates. gb_deflator(),
gb_real() and gb_rebase() can now express values in 2025 and 2026
prices; previously they stopped at 2024. A type column marks forecast
years. data-raw/gdp_deflator.R now locates the latest release through
the GOV.UK Content API.
inst/CITATION takes the version number from DESCRIPTION.
Maintainer email corrected to [email protected]. The CRAN
record for 0.1.0 carried [email protected], which put
greenbook on a separate maintainer check-results page from the rest of
my packages. Both addresses reach the same inbox; this aligns the CRAN
record with every other package I maintain.
Corrected the description of the "catastrophic" STPR schedule in
gb_stpr() and gb_discount_factor(). It previously read as the
schedule to use "for projects where catastrophic risk dominates",
which inverts the guidance. The 3.0 percent schedule is the standard
schedule with the catastrophic-risk element of pure time preference
removed, and is for appraisals that already model that risk
explicitly, so it is not counted twice. Using it because a project
looks risky would understate the discount rate. Added a @details
note identifying the 0.5 percentage point difference.
Refreshed every Green Book citation to the 2026 edition (published 5
February 2026). The 2026 edition is a substantial restructuring: most
annexes were merged into the core chapters, and the only surviving annex
is "Annex A: Private finance models". References to "Annex A6"
(discounting) and "Annex A3" (distributional analysis) therefore no
longer resolve, and "Annex A on appraisal: equivalent annual cost" would
now point at private finance models. Each citation was rechecked against
the 2026 text rather than having its year swapped: discounting and
inflation now sit in chapter 6, distributional analysis in chapter 7, and
valuation of social costs and benefits in chapter 8. Equivalent annual
cost does not appear in the 2026 main text, so gb_eanc() now cites the
supplementary discounting guidance.
Replaced the superseded "HM Treasury (2003). Green Book Supplementary
Guidance: Discounting" reference in gb_stpr() and
gb_discount_factor() with the current supplementary guidance and its
gov.uk link.
gb_metb() no longer claims 20 percent as a 2026 Green Book figure. The
2026 edition specifies no uplift at all and states that "Practitioners
should not generally include these costs in appraisal", because most
proposals are funded from pre-determined departmental budgets so the cost
of raising the funds does not differ between the options being compared.
The one exception it gives is private finance model options. The bundled
metb.csv note for 2026 previously read "Maintained at 20 percent in
Green Book 2026", which was wrong. vintage = "2026" now warns that the
figure is carried forward from 2022 rather than set by the 2026 edition,
and a new documentation section explains when the function still applies.
The returned value is unchanged, so existing code keeps working.
No changes to any returned value. The STPR schedule itself is unchanged.
gb_stpr(), gb_discount_factor(), gb_discount(): kinked
Social Time Preference Rate (standard, health, catastrophic-risk
variants) and discount factors.gb_npv(), gb_eanc(): net present value and equivalent annual
net cost.gb_deflator(), gb_real(), gb_rebase(): GDP-deflator factors
and real-terms conversion against a bundled vintage.gb_optimism_bias(), gb_apply_ob(), gb_categories(): lookups
for the Mott MacDonald (2002) upper bounds across six project
categories with mitigation factor support.gb_dist_weight(), gb_dist_weighted_npv(): iso-elastic
distributional weights using Green Book default eta = 1.3.gb_metb(): Marginal Excess Tax Burden uplift with vintage
lookup (20 percent in 2018+, 30 percent historical).gb_wellby(): WELLBY conversion to GBP per HMT Wellbeing
Guidance (July 2021). Central GBP 13,000 in 2019 prices.gb_vpf(): Value of Preventing a Fatality per DfT TAG.
GBP 2.153 million in 2024 prices.gb_qaly(): Quality-Adjusted Life Year per DHSC supplementary
Green Book guidance (GBP 70k) plus NICE thresholds.gb_carbon_value(): DESNZ Carbon Values for Appraisal,
central / low / high paths, traded and non-traded sectors.gb_carbon_npv(): NPV of an emissions path with full
discounting and rebasing.gb_appraise(): end-to-end appraisal in one call. Optionally
applies optimism bias and METB to costs, then computes NPV
and BCR with full provenance.gb_compare(): side-by-side comparison of two or more options
with NPV / BCR / EANC ranking and preferred-option selection.gb_progression(): track an appraisal across SOC, OBC, FBC
business case stages.gb_place_based(): aggregate sub-projects into a place-based
business case (per Green Book 2026), with optional synergy uplift.gb_economic_case(): wrap an appraisal in Five Case Model
Economic Case structure (CSFs, options, monetised summary,
non-monetised, VfM, recommendation).gb_validate(): lint an appraisal for sign-convention,
base-year, schedule, and consistency errors.gb_risk_register(): build a risk register with monetised
exposure (probability x impact), aggregate by category, and
optionally risk-adjust an appraisal NPV.gb_sensitivity_ob(): optimism bias sensitivity sweep across
a vector of mitigation factors. Required at every Green Book
business case gateway.gb_headline(): one-page summary with NPV, BCR, EANC, payback,
and provenance.gb_cost_per_unit(): cost-effectiveness ratio (PV cost per
QALY, WELLBY, tCO2e, etc.).gb_to_latex(): render an appraisal as a LaTeX table.gb_to_excel(): multi-sheet Excel export (requires
openxlsx).gb_to_word(): one-page Word document export (requires
officer and flextable).gb_schedule_table(), gb_data_versions(): tibble of the STPR
schedule and vintage metadata for all eight bundled parameter
tables (STPR, GDP deflator, optimism bias, METB, WELLBY, VPF,
QALY, carbon values).gb_appraisal S3 class with print(), summary(), format()
methods. The summary() method renders BCR, optimism bias,
METB, distributional eta, and unweighted NPV when present.