Mutate a sample file to reflect particular caps on concessional contributions and applications of Division 293 tax.

apply_super_caps_and_div293(.sample.file,
  colname_concessional = "concessional_contributions",
  colname_div293_tax = "div293_tax",
  colname_new_Taxable_Income = "Taxable_income_for_ECT",
  div293_threshold = 3e+05, cap = 25000, cap2 = 35000,
  age_based_cap = TRUE, cap2_age = 59, ecc = FALSE,
  use_other_contr = FALSE, scale_contr_match_ato = FALSE,
  .lambda = 0, reweight_late_lodgers = FALSE, .mu = 1.05,
  impute_zero_concess_contr = FALSE, .min.Sw.for.SG = 450 * 12,
  .SG_rate = 0.0925, warn_if_colnames_overwritten = TRUE,
  drop_helpers = FALSE, copyDT = TRUE)

Arguments

.sample.file

A data.table containing at least the variables sample_file_1314 from the taxstats package.

colname_concessional

The name for concessional contributions.

colname_div293_tax

The name of the column containing the values of Division 293 tax payable for that taxpayer.

colname_new_Taxable_Income

The name of the column containing the new Taxable Income.

div293_threshold

The Division 293 threshold.

cap

The cap on concessional contributions for all taxpayers if age_based_cap is FALSE, or for those below the age threshold otherwise.

cap2

The cap on concessional contributions for those above the age threshold. No effect if age_based_cap is FALSE.

age_based_cap

Is the cap on concessional contributions age-based?

cap2_age

The age above which cap2 applies.

ecc

(logical) Should an excess concessional contributions charge be calculated? (Not implemented.)

use_other_contr

Make a (poor) assumption that all 'Other contributions' (MCS_Othr_Contr) are concessional contributions. This may be a useful upper bound should such contributions be considered important.

scale_contr_match_ato

(logical) Should concessional contributions be inflated to match aggregates in 2013-14? That is, should concessional contributions by multiplied by grattan:::super_contribution_inflator_1314, which was defined to be: $$\frac{\textrm{Total assessable contributions in SMSF and funds}}{\textrm{Total contributions in 2013-14 sample file}}$$.

.lambda

Scalar weight applied to concessional contributions. \(\lambda = 0\) means no (extra) weight. \(\lambda = 1\) means contributions are inflated by the ratio of aggregates to the sample file's total. For \(R = \textrm{actual} / \textrm{apparent}\) then the contributions are scaled by \(1 + \lambda(R - 1)\).

reweight_late_lodgers

(logical) Should WEIGHT be inflated to account for late lodgers?

.mu

Scalar weight for WEIGHT. (\(w' = \mu w\)) No effect if reweight_late_lodgers is FALSE.

impute_zero_concess_contr

Should zero concessional contributions be imputed using salary?

.min.Sw.for.SG

The minimum salary required for super guarantee to be imputed.

.SG_rate

The super guarantee rate for imputation.

warn_if_colnames_overwritten

(logical) Issue a warning if the construction of helper columns will overwrite existing column names in .sample.file.

drop_helpers

(logical) Should columns used in the calculation be dropped before the sample file is returned?

copyDT

(logical) Should the data table be copy()d? If the action of this data table is being compared, possibly useful.

Value

A data table comprising the original sample file (.sample.file) with extra superannuation policy-relevant variables for the policy specified by the function.