{-# LANGUAGE DataKinds #-}
module Data.Tax.ATO.FY.FY2024 (FY, fyProxy, tables) where
import Data.Proxy
import Data.Tax
import Data.Tax.ATO.Common
import qualified Data.Tax.ATO.FY.FY2023 as FY2023
type FY = 2024
fyProxy :: Proxy FY
fyProxy :: Proxy FY
fyProxy = Proxy FY
forall {k} (t :: k). Proxy t
Proxy
help :: (Fractional a, Ord a) => Tax (Money a) (Money a)
help :: forall a. (Fractional a, Ord a) => Tax (Money a) (Money a)
help = [(a, a)] -> Tax (Money a) (Money a)
forall a.
(Fractional a, Ord a) =>
[(a, a)] -> Tax (Money a) (Money a)
thresholds'
[ (a
51550, a
0.01)
, (a
59519, a
0.01)
, (a
63090, a
0.005)
, (a
66876, a
0.005)
, (a
70889, a
0.005)
, (a
75141, a
0.005)
, (a
79650, a
0.005)
, (a
84430, a
0.005)
, (a
89495, a
0.005)
, (a
94866, a
0.005)
, (a
100558, a
0.005)
, (a
106591, a
0.005)
, (a
112986, a
0.005)
, (a
119765, a
0.005)
, (a
126951, a
0.005)
, (a
134569, a
0.005)
, (a
142643, a
0.005)
, (a
151201, a
0.005)
]
medicareLevySurcharge :: (Fractional a, Ord a) => Tax (Money a) (Money a)
medicareLevySurcharge :: forall a. (Fractional a, Ord a) => Tax (Money a) (Money a)
medicareLevySurcharge =
Money a -> a -> Tax (Money a) (Money a)
forall a. (Num a, Ord a) => Money a -> a -> Tax (Money a) (Money a)
threshold (a -> Money a
forall num. num -> Money num
Money a
93000) a
0.01
Tax (Money a) (Money a)
-> Tax (Money a) (Money a) -> Tax (Money a) (Money a)
forall a. Semigroup a => a -> a -> a
<> Money a -> a -> Tax (Money a) (Money a)
forall a. (Num a, Ord a) => Money a -> a -> Tax (Money a) (Money a)
threshold (a -> Money a
forall num. num -> Money num
Money a
108000) a
0.0025
Tax (Money a) (Money a)
-> Tax (Money a) (Money a) -> Tax (Money a) (Money a)
forall a. Semigroup a => a -> a -> a
<> Money a -> a -> Tax (Money a) (Money a)
forall a. (Num a, Ord a) => Money a -> a -> Tax (Money a) (Money a)
threshold (a -> Money a
forall num. num -> Money num
Money a
144000) a
0.0025
tables :: (Ord a, Fractional a) => TaxTables FY a
tables :: forall a. (Ord a, Fractional a) => TaxTables FY a
tables = Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> PrivateHealthInsuranceRebateRates a
-> TaxTables FY a
forall {k} (y :: k) a.
Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> Tax (Money a) (Money a)
-> PrivateHealthInsuranceRebateRates a
-> TaxTables y a
TaxTables
(TaxTables 2023 a -> Tax (Money a) (Money a)
forall {k} (y :: k) a. TaxTables y a -> Tax (Money a) (Money a)
ttIndividualIncomeTax TaxTables 2023 a
forall a. (Ord a, Fractional a) => TaxTables 2023 a
FY2023.tables)
(Money a -> Tax (Money a) (Money a)
forall a.
(Fractional a, Ord a) =>
Money a -> Tax (Money a) (Money a)
medicareLevy (a -> Money a
forall num. num -> Money num
Money a
26000))
Tax (Money a) (Money a)
forall a. (Fractional a, Ord a) => Tax (Money a) (Money a)
medicareLevySurcharge
Tax (Money a) (Money a)
forall a. (Fractional a, Ord a) => Tax (Money a) (Money a)
help
Tax (Money a) (Money a)
forall a. (Fractional a, Ord a) => Tax (Money a) (Money a)
help
Tax (Money a) (Money a)
forall a. (Fractional a, Ord a) => Tax (Money a) (Money a)
lowIncomeTaxOffset2021
(TaxTables 2023 a -> PrivateHealthInsuranceRebateRates a
forall {k} (y :: k) a.
TaxTables y a -> PrivateHealthInsuranceRebateRates a
ttPHIRebateRates TaxTables 2023 a
forall a. (Ord a, Fractional a) => TaxTables 2023 a
FY2023.tables)