Every client, one table
One row per taxpayer: the overall verdict, then returns, registration and debt, each marked compliant or not. Search it, filter any column, and see when each row was last checked.
Case study · Tact · Tax compliance
Pragma Konsult's accountants used to check clients' tax compliance by signing into SARS eFiling, one client at a time. Tact does the checking for them, across the whole portfolio, and keeps it current. A working prototype was in their hands in two weeks.

An accounting firm is answerable for its clients' standing with SARS. SARS knows each client's status, but it only shows it one taxpayer at a time.
SARS shows a client's compliance status one taxpayer at a time: sign in, open the taxpayer, walk the menus to their compliance profile, read it, go back. Across hundreds of clients, nobody can do that every week.
A late return or an unpaid balance can turn a client non-compliant between checks. Unless someone looks, the firm doesn't know, and neither does the client.
Routine checks that grow with every new client were holding the firm back. More clients meant more logins, not more advice.
Software built on someone else's website lives or dies by the details of that website. So we learned eFiling with the people who use it, shipped early, and tested every assumption against the live portfolio.
1Discover
We worked through eFiling in guided live sessions on a real practitioner login and wrote down SARS's own words for everything: Login, Portfolio, Taxpayer, My Compliance Profile. The code uses the same words the accountants do.
2Ship
The first day ended with one compliance status read from SARS and shown on a page. Within two weeks the firm had a working prototype to use and react to, before any of the harder work began.
3Measure
A probe of a live practitioner portfolio showed the first version reading 8 taxpayers out of about 1,000: SARS hides a practice's clients in a separate paginated list. We found it on real data, fixed it, and redesigned runs for that scale.
Tact reads each client's compliance profile from SARS and puts the whole portfolio in one place, so the firm starts from the clients who need attention.
One row per taxpayer: the overall verdict, then returns, registration and debt, each marked compliant or not. Search it, filter any column, and see when each row was last checked.
Headline counts, non-compliance by area, and a chart of compliance over time, so the firm sees whether its book of clients is getting healthier week by week.
A scheduled run checks the portfolio every week. A Refresh button runs one now, and any single client can be re-checked from its row.
Some clients have never had SARS's compliance service activated. Tact activates it and confirms the client's profile, then reads the result on the next run.
Download the table, or just the filtered view, as Excel or CSV for follow-ups, client letters or the partners' meeting.
Clients removed from eFiling drop off the table automatically. Their history stays, so a returning client picks up where they left off.
SARS offers no way for software to ask for this. The work is reading a large, changing government website reliably, at a thousand clients, without ever putting a client's SARS profile at risk.
eFiling has no API for this, so Tact drives a real browser. Automated form filling didn't reliably get past SARS's sign-in page, so Tact types real keystrokes and waits for the page to accept each one. When a saved session expires mid-run, it signs in again and carries on.
Compliance profiles live in an older part of eFiling with its own session. Tact always arrives through the main dashboard, as a person would, because jumping straight there lands on a second login page every time.
Checking every client every run would take about three hours and risk a lockout. So each run lists the whole portfolio, a quick pass, then checks only clients not seen in seven days. The first pass works through the backlog, and later runs are short.
Tact is acting on real taxpayers' SARS profiles. SARS uses the same button for Activate and De-activate, so Tact matches the exact label and never switches a client's service off.
eFiling passwords are encrypted at rest. Every query is scoped to the account that owns the login, and sign-up needs an invite code, so one firm can never see another's clients.
Every check is stored as a dated snapshot and never overwritten. The dashboard shows when Tact checked and when SARS last recalculated, so a stale status is visible, not hidden.
Each hard-won lesson about eFiling is recorded as a decision with its reasons, so the next change doesn't relearn it. Every release ships the same way, from a tag to the cluster.
The firm uses Tact in production. Now the practitioners are telling us what to build next, and it reaches past the office to the firm's own clients.
An email to the practitioner when a client turns non-compliant after an automatic check, and returns and debt broken down by tax type.
Client details imported from Xero Practice Manager, to work out each client's VAT, payroll, provisional tax and CIPC deadlines.
Monthly messages telling each client what's due and when, by email first, with WhatsApp under investigation. Later, a portal where clients see their own status.
“Dean and Regardt helped us build a prototype within two weeks. They understood the problem deeply and in our first prototype iteration, we could already see massive savings on tasks that have historically been blockers to scaling our business.”
Thirty minutes with Regardt or Dean. You'll leave with the user problem to solve first, a first release scope and an initial budget range.
Book a free call