DrCr/libdrcr/plugins/austax/tax_tables.luau

160 lines
4.7 KiB
Plaintext

--!strict
-- DrCr: Web-based double-entry bookkeeping framework
-- Copyright (C) 2022-2025 Lee Yingtong Li (RunasSudo)
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU Affero General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU Affero General Public License for more details.
--
-- You should have received a copy of the GNU Affero General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
local tax_tables = {}
-- Base income tax
-- https://www.ato.gov.au/rates/individual-income-tax-rates/
-- https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/cth/consol_act/itra1986174/sch7.html
-- https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/cth/consol_act/itra1986174/s3.html (tax-free threshold)
-- Maps each financial year to list of (upper limit (INclusive), flat amount, marginal rate)
tax_tables.base_tax = {
[2025] = {
{18200, 0, 0},
{45000, 0, 0.16},
{135000, 4288, 0.30},
{190000, 31288, 0.37},
{math.huge, 51638, 0.45}
},
[2024] = {
{18200, 0, 0},
{45000, 0, 0.19},
{120000, 5092, 0.325},
{180000, 29467, 0.37},
{math.huge, 51667, 0.45}
},
[2023] = {
{18200, 0, 0},
{45000, 0, 0.19},
{120000, 5092, 0.325},
{180000, 29467, 0.37},
{math.huge, 51667, 0.45}
}
}
-- FBT type 1 gross-up factor
-- https://www.ato.gov.au/rates/fbt/#GrossupratesforFBT
-- https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/cth/consol_act/fbtaa1986312/s5b.html
tax_tables.fbt_grossup = 2.0802
-- Medicare levy thresholds
-- https://www.ato.gov.au/Individuals/Medicare-and-private-health-insurance/Medicare-levy/Medicare-levy-reduction/Medicare-levy-reduction-for-low-income-earners/
-- https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/cth/consol_act/mla1986131/s3.html
-- Maps each financial year to list of (lower threshold, upper threshold)
tax_tables.medicare_levy_threshold = {
[2025] = {27222, 34027},
[2024] = {26000, 32500},
[2023] = {24276, 30345},
[2022] = {23365, 29207}
}
-- Medicare levy surcharge rates (singles)
-- https://www.ato.gov.au/individuals-and-families/medicare-and-private-health-insurance/medicare-levy-surcharge/medicare-levy-surcharge-income-thresholds-and-rates
-- https://www.austlii.edu.au/cgi-bin/viewdb/au/legis/cth/consol_act/mla1986131/s8b.html
-- https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/cth/consol_act/phia2007248/s22.35.html
-- https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/cth/consol_act/phia2007248/s22.45.html
-- Maps each financial year to list of (upper limit (INclusive), MLS rate)
-- FIXME: Only supports singles
tax_tables.medicare_levy_surcharge_single = {
[2025] = {
{97000, 0},
{113000, 0.01},
{151000, 0.0125},
{math.huge, 0.015}
},
[2024] = {
{93000, 0},
{108000, 0.01},
{144000, 0.0125},
{math.huge, 0.015}
}
}
-- Study and training loan (HELP, etc.) repayment thresholds and rates
-- https://www.ato.gov.au/Rates/HELP,-TSL-and-SFSS-repayment-thresholds-and-rates/
-- https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/cth/consol_act/hesa2003271/s154.20.html
-- https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/cth/consol_act/hesa2003271/s154.25.html
-- https://www.austlii.edu.au/cgi-bin/viewdoc/au/legis/cth/consol_act/hesa2003271/s154.30.html
-- Maps each financial year to list of (upper limit (EXclusive), repayment rate)
tax_tables.study_loan_repayment_rates = {
[2025] = {
{54435, 0},
{62851, 0.01},
{66621, 0.02},
{70619, 0.025},
{74856, 0.03},
{79347, 0.035},
{84108, 0.04},
{89155, 0.045},
{94504, 0.05},
{100175, 0.055},
{106186, 0.06},
{112557, 0.065},
{119310, 0.07},
{126468, 0.075},
{134057, 0.08},
{142101, 0.085},
{150627, 0.09},
{159664, 0.095},
{math.huge, 0.1}
},
[2024] = {
{51550, 0},
{59519, 0.01},
{63090, 0.02},
{66876, 0.025},
{70889, 0.03},
{75141, 0.035},
{79650, 0.04},
{84430, 0.045},
{89495, 0.05},
{94866, 0.055},
{100558, 0.06},
{106591, 0.065},
{112986, 0.07},
{119765, 0.075},
{126951, 0.08},
{134569, 0.085},
{142643, 0.09},
{151201, 0.095},
{math.huge, 0.1}
},
[2023] = {
{48361, 0},
{55837, 0.01},
{59187, 0.02},
{62739, 0.025},
{66503, 0.03},
{70493, 0.035},
{74723, 0.04},
{79207, 0.045},
{83959, 0.05},
{88997, 0.055},
{94337, 0.06},
{99997, 0.065},
{105997, 0.07},
{112356, 0.075},
{119098, 0.08},
{126244, 0.085},
{133819, 0.09},
{141848, 0.095},
{math.huge, 0.1}
}
}
return tax_tables