Changelog for tax-ato-2025.1
Version 2025.1
Features and enhancements
-
Overhauled payment summaries. More comprehensive data types and optics are provided in module
Data.Tax.ATO.PaymentSummary.The old
PaymentSummaryconstructor persists as a (deprecated) pattern synonym, for backwards compatibility. It will be removed in a future release. -
Implemented reportable fringe benefits. . Use the
fringeBenefitsEmployerNotExemptorfringeBenefitsEmployerExemptconstructors, along with thereportableFringeBenefitslens to add it to the payment summary. The amount is properly included in the surcharge and student loan repayment income calculations. -
Implemented allowances. A list of allowances can be added to a payment summary via the
allowanceslens. Construct allowance values withallowance :: String -> Money a -> Allowance a. -
Implemented non-super lump sum A, B, D and E payments.
-
Implemented additional payment summary types:
- Foreign Employment
- Business and personal services income
- Withholding where ABN not quoted
-
New module
Data.Tax.ATO.Depreciationprovides types and functions for calculating decline in value (for deductions). Use theDepreciatingAssetdata type to define depreciating assets, and thedeclineInValuefunction for calculating the decline in value in a given financial year. -
Added the "cents-per-kilometre" method for car expense deductions. Usage:
applyCentsPerKilometreMethod @FY kms. (#13) -
Added home office expense deduction methods (#7). Usage
applyFixedRateMethod @FY hours applyShortcutMethod @FY hours applyFixedRateMethodPre2023 @FY hours -
Implement Medicare levy low income family thresholds, including increase based on number of dependents. Senior and pensioners individual and family thresholds remain unimplemented.
-
CGT assessment types were overhauled and now contain more information about total capital gain and applied / unapplied losses. This is step toward a more complete CGT implementation. Remaining gaps include foreign withholding credits and separate treatment of collectables.
-
Multiple ESS statements can now be added to a tax return. Also, the
essEmployeeDetailsfield has been added, andnewESSStatementwas updated to take aPayerDetails. This is a breaking change. (#16) -
Added
division293Incomewhich calculates the income component of Division 293 tax calculations. Some elements are not included because the relevant feature is not yet implemented (e.g. rental losses or FHSS releases). (#12) -
Added
paygInstalmentIncome, which calculates the PAYG instalment income. Some elements are not included because the relevant features are not yet implement (e.g. rent, partnership and trust income, PSI). -
Added the
Data.Tax.ATO.ABNandData.Tax.ATO.TFNmodules, which have more representative data types, conversion functions, and proper validation.IsStringinstances are provided for compatibility with existing code. -
TaxReturnInfopretty printing now includes more detailed ESS and CGT data, to help with preparation of tax returns. -
TaxAssessmentpretty printing now separately reports Medicare levy, Medicare levy surcharge, and the various non-refundable and refundable tax offsets. The formatting closely resembles the ATO notice of assessment layout. -
Add
FY2025module. All rates and thresholds are up to date. -
Added some new helper functions to the
Data.Tax.ATO.FYmodule:fromProxy :: (FinancialYear y) => Proxy y -> YeardaysInYear :: Year -> IntegerdaysInYearFromProxy :: FinancialYear y => Proxy y -> Integer
Bug fixes
-
Non-refundable offsets now cannot reduce liability below $0, and the order of application of the various liabilities, offsets and credits has been fixed.
-
Employee share scheme TFN amounts withheld are now included in assessment calculations (#8).
-
Fix FY2024 private health insurance rebate tier thresholds.
Version 2024.1
-
The minimum supported version of GHC is now 9.2, due to a dependency on more recent versions of the time library.
-
Update the
Dividendtype to use store gross payment amount and tax withheld, rather than net amount, franking portion and (other) tax withheld. Add new helper functions for construction:dividendFromGrosstakes gross amount and tax withhelddividendFromNettakes net amount and tax withhelddividendFromNetFrankedtakes net amount, franked proportion and applicable corporate tax rate for working out the franking credit.dividendFromNetFranked30is a shortcut that uses the standard corporate tax rate of 30%.
-
Change the type of
dividendDatefield fromStringtoData.Time.Day. -
Rename the
HasIncomeclass toHasTaxableIncome, and its member functionincometotaxableIncome. -
Add functions for getting the
Dayrange of a financial year, and a function for getting the financial year of a given day. -
Move the
Data.Tax.ATO.Daysmodule toData.Tax.ATO.FYand rename theDaysInYeartype synonym toFinancialYear, to reflect the additional behaviour. -
Each
FY.<YYYY>module now exports anFYtype synonym for its type-levelNatrepresenting the financial year, and thefyProxy :: Proxy FYvalue. -
Add
Functorinstance forCGTEvent. -
Add
FY2024module. -
Add
Data.Tax.ATO.Prettymodule, which provides pretty printers forTaxReturnInfo,TaxAssessment, and other data types.
Version 2023.2
-
Add support for PAYG Instalments, which are specified in aggregate as a refundable tax offset via the
paygInstalmentsfield. -
Add the
Deductionstype, which expresses the various deduction types, as well as the (aggregate) amount of deductions related to foreign income. -
Implement the Foreign Income Tax Offset Limit. The limit will be calculated and the
foreignTaxOffsetfield in theTaxReturnInfowill be clamped to it.
Older versions
See Git commit history