R/ffp_snw_stimulus_bush_2008.R
ffp_snw_stimulus_checks_bush_add2dfid.Rd
Given dataframe solve for US Economic Recovery Act of 2008 Bush Stimulus Check amounts (tax-rebates) by household type and income array for Nygaard, Sorernsen and Wang (2021) for each household type. Also compute maximum allocation bounds based on tax-liability to consider alternatives to the actual stimulus (tax-rebate) policy.
We have a dataframe of households, where each household is defined by the number of kids in the household, marital status, and also income bin. Note that this is an income bin, not a specific income level. We computes an approximate income-bin (and marital status and kids count) specific stimulus amount by evaluating the stimulus checks function along a fine grid of income levels from the min to the max point of the income-bin, and simply take the average.
We do this first for the actual stimulus that households should receive under the Economic Stimulus Act of 2008. We then adjust parameters for the stimulus function and compute alternative max-stimulus bounds for each income bin.
ffp_snw_stimulus_checks_bush_add2dfid(
df_id,
it_income_n_in_seg = 100,
fl_multiple = 54831,
fl_percheck_dollar = 100,
fl_stimulus_child = 300,
fl_stimulus_adult_min = 300,
fl_stimulus_adult_max = 600,
fl_per_adult_phase_out = 75000,
fl_phase_out_per_dollar_income = 0.05
)
dataframe the dataframe that is generated at the start of the allocation problem, it contains the individual id, marital status, kids count, and a string varaible indicating lower and upper bound for current household type's income bin.
integer the number of points between min and max income bounds for the current income bin at which to evaluate stimulus, and to average.
integer what is 1 unit in dollar in 2008, equal to 54831, median income.
integer we discretize the stimulus problem, how much is each stimulus check in dollars?
float the amount of stimulus per child, note that this is unrelated to the tax-liability issue.
float the amount of minimum stimulus per adult (for lower income households), even if tax liability is below this, so no tax-rebate should be given, still provide this stimulus amount.
float the amount of max stimulus per adult, in another word, the maximum amount of tax-rebate.
float the amount per-adult (household-head only or household-head plus spouse) where phase-out for stimulus/tax-rebate begin going down. 75k under the actual policy for singles, and 150k for married.
for every addition dollar beyond the phaseout point, how much stimulus/tax-rebate to reduce. 0.05 means for every additional dollar of income, stimulus go down by 5 cents.
an array of tax-liabilities for particular kids count and martial status along an array of income levels
data(df_nsw_tiny_chk168_df_id)
df_id <- df_nsw_tiny_chk168_df_id
it_income_n_in_seg <- 100
df_id_checkadded_actual <- ffp_snw_stimulus_checks_bush_add2dfid(df_id, it_income_n_in_seg)
print('df_id_checkadded_actual')
#> [1] "df_id_checkadded_actual"
print(df_id_checkadded_actual)
#> # A tibble: 111 x 11
#> id_i bush_rebate bush_rebate_n_c~ marital kids age_group ymin_group mass
#> <dbl> <dbl> <dbl> <int> <int> <fct> <chr> <dbl>
#> 1 1 398. 4 0 0 (17,64] (0,0.363] 3.17e-2
#> 2 2 600 6 0 0 (17,64] (0.363,0.~ 6.06e-2
#> 3 3 600 6 0 0 (17,64] (0.544,0.~ 9.94e-2
#> 4 4 600 6 0 0 (17,64] (0.725,0.~ 4.37e-2
#> 5 5 600 6 0 0 (17,64] (0.907,1.~ 5.08e-2
#> 6 6 600 6 0 0 (17,64] (1.09,1.2~ 2.18e-2
#> 7 7 548. 5 0 0 (17,64] (1.27,1.4~ 1.91e-2
#> 8 8 143. 1 0 0 (17,64] (1.45,1.6~ 3.07e-2
#> 9 9 0 0 0 0 (17,64] (1.63,1.8~ 9.42e-4
#> 10 10 0 0 0 0 (17,64] (1.81,1.9~ 1.19e-2
#> # ... with 101 more rows, and 3 more variables: hhsize <dbl>,
#> # y_group_min <dbl>, y_group_max <dbl>