tax-ato-2023.2: Tax types and computations for Australia
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Tax.ATO.Common

Description

Common taxes and helpers.

Synopsis

Tax tables

data TaxTables y a Source #

A set of tax tables for a particular financial year

Constructors

TaxTables 

Fields

Classes

class HasIncome a b c where Source #

Types that have an income value.

Methods

income :: Getter (a b) (Money c) Source #

Instances

Instances details
RealFrac a => HasIncome Dividend (a :: Type) a Source #

Attributable income

Instance details

Defined in Data.Tax.ATO

Methods

income :: Getter (Dividend a) (Money a) Source #

Num a => HasIncome ESSStatement (a :: Type) a Source #

Note: does not implement the reduction of taxed up front amounts eligible for reduction.

Instance details

Defined in Data.Tax.ATO

HasIncome GrossAndWithheld (a :: Type) a Source # 
Instance details

Defined in Data.Tax.ATO

HasIncome PaymentSummary (a :: Type) a Source #

Gross income

Instance details

Defined in Data.Tax.ATO

HasIncome TaxAssessment (a :: Type) a Source #

Taxable income

Instance details

Defined in Data.Tax.ATO

RealFrac a => HasIncome (TaxReturnInfo y :: Type -> Type) (a :: Type) a Source #

Taxable income

Instance details

Defined in Data.Tax.ATO

Methods

income :: Getter (TaxReturnInfo y a) (Money a) Source #

(Foldable t, HasIncome x a a, Num a) => HasIncome (t :: TYPE LiftedRep -> Type) (x a :: TYPE LiftedRep) a Source # 
Instance details

Defined in Data.Tax.ATO.Common

Methods

income :: Getter (t (x a)) (Money a) Source #

Common taxes and helpers

medicareLevy :: (Fractional a, Ord a) => Money a -> Tax (Money a) (Money a) Source #

The Medicare levy, incorporating the Medicare levy reduction. The rate is 10% of the income above the given shade-in threshold or 2% of the total income, whichever is less.

medicareLevySurcharge :: (Fractional a, Ord a) => Tax (Money a) (Money a) Source #

Medicare levy surcharge (MLS). Certain exemptions are available.

Known issues: the MLS is levied on taxable income + fringe benefits, but this is not implemented properly yet. The thresholds are affected by family income and number of dependents; this also is not implemented.

lowIncomeTaxOffset :: (Fractional a, Ord a) => Tax (Money a) (Money a) Source #

Low income tax offset (LITO). $445, reduced by 1.5c for every dollar earned over $37,000. The lump amount may change in the future.

lowIncomeTaxOffset2021 :: (Fractional a, Ord a) => Tax (Money a) (Money a) Source #

Low income tax offset, 2020–21 version.

lamito :: (Fractional a, Ord a) => Tax (Money a) (Money a) Source #

Low and middle income tax offset. FY2019, 2020, 2021.

corporateTax :: Fractional a => Tax (Money a) (Money a) Source #

The corporate tax rate of 30%. In the future, different rates may be levied depending on business turnover/income.

Convenience functions

thresholds' :: (Fractional a, Ord a) => [(a, a)] -> Tax (Money a) (Money a) Source #

Convenience wrapper for thresholds. Turns the thresholds into Money

marginal' :: (Fractional a, Ord a) => [(a, a)] -> Tax (Money a) (Money a) Source #

Convenience wrapper for marginal. Turns the margins into Money