nc_revenue: Calculate revenue for annual vs lifetime scenarios

Description Usage Arguments Functions See Also Examples

Description

Calculate revenue for annual vs lifetime scenarios

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
nc_annual_stream(retain_all, prices, wsfr_amount = NULL,
  min_amount = NULL, senior_price = NULL, senior_age = 65,
  age_cutoff = 80, youth_ages = 0:15)

nc_annual(retain_all, prices, wsfr_amount = NULL, min_amount = NULL,
  senior_price = NULL, senior_age = 65, age_cutoff = 80,
  youth_ages = 0:15)

nc_lifetime(prices, return_life, inflation, wsfr_amount = NULL,
  min_amount = NULL, perpetuity = TRUE, youth_ages = 0:15,
  age_cutoff = 80, fund_years = 0:50)

nc_lifetime_stream(prices, return_life, inflation, wsfr_amount = NULL,
  min_amount = NULL, fund_years = 0:500, youth_ages = 0:15,
  age_cutoff = 80)

Arguments

retain_all

data frame of predicted years by age like that produced by nc_retain_all

prices

data frame of lifetime prices by age with at least 2 variables: current_age and price_lifetime

wsfr_amount

numeric estimated amount for aid dollars (use SFRF for fishing, WRF for hunting)

min_amount

numeric the minimum expenditure that will count for a certified hunter/angler (use 2 for hunt/fish and 4 for combo)

senior_price

numeric price for a senior lifetime license

senior_age

numeric age when a participant will be expected to buy a cheap lifetime license

age_cutoff

numeric final age that can be counted for lifetime license-based WSFR dollars

youth_ages

if not NULL, assumes for youths that the fund is able to compound until adulthood (when the agency will begin drawing revenue). See nc_price_lifetime_youth for details.

return_life

percentage return from lifetime fund

inflation

inflation rate for depreciation of lifetime fund

perpetuity

if TRUE, use a perpetuity calculation (https://en.wikipedia.org/wiki/Perpetuity) instead of present_value

fund_years

range of years to cast forward for stream-based lifetime fund valuation

Functions

See Also

Other wrapper functions for NC results: nc_break_even_yrs, nc_break_even, nc_price_lifetime_youth, nc_retain_youth, nc_retain

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
library(dplyr)
library(ggplot2)

data(retain_all)
data(retain)

# parameters
senior_price <- 15 # lifetime license price at age 65
wsfr_amount <- 16.65 # WSFR estimated aid amount per sportsman
min_amount <- 4 # WSFR minimum revenue for certified sportsman calculations
return_life <- 0.05 # annual return to lifetime fund
inflation <- 0.02 # inflation rate for fund depreciation
prices <- tibble(
    current_age = 0:63,
    price_lifetime = rep(250, 64),
    price_annual = rep(36, 64)
)

# total revenue
annual <- nc_annual(retain_all, prices, wsfr_amount, min_amount, senior_price)
ggplot(annual, aes(current_age, revenue_annual, fill = stream)) + geom_col()

lifetime <- nc_lifetime(prices, return_life, inflation, wsfr_amount, min_amount)
ggplot(lifetime, aes(current_age, revenue_lifetime, fill = stream)) + geom_col()

# revenue streams
nc_annual_stream(retain_all, prices, wsfr_amount, min_amount, senior_price) %>%
    filter(age_year >= 16)
nc_lifetime_stream(prices, return_life, inflation, wsfr_amount, min_amount)

# break-even
x <- nc_break_even(retain_all, prices, return_life, inflation, wsfr_amount,
                   min_amount, senior_price)
ggplot(x, aes(current_age, break_even)) + geom_line()

# years to break-even (using revenue stream calculations)
x <- nc_break_even_yrs(retain_all, prices, return_life, inflation, wsfr_amount,
                       min_amount, senior_price)
ggplot(x, aes(current_age, yrs_to_break_even)) + geom_col()

southwick-associates/lifetime documentation built on Feb. 24, 2020, 9:33 a.m.