Numbers you can hand
to the revenue service.

The financial engine reads bank and portfolio statements, rebuilds every transaction into one canonical schema, and refuses to export a ledger that doesn’t reconcile. Filing-grade, not best-effort.

Same columns, whatever the bank.

A Capitee statement and an Investec one look nothing alike going in. What comes out is the same six columns every time: date, description, category, debit, credit, running balance.

DateDescriptionCategory DebitCreditBalance
01 SepSalary · client retainerIncome-48 200,00112 480,14
03 SepCard · ShopriteDebits & Expenses1 240,50-111 239,64
05 SepDebit order · rentDebits & Expenses14 500,00-96 739,64
07 SepBank charges · VAT 15%Bank Charges & Taxes46,00-96 693,64

How a statement becomes proof.

From a skewed photo of a statement to a reconciled workbook, every file runs the same disciplined route. Nothing is guessed twice, and every balance is checked on the way out.

Repair the file first

Broken flate streams and corrupted compression are re-encoded with pdf-lib before parsing begins. A readable file in, every time.

flate stream broken  →  re-encoded · opened clean

Name the bank, fall through six strategies

Fourteen signatures are matched against headers and footers and scored. Then the file drops through a self-healing chain until it reconciles.

Text layer → OCR → Normalized AI → Vision AI → Hybrid → Spatial rescue

Pull every line

Dedicated extractors for the major banks; spatial-alignment rescue rebuilds tables from coordinates when the text layer lies.

x 112.4 · y 480.9  →  row 41 of 87 rebuilt from coordinates

Prove the numbers

Rows become canonical transactions, and the running balance is re-derived line by line. If it does not reconcile, it is flagged, never silently shipped.

Σ running balance = closing balance  verified

Five deterministic layers between your numbers and a wrong total.

Reconciliation here isn’t a model guessing. Each layer is plain arithmetic that re-adds the ledger and blocks the export when a single check fails.

Opening to closing, re-added

Each line’s balance is recomputed from the last. If it doesn’t match the bank, the row is flagged before it reaches the sheet.

Never both, never neither

A transaction gets exactly one side, cross-checked against the balance movement.

The R10k sanity net

An amount far outside a row’s context is surfaced for review instead of silently categorised.

Same line, counted once

Re-imports and overlapping pages are fingerprinted so a single debit never doubles the expense.

It will not ship a number it can’t re-derive

The whole ledger must balance from opening to closing before export, the check that makes output filing-grade.

Built around SARS VAT 501.

Over a hundred and twenty categorisation rules run in English and Afrikaans. They match how a line really reads on a local statement, BANKKOSTE and all, and land it in the right box.

Anything it can’t match goes to a human to review, not a guess. And each client’s rules stay separate, so one book can’t quietly change another.

Nine-column VAT schema

Standard suppliesZero-ratedExemptNon-purchasesImports VATAdjustments

15%

Output & input VAT, with the 115 registration gate handled.

R7 000

De minimis asset rule; below it, immediate write-off logic.

PAYE · UIF

Payroll lines recognised alongside salary templates.

Eskom → Santam

Local merchants, vendors and debit-order patterns pre-known.

It already knows fourteen banks.

A phone photo of a statement reads as cleanly as a pristine PDF. These are the banks and fund managers the engine knows by signature.

FN

FNB

Transactional & business

CA

Capitec

Transactional

NE

Nedbank

Transactional & business

AB

ABSA

Transactional & business

SB

Standard Bank

Transactional & business

TY

TymeBank

Transactional

DI

Discovery Bank

Transactional

IN

Investec

Private & wealth

BV

Bidvest

Corporate card

AF

African Bank

Transactional

IC

ICICI

Transactional (India)

OM

Old Mutual

Portfolio & unit trusts

SA

Sanlam

Portfolio & unit trusts

AG

Allan Gray

Portfolio & unit trusts

Put the engine on your books.

See plans & pricing