Australian Superannuation Growth Calculator
Personal Project · 2025
A fully client-side React app encoding Australian ATO superannuation rules for FY2025–26, built to give fellow Australians a genuinely useful and free super projection tool.
The problem
Most freely available superannuation calculators are either oversimplified or buried behind financial product sign-up flows. There was no clean, independent, client-side tool that encoded the full ATO ruleset — concessional caps, Division 293 tax, LISTO, salary sacrifice — and let users model their own scenarios without an account or backend dependency.
Architecture
Approach
Built entirely client-side using React, Vite, Tailwind CSS, and Chart.js — with no backend and no runtime AI calls. The full ATO rules engine was written as a standalone JavaScript module encoding FY2025–26 rules: Superannuation Guarantee rates, concessional contribution caps ($30k), Division 293 tax for high earners (>$250k), and the Low Income Super Tax Offset (LISTO). The UI was built in a two-column layout — inputs left, results and chart right — with reactive validation that surfaces cap breach warnings and Division 293 applicability as the user types. A scenario comparison mode was added to let users model a baseline versus an alternative contribution strategy side by side on the same chart. The app was deployed on Vercel as a fully static artifact.
Key decisions and trade-offs
Fully client-side, no backend
Deliberately avoided any backend or runtime API calls. All projection logic runs in the browser — which keeps the app free to host, instant to load, and privacy-preserving. The ATO rules are stable enough year-to-year that encoding them at build time is a valid approach.
Standalone rules engine module
Separated the ATO rules logic into a dedicated superRules.js module before building any UI. This made the calculation engine independently testable and kept the UI layer clean — a pattern that would scale if investment strategy modules were added later.
Scenario comparison mode
Added a comparison mode that renders two independent contribution strategies — baseline and alternative — on the same four-line chart (nominal and real for each). This was the most complex UI feature but meaningfully increases the tool's usefulness for anyone modelling salary sacrifice trade-offs.
Challenges
ATO ruleset accuracy
Encoding the full ATO ruleset accurately required careful research — rules like the concessional cap, LISTO income thresholds, and Division 293 interaction are non-trivial to implement correctly.
Scenario comparison layout
The scenario comparison layout required significant iteration to avoid disrupting the existing two-column layout on both desktop and mobile.
Outcome
A deployed, publicly accessible tool at aus-super-calculator.vercel.app. Demonstrates the ability to independently scope, build, and ship a domain-specific client-side application — encoding complex real-world rules into a clean, usable product — without any backend infrastructure.
My role
Sole developer. Scoped the feature set, authored the rules engine, built and iterated the UI, handled responsive layout, and deployed to Vercel. Used Claude Code throughout the build as a development accelerator.
What I would do differently
I would add investment strategy selection — letting users model different risk profiles and their historical return assumptions rather than a single fixed rate. I would also add account creation and persistent storage so users can save and return to their projections over time rather than re-entering inputs each session.