Income tax payable
income_tax(income, fy.year = NULL, age = NULL, family_status = "individual", n_dependants = 0L, .dots.ATO = NULL, return.mode = c("numeric", "integer"), allow.forecasts = FALSE, .debug = FALSE)
income | The individual assessable income. |
---|---|
fy.year | The financial year in which the income was earned. Tax years 2000-01 to 2018-19 are supported, as well as the tax year 2019-20, for convenience.
If |
age | The individual's age. Ignored if |
family_status | For Medicare and SAPTO purposes. |
n_dependants | An integer for the number of children of the taxpayer (for the purposes of the Medicare levy). |
.dots.ATO | A data.frame that contains additional information about the individual's circumstances, with columns the same as in the ATO sample files. Age variables in |
return.mode | The mode (numeric or integer) of the returned vector. |
allow.forecasts | should dates beyond 2019-20 be permitted? Currently, not permitted. |
.debug | (logical, default: |
The total personal income tax payable.
The function is inflexible by design.
It is designed to return the correct tax payable in a year, not to model the tax payable
under different tax settings. (Use model_income_tax
for that purpose.)
The function aims to produce the personal income tax payable for the inputs given
in the tax year fy.year
. The function is specified to produce the most accurate
calculation of personal income tax given the variables in the ATO's 2% sample files.
However, many components are absent from these files, while other components could
not be computed reliably.
For the 2018-19 tax year, the function calculates
The tax as specified in Schedule 7 of the Income Tax Rates Act 1986 (Cth).
See medicare_levy
for details.
See lito
for details.
See sapto
. For years preceding the introduction of SAPTO,
the maximum offset is assumed to apply to those above age 65 (since the sample files only provide 5-year
age groups).
See small_business_tax_offset
for details.
The flood levy and the temporary budget repair levy.
Notably, when used with a 2% sample file, the function will not be able to correctly account for different tax rates and offsets among taxpayers with dependants since the sample files (as of 2015-16) do not have this information.
income_tax(50e3, "2013-14")#> [1] 8297## Calculate tax for each lodger in the 2013-14 sample file. ## Essentially, this is the only use-case for `income_tax` if (requireNamespace("taxstats", quietly = TRUE)) { library(data.table) library(taxstats) s1314 <- as.data.table(sample_file_1314) s1314[, tax := income_tax(Taxable_Income, "2013-14", .dots.ATO = s1314)] }#> Ind Gender age_range Occ_code Partner_status Region Lodgment_method #> 1: 134708 0 10 6 0 301 S #> 2: 236790 0 9 2 0 304 A #> 3: 256978 1 8 2 0 306 A #> 4: 238870 0 4 3 1 504 A #> 5: 138195 1 8 2 0 124 A #> --- #> 258770: 229328 1 8 2 1 503 A #> 258771: 57893 1 6 9 1 702 A #> 258772: 128184 0 8 8 1 309 A #> 258773: 142336 1 11 6 0 127 A #> 258774: 46759 1 5 3 0 504 A #> PHI_Ind Sw_amt Alow_ben_amt ETP_txbl_amt Grs_int_amt #> 1: 0 4540 396 0 0 #> 2: 1 58734 0 0 1396 #> 3: 0 39953 0 0 167 #> 4: 1 112494 0 0 0 #> 5: 1 94213 0 0 76 #> --- #> 258770: 1 24491 0 0 1691 #> 258771: 1 47704 0 0 0 #> 258772: 1 46690 601 0 42 #> 258773: 0 5132 0 0 2 #> 258774: 0 49508 0 0 0 #> Aust_govt_pnsn_allw_amt Unfranked_Div_amt Frk_Div_amt #> 1: 0 0 0 #> 2: 0 0 0 #> 3: 0 0 0 #> 4: 0 0 0 #> 5: 0 0 0 #> --- #> 258770: 0 42 151 #> 258771: 0 0 0 #> 258772: 0 0 116 #> 258773: 0 0 0 #> 258774: 0 0 0 #> Dividends_franking_cr_amt Net_rent_amt Gross_rent_amt #> 1: 0 0 0 #> 2: 0 0 0 #> 3: 0 0 0 #> 4: 0 0 0 #> 5: 0 0 0 #> --- #> 258770: 64 0 0 #> 258771: 0 -8945 16744 #> 258772: 50 -784 7997 #> 258773: 0 0 0 #> 258774: 0 -2858 8540 #> Other_rent_ded_amt Rent_int_ded_amt Rent_cap_wks_amt #> 1: 0 0 0 #> 2: 0 0 0 #> 3: 0 0 0 #> 4: 0 0 0 #> 5: 0 0 0 #> --- #> 258770: 0 0 0 #> 258771: 7618 13963 4108 #> 258772: 3742 4019 1020 #> 258773: 0 0 0 #> 258774: 4286 7102 10 #> Net_farm_management_amt Net_PP_BI_amt Net_NPP_BI_amt Total_PP_BI_amt #> 1: 0 0 0 0 #> 2: 0 0 0 0 #> 3: 0 0 0 0 #> 4: 0 0 0 0 #> 5: 0 0 0 0 #> --- #> 258770: 0 0 0 0 #> 258771: 0 0 0 0 #> 258772: 0 0 0 0 #> 258773: 0 0 0 0 #> 258774: 0 0 0 0 #> Total_NPP_BI_amt Total_PP_BE_amt Total_NPP_BE_amt Net_CG_amt #> 1: 0 0 0 0 #> 2: 0 0 0 0 #> 3: 0 0 0 0 #> 4: 0 0 0 0 #> 5: 0 0 0 0 #> --- #> 258770: 0 0 0 323 #> 258771: 0 0 0 0 #> 258772: 0 0 0 0 #> 258773: 0 0 0 0 #> 258774: 0 0 0 0 #> Tot_CY_CG_amt Net_PT_PP_dsn Net_PT_NPP_dsn Taxed_othr_pnsn_amt #> 1: 0 0 0 0 #> 2: 0 0 72240 0 #> 3: 0 0 0 0 #> 4: 0 0 0 0 #> 5: 0 0 0 0 #> --- #> 258770: 597 0 4184 0 #> 258771: 0 0 0 0 #> 258772: 0 0 0 0 #> 258773: 0 0 0 0 #> 258774: 0 0 0 0 #> Untaxed_othr_pnsn_amt Other_foreign_inc_amt Other_inc_amt Tot_inc_amt #> 1: 0 0 0 4936 #> 2: 0 0 336 132706 #> 3: 0 0 0 40120 #> 4: 0 0 0 112494 #> 5: 0 0 0 94289 #> --- #> 258770: 0 79 0 31025 #> 258771: 0 0 0 38759 #> 258772: 0 0 0 46715 #> 258773: 0 0 0 5134 #> 258774: 0 0 0 46650 #> WRE_car_amt WRE_trvl_amt WRE_uniform_amt WRE_self_amt WRE_other_amt #> 1: 0 0 136 0 0 #> 2: 0 0 0 5620 628 #> 3: 0 0 228 0 104 #> 4: 3530 0 430 0 273 #> 5: 2411 3065 864 0 1746 #> --- #> 258770: 701 0 138 0 3467 #> 258771: 0 0 135 0 1278 #> 258772: 0 0 363 0 651 #> 258773: 0 0 0 0 0 #> 258774: 0 0 282 0 0 #> Div_Ded_amt Intrst_Ded_amt Gift_amt Non_emp_spr_amt #> 1: 0 0 0 0 #> 2: 0 0 0 0 #> 3: 0 0 46 0 #> 4: 0 0 0 0 #> 5: 0 0 185 0 #> --- #> 258770: 0 0 716 0 #> 258771: 0 0 0 0 #> 258772: 0 0 16 0 #> 258773: 0 0 0 0 #> 258774: 0 0 0 0 #> Cost_tax_affairs_amt Other_Ded_amt Tot_ded_amt PP_loss_claimed #> 1: 0 0 136 0 #> 2: 336 0 6584 0 #> 3: 0 0 378 0 #> 4: 138 0 4371 0 #> 5: 61 0 8332 0 #> --- #> 258770: 383 1158 6563 0 #> 258771: 0 291 1704 0 #> 258772: 241 420 1691 0 #> 258773: 0 0 0 0 #> 258774: 0 0 282 0 #> NPP_loss_claimed Rep_frng_ben_amt Med_Exp_TO_amt #> 1: 0 0 0 #> 2: 0 14870 0 #> 3: 0 0 0 #> 4: 0 0 0 #> 5: 0 0 0 #> --- #> 258770: 0 0 0 #> 258771: 0 0 0 #> 258772: 0 0 0 #> 258773: 0 0 0 #> 258774: 0 0 0 #> Asbl_forgn_source_incm_amt Spouse_adjusted_taxable_inc #> 1: 0 0 #> 2: 0 0 #> 3: 0 0 #> 4: 0 19914 #> 5: 0 0 #> --- #> 258770: 79 178171 #> 258771: 0 144777 #> 258772: 0 24200 #> 258773: 0 0 #> 258774: 0 0 #> Net_fincl_invstmt_lss_amt Rptbl_Empr_spr_cont_amt Cr_PAYG_ITI_amt #> 1: 0 0 0 #> 2: 0 3426 44983 #> 3: 0 0 0 #> 4: 0 0 0 #> 5: 0 0 0 #> --- #> 258770: 0 3792 0 #> 258771: 0 0 0 #> 258772: 0 0 0 #> 258773: 0 0 0 #> 258774: 0 0 0 #> TFN_amts_wheld_gr_intst_amt TFN_amts_wheld_divs_amt #> 1: 0 0 #> 2: 496 0 #> 3: 0 0 #> 4: 0 0 #> 5: 0 0 #> --- #> 258770: 0 0 #> 258771: 0 0 #> 258772: 0 0 #> 258773: 0 0 #> 258774: 0 0 #> Hrs_to_prepare_BPI_cnt Taxable_Income Help_debt MCS_Emplr_Contr #> 1: 0 4800 0 209 #> 2: 0 126122 0 10806 #> 3: 0 39742 0 3646 #> 4: 0 108123 0 7100 #> 5: 0 85957 0 8715 #> --- #> 258770: 0 24462 0 2618 #> 258771: 0 37055 0 3513 #> 258772: 0 45024 0 4257 #> 258773: 0 5134 0 0 #> 258774: 0 46368 5471 4689 #> MCS_Prsnl_Contr MCS_Othr_Contr MCS_Ttl_Acnt_Bal tax #> 1: 0 0 143 0.000 #> 2: 0 0 14911 36503.970 #> 3: 0 0 17411 4655.410 #> 4: 0 0 36183 29574.355 #> 5: 0 0 85751 21040.445 #> --- #> 258770: 4892 626 86519 1111.710 #> 258771: 0 0 80571 3701.525 #> 258772: 0 0 46460 6530.520 #> 258773: 0 0 0 0.000 #> 258774: 0 0 16542 7007.640