Skip to contents

tempodisco implements many lesser-known discount functions beyond the smaller set of popular functions used by Franck et al., 2015. The full list is as follows:

Name Functional form Notes
exponential (Samuelson, 1937) f(t;k)=ektf(t; k) = e^{-k t}
hyperbolic (Mazur, 1987) f(t;k)=11+ktf(t; k) = \frac{1}{1 + kt}
scaled-exponential (Laibson, 1997) f(t;k,w)=wektf(t; k, w) = w e^{-k t} Also known as quasi-hyperbolic or beta-delta and written as f(t;β,δ)=βeδtf(t; \beta, \delta) = \beta e^{-\delta t}
nonlinear-time-exponential (Ebert & Prelec, 2007) f(t;k,s)=ektsf(t; k, s) = e^{-k t^s} Also known as constant sensitivity
inverse-q-exponential (Green & Myerson, 2004) f(t;k,s)=1(1+kt)sf(t; k, s) = \frac{1}{(1 + k t)^s} Also known as generalized hyperbolic (Loewenstin & Prelec), hyperboloid (Green & Myerson, 2004), or q-exponential (Han & Takahashi, 2012)
nonlinear-time-hyperbolic (Rachlin, 2006) f(t;k,s)=11+ktsf(t; k, s) = \frac{1}{1 + k t^s} Also known as power-function (Rachlin, 2006)
dual-systems-exponential (Ven den Bos & McClure, 2013) f(t;k1,k2,w)=wek1t+(1w)ek2tf(t; k_1, k_2, w) = w e^{-k_1 t} + (1 - w) e^{-k_2 t}
additive-utility (Killeen, 2009) f(t;k,s,a)=(1kVDats)1af(t; k, s, a) = \left( 1 - \frac{k}{V_D^a}t^s\right)^\frac{1}{a} VDV_D is the value of the delayed reward. f(t;k,s,a)=0f(t; k, s, a) = 0 for t>(VDa/k)1/st > \left(V_D^a / k\right)^{1/s}.
power (Harvey, 1986, eq. 2) f(t;k)=1(1+t)kf(t; k) = \frac{1}{(1 + t)^k} In equation 2 of the reference, the discount function is described as 1tk\frac{1}{t^k}, but time begins at t=1t = 1.
arithmetic (Doyle & Chen, 2010) f(t;k)=1ktVDf(t; k) = 1 - \frac{kt}{V_D} VDV_D is the value of the delayed reward. f(t;k)=0f(t; k) = 0 for kt>VDkt > V_D.
fixed-cost (Benhabib, Bisin, & Schotter, 2010) f(t;w)=ektwVDf(t; w) = e^{-kt} - \frac{w}{V_D} VDV_D is the value of the delayed reward. f(t;w)=0f(t; w) = 0 for wVD>ekt\frac{w}{V_D} > e^{-kt}.
absolute-stationarity (Blavatskyy, 2024, eq. 3) f(t;k,s)=exp{ktsts+1}f(t; k, s) = \exp\left\{ -k\frac{ts}{ts + 1}\right\} The original paper uses tt rather than tsts. However, a scale factor appears necessary to account for different time units.
relative-stationarity (Blavatskyy, 2024, eq. 7) f(t;k,s)=(ts+12ts+1)kf(t; k, s) = \left( \frac{ts + 1}{2ts + 1} \right)^k The original paper uses tt rather than tsts. However, a scale factor appears necessary to account for different time units.
constant (Franck et al., 2015) f(t;k)=kf(t; k) = k Null model; participants can be excluded if this model provides the best fit (Franck et al., 2015)
nonlinear-time-power f(t;k)=1(1+ts)kf(t; k) = \frac{1}{(1 + t^s)^k} Experimental extension of the power discount function along the lines of the nonlinear-time-hyperbolic and nonlinear-time-exponential functions.
nonlinear-time-arithmetic f(t;k)=1ktsVDf(t; k) = 1 - \frac{kt^s}{V_D} Experimental extension of the arithmetic discount function along the lines of the nonlinear-time-hyperbolic and nonlinear-time-exponential functions.
scaled-hyperbolic f(t;k,w)=w1+ktf(t; k, w) = \frac{w}{1 + kt} Experimental extension of the hyperbolic discount function along the lines of the scaled-exponential function.

The names of these discount functions can be accessed using get_available_discount_functions():

print(get_available_discount_functions())
#>  [1] "hyperbolic"                 "nonlinear-time-hyperbolic" 
#>  [3] "exponential"                "nonlinear-time-exponential"
#>  [5] "absolute-stationarity"      "relative-stationarity"     
#>  [7] "power"                      "nonlinear-time-power"      
#>  [9] "arithmetic"                 "nonlinear-time-arithmetic" 
#> [11] "inverse-q-exponential"      "scaled-exponential"        
#> [13] "scaled-hyperbolic"          "fixed-cost"                
#> [15] "dual-systems-exponential"   "additive-utility"          
#> [17] "model-free"                 "constant"