← Home

Methodology

Last reviewed:

How every Mzansify tool is built — where the numbers come from, how we keep them current, and how to tell us when something looks wrong. This covers tax calculators, medical aid comparison, savings and debt tools, and property calculators.

Mzansify was founded and is run by Moritlha Madisha.

Tax calculators

Every rate, bracket, threshold, rebate, and cap in every tax calculator comes from a primary source — typically SARS or National Treasury:

  • 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 under the Municipal Property Rates Act.

Where a calculator page shows a rate table, the bracket values match the corresponding SARS page. We link the specific source on each calculator under “Source.”

Accuracy against SARS

2026/2027 income tax figures last checked against the published SARS tables on

The income tax calculator applies the SARS rates of tax for individuals, the rebates and the medical scheme tax credits. We test those figures against the published SARS tables with automated tests that run on every change.

What those tests are not: a comparison with a SARS eFiling assessment. An assessment also reflects the income, deductions and certificates you and your employer submitted, which a calculator does not see. Treat the result as an estimate of the tax on the figures you type in.

Examples for the 2026/2027 year, under 65, with no medical scheme or retirement deduction. Each is worked by hand from the SARS table in the test suite and has to match the calculator exactly:

Annual income and the income tax the calculator returns for the 2026/2027 tax year
Annual incomeA monthIncome tax for the year
R120,000R10,000R3,780
R360,000R30,000R56,172
R600,000R50,000R132,907
R1,000,000R83,333R288,293

What the test suite checks, and where:

  • 2026/2027 income tax is worked by hand from the SARS table and checked at the tax threshold and at one income inside each of the seven brackets, from 18% to 45%. 8 tests in packages/tax-engine/__tests__/income-tax-2026-2027.test.ts: “tax threshold: R99,000” and others.
  • Around each of the six 2026/2027 bracket boundaries, tax before rebates is checked R100 below and R100 above the boundary against hand-worked figures (for example R245,000 gives R44,100 and R245,200 gives R44,144). Test in packages/tax-engine/__tests__/income-tax-2026-2027.test.ts: “every bracket boundary: tax before rebates is right R100 either side”.
  • The 2026/2027 rebates, medical scheme credits for a family of four, and the retirement deduction and its R430,000 cap are each checked against hand-worked figures. 5 tests in packages/tax-engine/__tests__/income-tax-2026-2027.test.ts: “age 65 adds the R9,765 secondary rebate” and others.
  • The 2026/2027 bracket schedule renders as the rows SARS publishes, base amounts included. Test in packages/tax-engine/__tests__/format-brackets.test.ts: “SARS 2026/2027 income tax brackets produce the canonical rows”.
  • The marginal rate is 18% at exactly R245,100 and 26% at exactly R383,100 (the top of each bracket belongs to the lower rate). Test in packages/tax-engine/__tests__/marginal-rate.test.ts: “handles edge case of income exactly at bracket boundaries”.
  • For every tax year in the config, each bracket base amount agrees with the rates and widths of the brackets below it, within R1. Test in packages/tax-config/__tests__/config-validation.test.ts: “base amounts are consistent with rates and bracket widths”.
  • 2025/2026 income tax is checked at R250,000, R500,000, R1,000,000 and R2,000,000 against hand-worked figures. 4 tests in packages/tax-engine/__tests__/income-tax.test.ts: “R250,000 income, age 30, no deductions” and others.
  • The R30,000 and R35,000 a month examples in the income tax FAQs are checked against fixed expected text (R56,172 and R73,617 tax for the year). Test in apps/web/__tests__/ws4-copy.test.ts: “guard: today the R35,000 example and FAQ read exactly as before”.
  • UIF is capped at the monthly ceiling (checked on the 2025/2026 config). Test in packages/tax-engine/__tests__/uif-sdl.test.ts: “remuneration above ceiling”.

Not covered by these tests: lump-sum tax directives, foreign income, capital gains, provisional tax, and your own SARS assessment history. For anything complicated, check with a registered tax practitioner.

Medical aid tools

Medical aid contribution data is sourced directly from each scheme’s published member guides and benefit tables — the same documents you receive as a member or can download from the scheme’s website. Specifically:

  • Monthly contributions — taken from each scheme’s current member guide or rate schedule, typically effective 1 January as published by each scheme.
  • Benefits and limits — day-to-day benefits, hospital cover, savings account allocations, and annual limits as stated in the scheme’s benefit option summary.
  • Scheme registration — all schemes shown are registered with the Council for Medical Schemes (CMS). Registration numbers are available on the CMS website.

Contributions and benefits change annually. We update the medical aid data at the start of each calendar year when schemes publish new rates. If you notice a discrepancy between what we show and your scheme’s current member guide, please flag it — see “Submit a correction” below.

The medical aid comparison tool is a planning aid only. Scheme eligibility, waiting periods, late-joiner penalties, and underwriting conditions are not modelled. Always confirm terms with the scheme or a registered broker before switching.

Savings, debt, and property tools

These calculators use standard financial mathematics — no proprietary models:

  • Home loan and vehicle finance — standard amortisation formula (equal monthly instalments) with National Credit Regulator guidance on permitted initiation and service fees (NCA Schedule 1).
  • Savings and compound growth — periodic compound interest formula. TFSA contribution limits follow National Treasury’s published annual caps.
  • Retirement annuity projections — compound growth with SARS-published deductibility limits and lump-sum tax tables.
  • Prime interest rate — the South African Reserve Bank (SARB) repo rate plus the standard 3.5% margin. We update this manually after each Monetary Policy Committee (MPC) announcement.

Projections assume a constant rate over the full term. Real-world rates change — use projections as directional estimates, not guarantees.

How a calculator is built

Three layers separate concerns cleanly across all tools:

  1. Config. Source data (SARS brackets, scheme contribution tables, NCA fee caps) lives in versioned TypeScript config files. Updating a rate is a one-line edit — the calculation engine and UI are untouched.
  2. Engine. Pure functions that take a config and your inputs and return a result. No side effects, no network calls — calculations are deterministic and validated through automated tests.
  3. UI. A React form that collects your inputs, runs the engine in your browser, and displays the result. Your inputs never leave the page.

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 prior years available. Calculators default to the current year but let you select a prior year — useful when filing late or reviewing a historical return.

Older blog posts may reference rates from the year they were written. We flag those with a “Tax year” marker and update related calculator pages when a rate changes materially.

What changed

What the tools don’t do

All results are estimates that assume standard cases. They don’t model:

  • Double-tax-treaty relief for foreign income.
  • Farming, mining, or trust special rules.
  • VAT apportionment or complex input-tax claims.
  • Your specific SARS assessment history, penalties, or interest accrued.
  • Medical aid waiting periods, late-joiner penalties, or scheme-specific underwriting conditions.
  • Variable interest rate scenarios for home loan or savings projections.

Update cadence

  • Annually (March), after the February Budget Speech — new tax-year config, review of all SARS-dependent calculators.
  • Annually (January), when schemes publish new rates — medical aid contribution and benefit data refreshed.
  • After each MPC meeting — prime rate updated if the repo rate changes.
  • On correction — if a reader flags a verified bug we fix it as soon as possible.

Submit a correction

If a rate, bracket, contribution or source on Mzansify looks wrong, tell us. Use the correction form and include the page, the figure you think is wrong and, if you can, a link to the published source. We check it against the primary source and fix verified errors; fixes that change a figure are recorded under “What changed” above.

Not financial advice

Nothing on Mzansify is professional tax, financial, or legal advice — see the disclaimer for full terms. Use the tools to understand likely numbers, then consult a registered tax practitioner, financial advisor, or medical aid broker for anything you’ll act on.