A lone figure at the foot of a vast stone colonnade, a shaft of golden light falling between the columns.

Certus Logic

The law does not change its mind.

Neither should the answer. South African labour and tax law, computed the same way every time, with the section it came from.

The brass gears of an old courthouse clock mechanism, lit by a single beam of light.

Every deadline is a cliff edge.

Thirty days to refer a dismissal. Six weeks to review an award, counted from the day it was served, not the day it was made. Miss one and the case is gone before anyone opens the file.

No court extends a deadline because the arithmetic was hard. And a number from a language model is a guess dressed as a fact.

Independent research

The model got the arithmetic right and the answer wrong.

Researchers tested deadline questions from UK Employment Appeal Tribunal cases two ways: a language model answering directly, and a pipeline that leaves the counting to code.

The strongest model contradicted its own reasoning in six of twenty-one answers. Every one of those errors ran the same way: it called a late claim timely.

90.2%right when code does the counting
61.2%right when the model answers directly
6 of 21answers that contradicted their own arithmetic

Zhyrko, Han and Verberne, Time as Structure, arXiv:2608.15270, preprint, August 2026. Measured on 427 generated cases both systems answered. Independent research, not affiliated with Certus Logic.

So we built something that refuses to guess.

Rules as data

Every value carries its source.

One legal value, one entry, one gazette citation. Law changes by appending, never overwriting, so a 2019 case still computes on 2019 law.

Pure functions

Same facts, same answer. Always.

No database, no network, no model, no randomness in the path that computes. Every result is stamped so you can prove what produced it, years later.

Silence over error

It says no when it should.

Out of scope returns out of scope. A rule that cannot cite its authority is never served. An honest refusal beats a confident mistake.

An antique brass theodolite on a tripod on a high ridge at first light, a dark valley falling away behind it.

Measured, not estimated.

Court days counted around holidays and the December recess. Rand in whole cents, never floating point. Farm and domestic workers on their own notice tier, the branch generic payroll software gets wrong.

The proof

Two correct readings of one sentence. Nine thousand rand apart. Per employee.

At exactly twelve months of service, two subsections of the Basic Conditions of Employment Act are both true at once. Two of our own implementations chose opposite sides, and neither was wrong. We found it by running both and comparing. Now the engine records which reading it takes, and why.

2weeks, one reading
4weeks, the reading we take
R9kat stake per person, at R19,500 a month
A page from the Certus Logic audit document for BCEA section 41, statutory text beside the executable rule.

A real page from the audit document. Statute on the page, the rule that runs it, the examples that check it.

58statutory rules across four forums
616tests, every one passing
3statutes formally specified in Catala
0language models in the compute path
An open volume of tax law on a dark desk, brass light rising from its columns into a floating grid of figures.

New in Certus Logic

Now the Income Tax Act.

Tax is arithmetic that people are penalised for getting wrong. Certus Logic now computes twelve areas of South African tax from the Act, including allowances, dividends tax, non-resident withholding, foreign companies, turnover tax and the company computation itself. Fifteen more are in build, from trading stock to capital gains.

Where the Act says “just and reasonable”, the engine does not guess. It flags the question for a person.

s 9D · s 10Bs 11(e) · s 23Hs 12Bs 24J Dividends taxss 50A–50HTurnover taxITR14IT3(b)
A long line of workers walking at dawn toward a mine headframe silhouetted against a gold horizon.

For everyone who pays for being wrong.

Behind every figure is a person owed notice, severance, leave or a fair hearing. The people who compute it carry the liability. This is built for them.

Banks and creditPayroll platformsBargaining councils Labour brokersTrade unionsLabour law practices Advisory and M&AInsurersSectoral employers

Put the Act in the build.

Tell us the rule you need first. We will show you the call, the citation and the audit document behind it.