Aussie Tax Helper

Support the Project

GitHub Repository

If you find this tool useful, please consider starring the project on GitHub! It helps a lot.

⭐ Star on GitHub

Dashboard

Welcome! This tool helps you estimate your tax outcome for the financial year.

Est. Taxable Income

$0.00

Est. Total Deductions

$0.00

Est. Tax Outcome

Calculating...

Use the navigation above to manage your income, expenses, and work-from-home details.

Remember to save your data regularly by exporting it, as all information is stored locally in your browser.

Income & Taxpayer Details

Taxpayer Details

Found on your income statement. Used for income tests.

Private Health Insurance

Enter details from your private health insurance statement to calculate your tax offset.

PAYG Income Statement
Other Income

Income Summary

Source Gross Amount Tax Withheld Actions
No income added yet.

Total Assessable Income: $0.00

Total Tax Withheld: $0.00

General Work-Related Expenses

Add New Expense

Logged Expenses

Description Date Cost Work % Method Deductible (This FY) Claim Schedule Actions
No general expenses added yet.

Total General Deductions: $0.00

Work-From-Home (WFH) Expenses

Choose your WFH calculation method:

Current Method: Not Selected

Log WFH Hours (Required for Fixed Rate)

CSV format: Day,Duration,Description (e.g., 10-06-2025,02:30,Work). The 'Time' column is treated as a duration in HH:MM format and summed for each day.

Total WFH Hours Logged: 0.00

Logged Hours Diary:

  • No hours logged yet.

Total WFH Deduction Claimed: $0.00

Tax Estimation Summary ()

Total Assessable Income: $0.00
Total Deductions: $0.00
- General Deductions: $0.00
- WFH Deductions: $0.00
- Super Deductions: $0.00
Taxable Income: $0.00
Gross Tax on Income: $0.00
Medicare Levy: $0.00
Medicare Levy Surcharge: $0.00
Total Tax Offsets: $0.00
- LITO: $0.00
- Franking Credits: $0.00
- Private Health Insurance: $0.00
Net Tax Payable: $0.00
Tax Already Withheld (from PAYG): $0.00
Estimated Tax Outcome: $0.00 (Refund)

Changelog

Version 1.5.4

  • Fixed: Removed debug console.log statements from WFH asset removal flow.
  • Fixed: Date validation in depreciation calculations now rejects null, undefined, and malformed strings, preventing silent NaN deductions.
  • Fixed: Depreciation schedule returns "Invalid date" (rather than blank) for assets with a missing or malformed purchase date.
  • Fixed: Numeric form inputs (cost, work %, effective life) are clamped server-side — negative values can no longer bypass browser min attributes.
  • Fixed: WFH hours CSV import rejects dates outside 2000–2100 to prevent absurd date entries.
  • Fixed: Manually logging WFH hours on an already-logged date now accumulates minutes on the existing entry rather than creating a duplicate row.
  • Improved: JSON import error messages now distinguish parse errors from structural validation failures and include actionable guidance.
  • Improved: localStorage quota exceeded is now detected and reported with a clear "export and clear old years" prompt.
  • Improved: StorageManager notification callback is now configurable via setNotifyCallback(fn), decoupling storage from UI for testability.
  • Added: 202-test Jest suite (up from 190) — new suites for multi-property WFH, date validation, and invalid-date schedule handling.

Version 1.5.3

  • Added: Multi-property support in WFH Actual Cost Method — add a separate period for each address when you move mid-year, each with its own floor area and running expenses. Totals are summed automatically.
  • Improved: Depreciation schedule column now shows financial year labels (e.g. 2024-25, 2025-26) instead of Y1/Y2, bolds the current year's claim, and shows a pro-rata note on partial-year entries (e.g. "330/365 days · 100% DV/yr") explaining why the first year is less.
  • Improved: Depreciation schedule now shows the residual balance year for assets with effectiveLife=1 purchased mid-year, so the carry-forward amount is visible.
  • Added: 190-test Jest suite (up from 187) with additional schedule label and highlight tests.

Version 1.5.2

  • Fixed: Critical — Diminishing value depreciation carry-forward (year 2+) was overclaiming significantly for assets purchased mid-year. The prior-year opening value now correctly pro-rates the acquisition year before rolling forward, matching ATO methodology.
  • Fixed: Diminishing value for effectiveLife=1 assets was claiming 200% in Y1 (e.g. a $435 GPU showed $784 deduction). Deduction is now correctly capped at 100% of the written-down value.
  • Added: 187-test Jest suite with carry-forward regression tests covering real-world asset scenarios.

Version 1.5.1

  • Fixed: Critical — Medicare Levy family thresholds corrected to legislated 2024-25/2025-26 values ($45,907 lower / $57,383 upper / $4,216 child adjustment) per Treasury Laws Amendment (More Cost of Living Relief) Act 2025. Families with 2 dependent children on ~$50k income were incorrectly charged ~$154 in levy.
  • Fixed: PHI rebate period keys were hardcoded to 2024-25 strings, returning wrong rates for 2025-26. Keys are now resolved dynamically, making the calculation year-agnostic.
  • Fixed: 2025-26 PHI rebate rates updated to confirmed values per Dept of Health PHI Circulars 21/25 and 12/26.
  • Fixed: 2025-26 MLS tier caps corrected — single Tier 1 ($117k→$118k), Tier 2 ($155k→$158k); family Tier 1 ($234k→$236k), Tier 2 ($310k→$316k).
  • Added: 183-test Jest unit test suite covering all calculation logic with >99% statement coverage and CI integration via GitHub Actions.

Version 1.5.0

  • Added: Multi-year support with a year selector dropdown in the header. Users can switch between 2024-2025 and 2025-2026 (and future years) with independent data storage for each year.
  • Added: Automatic year detection on startup: saved preference → most recent year with data → latest available year.
  • Added: 2025-2026 tax configuration including updated MLS thresholds ($101,000 for singles, $202,000 for families).
  • Added: Dynamic PHI period labels that update automatically based on the selected financial year.
  • Refactored: constants.js restructured with year-keyed TAX_CONFIG object for easier maintenance. Added loadConstantsForYear() for dynamic constant loading.
  • Refactored: storage.js with dynamic storage key generation and year detection functions (getYearsWithData(), detectDefaultYear(), saveActiveYearPreference()).
  • Refactored: app.js deferred data loading to init() phase. Added year change event listener.
  • Refactored: ui.js added populateYearSelector(), updateFinancialYearDisplays(), and minutesToTimeString() functions.
  • Improved: Each financial year maintains completely independent data. Switching years preserves all data for each year.
  • Improved: JSON imports now automatically switch to the year specified in the imported file. Export filenames include the current financial year.
  • Improved: Clear data operation only affects the active financial year, preserving data in other years.
  • Backward Compatible: Storage keys preserved (aussieTaxHelperData-2025 for 2024-25). All data migrations continue to work.

Version 1.4.1

  • Refactored: Centralized the depreciation schedule generation logic into a single reusable function to eliminate code duplication and improve maintainability.
  • Fixed: Corrected a critical bug where the Medicare Levy for families was being calculated using the incorrect singles threshold. The calculation now accurately reflects family and dependent children adjustments.
  • Improved: The Work-From-Home (WFH) fixed rate displayed in the UI is now dynamically populated from the central constants file, ensuring consistency and easier maintenance.
  • Added: Updated Private Health Insurance (PHI) calculations to support the two separate rebate rate periods for the 2024-2025 financial year.
  • Added: The UI now includes separate input fields for PHI premiums paid during the July-March and April-June periods.
  • Improved: Enhanced data migration to ensure seamless backward compatibility for users upgrading from previous versions.
  • Fixed: Resolved a critical JavaScript error that occurred on page load due to an incorrect variable reference.
  • Fixed: Corrected a bug that prevented the new dual-period PHI premium data from being included in CSV exports.

Version 1.4.0

  • A special thanks to Anachronism59 for your detailed feedback and persistence in identifying the bugs. Your keen eye was crucial in making this version more robust and accurate.
  • Added: Edit functionality for PAYG and general expense entries.
  • Added: WFH Hours CSV Import.
  • Added: now support partial medicare exempt days
  • Improved: WFH hours now calculated with higher accuracy and displayed in HH:MM format.
  • Fixed: MLS calculation now correctly includes personal super contributions.
  • Fixed: Critical bug in Diminishing Value depreciation for 1-year assets.

Version 1.3.0

  • Added: Private Health Insurance (PHI) tax offset calculation.
  • Added: New expense categories: "Gifts & Donations," "Cost of Managing Tax Affairs," and "Income Protection Insurance."
  • Fixed: Depreciation calculation for "Diminishing Value" method now correctly uses the written-down value.

Version 1.2.0

  • Added: Choice between "Prime Cost" and "Diminishing Value" depreciation methods.
  • Added: Inputs for "Deductible Personal Super Contributions" and "Net Capital Gains."

Version 1.1.0

  • Added: Accurate Medicare Levy Surcharge (MLS) calculations for "Single" and "Family" statuses.
  • Added: Advanced taxpayer details for more complex scenarios.
  • Improved: Mobile navigation is now horizontally scrollable.