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)

Arguments

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 fy.year is not given, the current financial year is used by default.

age

The individual's age. Ignored if .dots.ATO is provided (and contains an age variable such as age_range or Birth_year).

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 .dots.ATO take precedence over age and providing both is a warning.

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: FALSE) If TRUE, returns a data.table containing the components of income tax calculated. (This argument and its result is liable to change in future versions, possibly without notice.)

Value

The total personal income tax payable.

Details

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

tax on ordinary taxable income

The tax as specified in Schedule 7 of the Income Tax Rates Act 1986 (Cth).

Medicare levy

See medicare_levy for details.

LITO

See lito for details.

SAPTO

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).

SBTO

See small_business_tax_offset for details.

Historical levies

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.

Examples

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