Methodology
Last reviewed:
How Mzansify calculators are built, where the numbers come from, how we handle tax-year changes, and how to tell us if something looks wrong.
Data sources
Every rate, bracket, threshold, rebate, and cap in every Mzansify calculator comes from a primary source — typically SARS, National Treasury, or the relevant regulator. Specifically:
- Income tax, PAYE, rebates, medical credits, provisional tax, retirement deductions, capital gains, SBC, turnover tax, transfer duty, donations tax, wear-and-tear, VAT — SARS rate tables and the annual Budget Speech.
- UIF benefits — Department of Employment and Labour UIF Amendment schedules.
- Municipal rates — per-municipality rates policies (published by each metro/municipality under the Municipal Property Rates Act).
- Home loan and car finance math — National Credit Regulator guidance on permitted fees (NCA Schedule 1) and standard amortisation formulas.
Where a calculator page shows a rate table, the bracket values are what you’ll find on the corresponding SARS page. We link the specific SARS page on each calculator under “Source.”
How a calculator is built
The code is open about it — three layers separate concerns cleanly:
- Config. The SARS-published numbers (brackets, thresholds, rebates, caps) live in versioned TypeScript config files — one file per tax year. Changing a rate is a one-line edit and a test run.
- Engine. A set of pure functions that take a config and your inputs and return a result. No side effects, no network calls, no DOM — calculations are deterministic and unit-tested.
- UI. A React form that collects inputs, calls the engine in your browser, and displays the result. Your inputs never leave the page.
The engine ships with 400+ unit tests covering edge cases (rebate clamps, leap-year logic, primary-residence exclusion, inclusion-rate changes, SBC phase-in, provisional-tax deadlines, and so on) to catch regressions when we update configs.
Tax-year versioning
South African tax years run from 1 March to the following 28/29 February. When the Budget Speech introduces changes, we add a new config file for the upcoming year and keep the previous years available. Calculators default to the current year but let you select a prior year — useful when you’re filing late or reviewing a historical return.
Older blog posts and articles may reference rates and caps that applied in the tax year they were written for. We flag those with a “Tax year” marker at the top of the article. When a rate changes materially (for example, the retirement contribution cap increase from R350,000 to R430,000 in Budget 2026), we update related calculator pages and add a note to the historical article pointing to the current value.
What the calculators don’t do
Calculator results are estimates. They assume standard cases. They don’t model:
- Double-tax-treaty relief for foreign income.
- Farming or mining special rules.
- Trust taxation and conduit principles.
- VAT apportionment or complex input-tax claims.
- Your specific SARS assessment history, penalties, or interest accrued.
For anything you’ll actually file, use the estimate as a sanity check and talk to a registered tax practitioner for the real number.
Update cadence
- Annually, after the February Budget Speech, we add the new tax-year config and review every calculator that depends on SARS rates.
- In-year, we patch when SARS issues a public notice that changes a threshold, rebate, or cap mid-year.
- On correction, if a reader flags a bug we fix it as soon as we can verify the source.
Submit a correction
Found a number that doesn’t match the SARS source? Email hello@mzansify.co with:
- The calculator or article URL.
- What the page says.
- What the SARS (or other authoritative) source says — with a link.
We’ll reply with the fix (or why we disagree) within a few working days.
Not tax advice
Nothing on Mzansify is professional tax, financial, or legal advice — see the disclaimer for full terms. Use calculators to understand likely numbers, then talk to a registered tax practitioner for anything you’ll act on.