Green Book discount factor for a year under the stepped long-term schedule

Gives the discount factor for year t when the rate steps down after year 30 and again after year 75, the declining regime of Table 3.A of the supplementary guidance. Each band's rate compounds only over the years that fall in that band, so the factor for a year after 30 is the year-30 factor times (1 + r_2) to the power minus the years past 30. With 3.5%, 3.0% and 2.5% it reproduces the standard factors of Annex A Table A.1, 0.3459 for year 31 and 0.1468 for year 60, and with the health rates 1.5%, 1.286% and 1.071% it gives 0.4955 for year 50 as in Table A.2. For years up to 30 it is the single-amount factor of HE-FM-DR-001, and totals over a stream are in HE-CF-TPR-001.

Signature

DF_t = (1 + r_1)^(-min(t, 30)) * (1 + r_2)^(-max(min(t, 75) - 30, 0)) * (1 + r_3)^(-max(t - 75, 0))
Inputs
InputsDefinitionUnit
r_1Annual rate for years 1 to 30, 0.035 for the STPR, 0.015 for the health rate or 0.03 for the reduced ratea proportion per year
tYear of the appraisal in which the cost or benefit falls, with year 0 the presentyears, a whole number, at most 125 for the health and reduced rates (HE-AS-TPR-008)
r_2Annual rate for years 31 to 75, 0.03 for the STPR, 0.01286 for the health rate or 0.0257 for the reduced ratea proportion per year
r_3Annual rate for years 76 to 125, 0.025 for the STPR, 0.01071 for the health rate or 0.0214 for the reduced ratea proportion per year
Output
DF_tWeight on a real social cost or benefit in year t relative to year 0none, 1 at year 0

Function

Social time preference rate, stepped long-term discount factors and implied individual rates for health

Maps the components of social time preference to the HM Treasury social time preference rate and its health discount rate, maps a stepped long-term schedule of rates to the discount factor for any year of an appraisal, and maps one answer to a stated choice between ill health at two dates to the constant annual rate it implies. The rates it returns feed the single-amount factor of the Discount Rate page (HE-FM-DR-001) and the stream totals of the Discounting page (HE-FN-DISC-001, HE-FM-DISC-001 to HE-FM-DISC-004 and HE-CF-DISC-001). A health rate derived from growth in the consumption value of health is HE-FM-DDIS-002 under HE-FN-DDIS-001, and the quasi-hyperbolic weight D(k) = beta lambda^k of the article is HE-FM-HYPD-004 under HE-FN-HYPD-001, so neither is repeated here. Notation follows the Time Preference article.

Computational function

  • Computational function for a level yearly stream under the stepped Green Book schedule and the reduced schedule without pure time preference

    Takes a level yearly amount, a horizon of up to 125 years and two sets of three band rates, the standard schedule and the reduced schedule with pure time preference excluded, and returns the sum of the stepped factors of HE-FM-TPR-003 under each, the two present values and their difference. Paragraph 3.5 of the supplementary guidance reads the difference between the two results as an estimate of the wealth transfer attributable to pure social time preference. Each band's sum is geometric, so the calculator line adds three closed-form sums, and for a horizon of 30 years or less the standard sum is the annuity of HE-FM-DISC-001. The inputs therefore differ from the formula's variables, which describe one year.

    Inputs and outputs: q is the real amount in each of years 1 to T, for example GBP of social benefit. T is the horizon, a whole number of years of at most 125. r_1, r_2 and r_3 are the standard band rates for years 1 to 30, 31 to 75 and 76 to 125, 0.035, 0.03 and 0.025 for the STPR. z_1, z_2 and z_3 are the reduced rates of Table 3.B, 0.03, 0.0257 and 0.0214. n_1, n_2 and n_3 are the years of the horizon in each band. A_S and A_Z are the sums of the factors, PV_S and PV_Z the present values in the unit of q, and W is PV_Z minus PV_S.

    Assumption: All rates are above zero for the closed form, which the R and Python code do not need. Any amount in year 0 is added undiscounted. Table 3.B gives no reduced health rate, so for a health stream the code is run with the health rates 0.015, 0.01286 and 0.01071 for the standard total only. The R and Python code take any list of band ends and rates, including the six reduced bands of Table 3.B that run past year 125.

    Worked example (GBP 1,000 a year for 100 years): The standard schedule gives about GBP 28,863 and the reduced schedule GBP 33,040, so about GBP 4,176 of present value is lost to pure time preference (illustrative stream, computed here for illustration). q = 1000; T = 100; r_1 = 0.035; r_2 = 0.03; r_3 = 0.025; z_1 = 0.03; z_2 = 0.0257; z_3 = 0.0214; n_1 = 30; n_2 = 45; n_3 = 25; A_S = 28.863363; A_Z = 33.03971; PV_S = 28863.363; PV_Z = 33039.71; W = 4176.346

    Worked example (One unit a year for 60 years): Just past the 50-year trigger for the extra sensitivity analysis, the standard sum is about 25.375 and the reduced sum 28.144 (computed here for illustration). q = 1; T = 60; r_1 = 0.035; r_2 = 0.03; r_3 = 0.025; z_1 = 0.03; z_2 = 0.0257; z_3 = 0.0214; n_1 = 30; n_2 = 30; n_3 = 0; A_S = 25.37526; A_Z = 28.143509; PV_S = 25.37526; PV_Z = 28.143509; W = 2.76825

    Worked example (Thirty-year horizon inside the first band): No step is reached, and the standard sum of 18.392045 is the HE-FM-DISC-001 annuity at 3.5%, a limiting case that checks the implementation. q = 1000; T = 30; r_1 = 0.035; r_2 = 0.03; r_3 = 0.025; z_1 = 0.03; z_2 = 0.0257; z_3 = 0.0214; n_1 = 30; n_2 = 0; n_3 = 0; A_S = 18.392045; A_Z = 19.600441; PV_S = 18392.045; PV_Z = 19600.441; W = 1208.396

    Excel: =(1-(1+RateNear)^(-MIN(Horizon,30)))/RateNear+(1+RateNear)^(-30)*(1-(1+RateMid)^(-MAX(MIN(Horizon,75)-30,0)))/RateMid+(1+RateNear)^(-30)*(1+RateMid)^(-45)*(1-(1+RateFar)^(-MAX(Horizon-75,0)))/RateFar Returns A_S from named cells; the same formula on the reduced rates returns A_Z. With years 1 to 125 in a column named YearCol and the HE-FM-TPR-003 factors in a column named FactorStd, =StreamAmount*SUMPRODUCT((YearCol<=Horizon)*FactorStd) returns PV_S without the closed form.

    R: stepped_pv <- function(q, n_years, ends, rates) { t <- 1:n_years; r_t <- sapply(t, function(k) rates[which(k <= ends)[1]]); df <- cumprod(1/(1+r_t)); c(A = sum(df), PV = q*sum(df), DF_T = df[n_years]) } Returns a named vector; the wealth transfer is stepped_pv(1000, 100, c(30, 75, 125), c(0.03, 0.0257, 0.0214))["PV"]-stepped_pv(1000, 100, c(30, 75, 125), c(0.035, 0.03, 0.025))["PV"]. Use Inf as the last band end for an open-ended band.

    Python: def stepped_pv(q, n_years, ends, rates): r_t = [next(r for e, r in zip(ends, rates) if k <= e) for k in range(1, n_years+1)]; f = 1.0; df = [(f := f/(1+x)) for x in r_t]; return sum(df), q*sum(df), df[-1] Plain Python 3.8 or later with no imports, returning the sum of factors, the present value and the last year's factor; use float('inf') as the last band end for an open-ended band.

    Test (Thirty-year standard sum equals the Excel PV annuity): With Horizon = 30 and RateNear = 0.035 the closed-form sum in a cell named SumStd equals the annuity factor of HE-FM-DISC-001. The expected result is TRUE. Excel check =ABS(SumStd-PV(RateNear,30,-1))<1E-9

    Test (Reduced schedule gives the larger present value): For a positive amount and a horizon of at least one year, the present value in PVReduced exceeds that in PVStd, because every reduced rate is lower. The expected result is TRUE. FALSE shows the two schedules swapped. Excel check =PVReduced>PVStd

    Common error (Wealth transfer read as the whole effect of discounting): The reduced schedule still discounts at 3.0% and less, since catastrophic risk and the wealth effect remain. For GBP 1,000 a year over 100 years the difference is about GBP 4,176, while the reduced present value of GBP 33,040 is still about a third of the undiscounted GBP 100,000 (computed here for illustration).

    Common error (Health stream on the standard schedule): One QALY a year for 60 years sums to about 25.38 on the STPR schedule against 39.86 on the health schedule (computed here for illustration), so the discounted health gain is understated by more than a third.

    Source: HM Treasury. Discounting, Green Book supplementary guidance. London, HM Treasury, February 2026 (ISBN 978-1-918417-18-0), page last updated 5 February 2026. Chapter 3, paragraphs 3.1 to 3.5 with Tables 3.A and 3.B, and Annex A Tables A.1 to A.3, for the standard, health and reduced schedules and the reading of the difference between the standard and reduced results as the wealth transfer attributable to pure social time preference.

    n_1 = min(T, 30); n_2 = max(min(T, 75) - 30, 0); n_3 = max(T - 75, 0); A_S = (1 - (1 + r_1)^(-n_1)) / r_1 + (1 + r_1)^(-30) * (1 - (1 + r_2)^(-n_2)) / r_2 + (1 + r_1)^(-30) * (1 + r_2)^(-45) * (1 - (1 + r_3)^(-n_3)) / r_3; A_Z = (1 - (1 + z_1)^(-n_1)) / z_1 + (1 + z_1)^(-30) * (1 - (1 + z_2)^(-n_2)) / z_2 + (1 + z_1)^(-30) * (1 + z_2)^(-45) * (1 - (1 + z_3)^(-n_3)) / z_3; PV_S = q * A_S; PV_Z = q * A_Z; W = PV_Z - PV_S

Try this function

Implementations

  • Excel

    Stepped Green Book discount factor from named cells

    With the year in YearT and the three band rates in RateNear, RateMid and RateFar, the cell returns the factor; name it DiscFactorOut for the tests. MIN and MAX count the years that fall in each band, and filling the formula down a column of years gives a factor table like Annex A.

    =(1+RateNear)^(-MIN(YearT,30))*(1+RateMid)^(-MAX(MIN(YearT,75)-30,0))*(1+RateFar)^(-MAX(YearT-75,0))

Assumptions

  • Whole appraisal years counted from year 0 under the stepped schedule

    Year 0 has a factor of 1 and a cost or benefit in year t is multiplied by the factor for that year, as paragraph 1.3 and the Annex A tables of the guidance set out. The bands end at year 125, the last year of Table 3.A. The Green Book main text states 2.50% for year 76 onwards with no end year, so for the standard STPR a longer horizon keeps r_3 beyond year 125, whereas Table 3.B steps the reduced rate down again after year 125, so the formula covers the reduced schedule only to year 125 and the code of HE-CF-TPR-001 covers its later bands.

  • Stepped decline from parameter uncertainty and not from individual impatience

    Paragraph 3.1 attributes the decline after year 30 to uncertainty about the future values of the STPR parameters. The schedule is a fixed social rule for long horizons, while the hyperbolic and quasi-hyperbolic forms of HE-FN-HYPD-001 describe how individuals weigh delays, so one is not evidence for the other.

  • Reduced stepped schedule for horizons beyond 50 years

    Paragraph 3.4 asks for additional sensitivity analysis beyond 50 years with pure time preference excluded. Table 3.B gives 3.00%, 2.57% and 2.14% for the same bands to year 125, so the formula takes these rates. Factors built from the printed rates are 0.0001 above Table A.3 at each listed year after 30, for example 0.2480 against 0.2479 at year 50 (computed here), so the Annex A factors are the values to report.

Worked examples

  • Green Book standard factor for year 31

    Thirty years at 3.5% and one at 3.0% give 0.3459, the value for year 31 in Annex A Table A.1.

    t = 31; r_1 = 0.035; r_2 = 0.03; r_3 = 0.025; DF_t = 0.3459
  • Green Book standard factor for year 60

    Thirty years at 3.5% and thirty at 3.0% give 0.1468, the value for year 60 in Annex A Table A.1.

    t = 60; r_1 = 0.035; r_2 = 0.03; r_3 = 0.025; DF_t = 0.1468
  • Green Book standard factor for year 100 across all three bands

    Thirty years at 3.5%, forty-five at 3.0% and twenty-five at 2.5% give about 0.0508 for year 100 (computed here for illustration; Table A.1 stops at year 60).

    t = 100; r_1 = 0.035; r_2 = 0.03; r_3 = 0.025; DF_t = 0.0508
  • Green Book health factor for year 50

    Thirty years at 1.5% and twenty at 1.286% give 0.4955, the value for year 50 in Annex A Table A.2.

    t = 50; r_1 = 0.015; r_2 = 0.01286; r_3 = 0.01071; DF_t = 0.4955
  • Green Book standard factor for year 20 inside the first band

    Before the first step the later rates have no effect and the factor is 1.035 to the power minus 20, 0.5026, the year-20 value of Table A.1 and the weight the article gives a QALY in year 20 at 3.5%, a limiting case that checks an implementation.

    t = 20; r_1 = 0.035; r_2 = 0.03; r_3 = 0.025; DF_t = 0.5026

Common errors

  • Long-term band rate applied from year 0

    Discounting a year-60 value at 3.0% for all 60 years gives 0.1697 in place of 0.1468 (computed here for illustration), about 16% too high, because the step lowers the rate only for the years after 30.

  • Standard STPR schedule used for health effects in a Green Book appraisal

    A health effect in year 50 then carries a factor of 0.1973 (Table A.1) in place of 0.4955 (Table A.2), about two fifths of the weight the guidance gives it, since paragraph 2.17 applies the health rate in every year.

  • Stepped Treasury schedule used in a NICE reference case

    PMG36 section 4.5.1 sets one rate of 3.5% a year for the reference case, and section 4.5 gives no declining schedule. Stepping down after year 30 puts 0.1468 on a QALY in year 60 against 0.1269 at a constant 3.5% (computed here for illustration), about 16% more weight on late gains.

Sources

  • Treasury declining discount rate regime and its discount factor tables

    HM Treasury. Discounting, Green Book supplementary guidance. London, HM Treasury, February 2026 (ISBN 978-1-918417-18-0), page last updated 5 February 2026. Chapter 3, paragraphs 3.1 and 3.2 and Table 3.A, which set the STPR at 3.5% for years 1 to 30, 3.0% for years 31 to 75 and 2.5% for years 76 to 125 and the health rate at 1.500%, 1.286% and 1.071%; paragraphs 3.3 to 3.5 and Table 3.B for the reduced rates with pure time preference excluded; paragraph 1.3 and Annex A Tables A.1 to A.3, which give the factors by year (0.3459 for year 31 and 0.1468 for year 60 in Table A.1, 0.4955 for year 50 in Table A.2) to be multiplied by the costs and benefits of each year.

    View source →

  • Green Book 2026 summary of the declining social time preference rate

    HM Treasury. The Green Book (2026). London, HM Treasury, updated 5 February 2026. Chapter 6, section on discounting, which states the STPR as 3.50% in real terms for years 1 to 30, 3.00% for years 31 to 75 and 2.50% for year 76 onwards, asks practitioners to multiply each future year's values by its discount factor, and states that health and life effects are discounted at the lower rate of 1.5% and that the health discount rate applies in every year of the appraisal.

    View source →

  • NICE constant reference-case rate set against the Treasury stepped schedule

    National Institute for Health and Care Excellence. NICE technology appraisal and highly specialised technologies guidance, the manual (PMG36). London, NICE, 2022, last updated 13 October 2026. Chapter 4, economic evaluation, section 4.5.1, which states that for the reference case costs and health effects should be discounted at the same rate of 3.5% per year. Section 4.5 gives this one rate and sets out no schedule that changes over the time horizon.

    View source →

Canonical Identity