grattan (version 1.7.1.2)

income_tax: Income tax payable

Description

Income tax payable

Usage

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

Run this code
# NOT RUN {
income_tax(50e3, "2013-14")

## 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)]
}

# }

Run the code above in your browser using DataCamp Workspace