Skip to main content
Glama

GetAccountED — South African Tax Tools

Calculate South African PAYE, UIF and net pay

sa_paye_calculate
Read-onlyIdempotent

Employees' tax (PAYE), UIF (employee and employer, with the monthly ceiling), SDL and net pay for one South African employee and pay period, using the SARS tax deduction tables (or the exact statutory-rates formula) for the right tax year. Handles age rebates, the medical scheme fees tax credit, retirement-fund deductions (s11F cap), travel allowance (80%/20%), bonuses (annual-payment method), commission and fringe benefits.

Input Schema

NameRequiredDescriptionDefault
ageNoAge on the last day of the tax year (65+ and 75+ get extra rebates). Or give date_of_birth / id_number.
bonusNoBonus / annual payment paid in this period (3605), taxed by the SARS annual-payment method
methodNotables = SARS monthly tax deduction tables (default); formula = exact statutory-rates calculation
periodNoWhat the amounts are per (default monthly). Non-monthly amounts are converted to a monthly equivalent.
salaryYesBasic salary/wage for the pay period, in rand (before deductions)
overtimeNoOvertime (3607)
pay_dateNoPay date / period end, YYYY-MM-DD (default today). Decides the tax year: March onwards → next year (2026-11-30 → 2027 tax year).
tax_yearNoTax year instead of pay_date, e.g. "2027" (1 March 2026 – 28 February 2027)
id_numberNoSA ID number (only used to read the date of birth; not stored)
commissionNoCommission (3606)
date_of_birthNoYYYY-MM-DD
employer_pensionNoEmployer pension fund contribution (fringe benefit 3817)
other_deductionsNoOther non-tax deductions from net pay (loans, union fees…)
travel_allowanceNoTravel allowance (3701): 80% taxed through PAYE, or 20% if at least 80% business use
taxable_allowanceNoOther taxable allowance — cell phone, housing, tools (3713)
employer_providentNoEmployer provident fund contribution (fringe benefit 3825)
retirement_annuityNoRetirement annuity paid through payroll (4006)
travel_business_80NoTrue when the employer is satisfied the vehicle is used at least 80% for business
medical_aid_membersNoPeople on the medical aid including the employee (for the s6A tax credit)
employer_medical_aidNoMedical aid paid by the employer for the employee (fringe benefit 3810)
pension_contributionNoEmployee pension fund contribution (4001)
provident_contributionNoEmployee provident fund contribution (4003)
medical_aid_contributionNoEmployee's own medical aid contribution deducted from pay (source code 4005)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the safety bar is low; the description still adds useful trust context by noting the ID number is 'not stored' and by pinning down defaults (tables method, monthly period, today's pay date, monthly-equivalent conversion). It does not state determinism or rate-table vintage caveats explicitly beyond 'the right tax year'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the outputs and scope, then a compact enumeration of the statutory features handled. The second sentence is a dense list but every item maps to real parameters, so nothing is padding; a slightly tighter grouping of the tax-credit and allowance features would make it easier to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 23-parameter, read-only calculation tool with no output schema, the description names the computed outputs (PAYE, UIF employee/employer, SDL, net pay) and the scope constraints, which is close to sufficient. The remaining gap is that the exact response fields and any rounding/table-version disclosure are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above baseline by tying parameters to substantive statutory mechanics the schema only gestures at — the s11F cap, the 80%/20% travel allowance split, the annual-payment method for bonuses, and age rebates and medical credits. It does not resolve ambiguities such as how salary plus overtime plus bonus interact when period is weekly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb-resource-scope: it computes PAYE, UIF (employee and employer, with ceiling), SDL and net pay for exactly one employee and one pay period. That scope line alone separates it from siblings like sa_tax_rates (rate lookup) and sa_vat_calculate (indirect tax) without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The single-employee/single-period scope implies when to use it, and the mention of 'the right tax year' hints at the pay_date/tax_year choice, but no explicit when-not or alternative is named, and no sibling is referenced for related tasks such as validating an ID number or looking up rates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources