Skip to contents

This function performs a cost-benefit analysis. It is assumed that the benefit is caused by the positive health impacts of a policy intervention, which generates some costs.

Usage

cba(
  output_attribute = NULL,
  impact_benefit = NULL,
  valuation,
  cost,
  discount_rate_benefit = NULL,
  discount_rate_cost = NULL,
  inflation_rate = NULL,
  real_growth_rate = NULL,
  discount_shape = "exponential",
  n_years_benefit = 1,
  n_years_cost = 0
)

Arguments

output_attribute

List produced by healthiar::attribute_health(), healthiar::attribute_lifetable(), healthiar::compare() or healthiar::daly() as results. The YLL and YLD in the output of healthiar::daly() are monetized separately and then summed. Thus, YLL from the life table are discounted year by year, while n_years is used for the YLD.

impact_benefit

Numeric value referring to the positive health impact as result of a reduction of harmful exposure.

valuation

Numeric value referring to unit value of a health impact. If output_attribute is entered, a numeric vector parallel to the arguments of the attribute function can be entered instead (e.g. one valuation per exposure-outcome pair) to monetize all of them in one single call. The values must be the same within each geographic unit and dimension entered in main_results_by.

cost

Numeric value referring to the investment cost to achieve the reduction of exposure.

discount_rate_benefit, discount_rate_cost

Numeric value referring to the the discount rate used in the benefit and the cost side (respectively). Their values determine the approach of cost-benefit analysis: direct approach (if the same discount_rate is used for cost and benefit) and indirect approach (different discount rates).

inflation_rate

Numeric value between 0 and 1 referring to the annual inflation (increase of prices). This value is used to adjust monetization for inflation (converting nominal into real values by appyling a deflator). Alternatively, a numeric vector of year-specific rates can be entered (at least as many values as years to be considered, the first value referring to the first year after the present), assuming then that inflation varies over time instead of being constant. If this adjustment for inflation is not needed leave this argument empty (default value = NULL).

real_growth_rate

Numeric value between 0 and 1 referring to the annual real-term appreciation in the societal value of health (e.g., income elasticity). This adjusts the valuation upward to reflect rising wealth, independent of general price inflation. If output_attribute contains more than one assessment (several geographic units or dimensions entered in main_results_by), a numeric vector parallel to the arguments of the attribute function can be entered instead (e.g. one rate per country), constant over the years. Otherwise, as in inflation_rate, a numeric vector of year-specific rates can be entered instead of one single value.

discount_shape

String referring to the assumed equation for the discount factor. By default: "exponential". Otherwise: "hyperbolic_harvey_1986" or "hyperbolic_mazur_1987". If output_attribute is entered, a character vector parallel to the arguments of the attribute function can be entered instead (e.g. one discount shape per exposure-outcome pair).

n_years_benefit, n_years_cost

Numeric value referring to number of years in the future to be considered in the benefit and cost side (respectively). Years for discounting and/or inflation. Be aware that the year 0 (without discounting/inflation, i.e. the present) is not be counted here. If a vector is entered in the argument impact, n_years does not need to be entered (length of impact = n_years + 1)

Value

This function returns a list containing:

1) cba_main (tibble) containing the main CBA results;

  • net_benefit (numeric column) containing the difference between benefit and cost (i.e. benefit - cost)

  • benefit (numeric column) containing discounted benefit (i.e. monetized attributable health impact)

  • cost (numeric column) containing discounted cost

  • And many more

2) cba_detailed (list) containing detailed (and interim) results.

  • benefit (list)

  • cost (tibble)

If the argument output_attribute was specified, then the two results elements are added to the existing output.

Details

Methodology

This function provides as output three types of cost-benefit indicators (Boardman et al. 2018) :

  • net benefit

  • cost-benefit ratio

  • return of investment

Detailed information about the methodology (including equations) is available in the package vignette. More specifically, see chapters:

References

Boardman AE, Greenberg DH, Vining AR, Weimer DL (2018). Cost-Benefit Analysis: Concepts and Practice, 5th edition. Cambridge University Press, Cambridge, UK. ISBN 978-1108401296.

See also

Author

Alberto Castro & Axel Luyten

Examples

# Goal: performs a cost-benefit analysis using an existing output
# of a attribute_... function

output_attribute <- attribute_health(
  erf_shape = "log_linear",
  rr_central = 1.369,
  rr_increment = 10,
  exp_central = 8.85,
  cutoff_central = 5,
  bhd_central = 30747
)

results <- cba(
  output_attribute = output_attribute,
  valuation = 50000,
  cost = 100000000,
  discount_shape = "exponential",
  discount_rate_benefit = 0.03,
  discount_rate_cost = 0.03,
  n_years_benefit = 5,
  n_years_cost = 5
)

results$cba_main |>
  dplyr::select(benefit, cost, net_benefit)
#> # A tibble: 1 × 3
#>      benefit      cost net_benefit
#>        <dbl>     <dbl>       <dbl>
#> 1 151041153. 86260878.   64780274.