Five sources (Xero, SimplePay, Microsoft 365, InfoDocs and Custom Import), what Catalyst Platform reads from each, and where it goes: matching to clients, the client file, the signals that analysis works out, the AI CFO findings, and the triggers of our first two service providers, Aurora Capital and ACC Consult. As at 9 November 2026.
Three cuts to choose from. Each one plays here in the browser.
The figure is wide: scroll it sideways, or read the same facts in the summary below.
| Source | Status | Matching | Client file | Signal fields | Findings | Aurora triggers | ACC triggers |
|---|---|---|---|---|---|---|---|
| Xero per client | Live | Registration and tax number | Names, type, province, year end, currency | 81 | 15 14 live | 37 | 29 12 beyond business type |
| SimplePay per practice | Live since 8 Nov | PAYE and UIF references | Payroll linked to the client | 17 | 8 6 live | 10 | 10 |
| Microsoft 365 per practice | Connector in prod | Mail addresses, domains, folders | The client's mail and documents | 0 | 0 | 0 | 0 |
| InfoDocs per practice | Live, by API | CIPC, income tax, VAT, PAYE, UIF, SDL numbers; email | Company details, directors and officers, shareholders, related clients | 16 | 6 | 9 | 21 |
| Custom Import per practice | Live | Mail addresses, names | Client list, types, related clients | 0 | 0 | 0 | 0 |
Income tax, VAT, PAYE, UIF and SDL numbers arrive as identifiers from Xero, SimplePay and InfoDocs and are used for matching only. Each number is checked for its shape, not looked up anywhere. A strong number on one client attaches the source to that client; anything less waits for a person.
The other 6 of the 120 signal fields come from the practice (industry sector, number of staff) and from Catalyst Platform itself (an anonymous reference, the month, the data reliability score, the list of findings). Of Aurora Capital's 54 triggers, 2 read two sources; of ACC Consult's 37, 23 do, because almost every ACC trigger first checks the type of business from Xero. Each such trigger is counted under every source it reads, so the columns add up to more than the totals. Both specifications were published in prod on 9 November 2026, so every trigger runs; matches are worked out nightly and after each publish. The findings column adds up to 29 of the 30 rules: the last one needs filed tax returns, which no connected source provides, so it cannot fire.
Matching: the registration number and tax number tie the organisation to a client. Xero does not say whether its tax number is income tax or VAT, so it is matched as a tax number of unknown kind.
Client file: names, type of business, province, financial year end and currency.
Analysis: the ledger gives the health score, the ratios, the signals and 14 of the findings on its own. Two payroll findings compare SimplePay with the books.
28 from the profit and loss, 32 from the balance sheet, 9 from both, 7 from the organisation record and 5 from bills, invoices and payments. 8 of the 81 name the client or give an exact amount, and leave only with the client's consent.
Examples: gross margin; debtor days; months of cash cover; loans to shareholders or directors, as a range; new landlords billing rent in the last year; type of business.
Matching: the PAYE and UIF references on a finalised EMP201 tie a SimplePay client to a client of the practice. Only confirmed links are processed.
Analysis: a monthly payroll summary per company: staff on the payroll, starters and leavers, benefits and pay items. It carries counts and totals only; employee tokens never leave the query.
Findings: seven payroll findings went live on 8 November 2026. Six read SimplePay: payroll against the books, pay runs not posted, a missing EMP201, PAYE, UIF or SDL out of line with payroll, high staff turnover and missing retirement or group risk cover. The seventh, payroll growing faster than revenue, reads the books only, so it also runs for clients without SimplePay. No finding names or describes one employee. Two more (revenue per employee, overtime costs) are in the library but do not fire yet.
All of them are unknown for a client without SimplePay, never "no".
Examples: number of staff on the payroll, as a range; staff who left in the last year; retirement fund contributions on the payroll; overtime growth on last year; directors' pay on the payroll.
Matching: senders, recipients, domains and folders are matched to clients. A message belongs to a client when one of its addresses or domains is a confirmed identifier of that client; a file belongs to the client of the nearest confirmed folder above it. Two clients or none leaves the item unattributed.
Client file: metadata of attributed items only: sender, recipients, subject, date and attachment names for mail; path, type, size and dates for files. The same metadata of every item is catalogued so it can be matched, and an item enters a client file only once it is attributed.
None. Mail and documents are not analysed, and nothing from a message or a document reaches a signal, a finding or a log line.
Matching: a company's CIPC registration number and its income tax, VAT, PAYE, UIF and SDL numbers, and its email address when only one company uses it.
Client file: company details (CIPC status, type, incorporation date, shares authorised and issued, annual return window), and the registers of directors and officers and of shareholdings. These give Related clients.
Trusts, beneficial owners, share transactions, history and CIPC transactions are kept but not yet used.
Counts become ranges or yes/no. They never name a person, and never say how many people did something.
Examples: number of directors, as a range; a director resigned in the last year; a trust holds shares; shares issued as a share of shares authorised; in business rescue or liquidation.
Analysis reads the registers only for a client that also has Xero books, when its month is analysed.
The register signals and the six company-secretarial findings went live in prod on 8 November 2026. The register triggers are in both service provider specifications, published in prod on 9 November 2026.
For each row: a name, company or individual, the type of business, mail addresses (companies only), and the companies the row is related to, as director, shareholder, member, trustee or other.
Client file: each row becomes a client, or reuses the client of that name.
Matching: a company's mail addresses become its identifiers, so Microsoft 365 mail can be attributed to it.
Related clients: "director of" and the other relationships.
None. The file carries no tax numbers and no figures.
The file is stored as uploaded, in South Africa under the practice's own key, then read into the client list. It never carries login details: the practice's column with login details for other systems is removed before the file is made.
30 rules in the rule library, all seeded in prod's database. The seven payroll rules went live on 8 November 2026. Employees and payslips have reached them since the SimplePay sync of 9 November 2026, for every SimplePay company linked to a client. Their thresholds are provisional.
| Source | Rules | Status |
|---|---|---|
| Xero, 13 | Cash running low · Cash tied up in working capital · Customers paying more slowly · Suppliers being paid later · Stock building up · Keeping less of each sale · Overheads growing faster than revenue · Uneven revenue · Growth running ahead of cash · Unexplained amounts in suspense · Risk to the business continuing · Profit barely covering interest · Owing more than the business owns | Fire in prod |
| Xero, 1 | Reliance on a few customers Needs sales by customer, which is not worked out yet. | Does not fire yet |
| Xero, 1 | Payroll growing faster than revenue Reads payroll from the books, so it also runs for clients without SimplePay. | Live in prod |
| SimplePay, 6 | Payroll and the books do not agree (with Xero) · Pay runs not posted to the books (with Xero) · EMP201 missing after its due date · PAYE, UIF or SDL out of line with payroll · High staff turnover · No retirement fund or group risk cover on the payroll | Live in prod |
| SimplePay, 2 | Revenue per employee (with Xero revenue) · Overtime costs Revenue per employee needs staff as full-time equivalents; the payroll summary counts heads. Overtime costs waits for a new version of the rule. | Does not fire yet |
| InfoDocs, 6 | Annual return due or overdue · Beneficial ownership filing missing or out of date · Company not in business at CIPC · Director left and was not replaced · Only one director · Company register out of date | Live in prod |
| No connected source, 1 | VAT and tax not agreeing with returns Needs filed tax returns, which no connected source provides. It is in the library so a report can say why it is absent. | Cannot fire |
Counted from the specifications published in prod on 9 November 2026: Aurora Capital version 2 (54 triggers) and ACC Consult (37 triggers). The register and payroll signals they need are live in prod, so every trigger runs. Matches are worked out nightly and after each publish. The versions before them had 35 (Aurora Capital, without the register and payroll triggers) and 22 (ACC Consult, without the register triggers). A trigger counts under each source whose fields it reads.
| Source | Aurora Capital | ACC Consult |
|---|---|---|
| Xero | 37. Loans from shareholders or directors · New vehicles bought or financed · New lease or move to new premises · Solar, battery or generator installation | 29. 17 of them read Xero only to check the type of business. The other 12 include dividends declared · shareholders lent the company more money · directors' fees changed by 20% or more · financial distress (from the Xero findings) |
| SimplePay | 10. Travel allowances on the payroll · No retirement fund deductions with 11 or more staff · Staff who left in the last year | 10. New employees started · Overtime changed by 25% or more · A bargaining council applies |
| InfoDocs | 9. Two or more shareholders · The company has one director · A trust holds shares | 21. A director was appointed · Shares transferred or a shareholder left · Shares issued at 90% or more of those authorised |
| More than one source | 2 | 23 |
Some thresholds are Catalyst's examples until each service provider sets its own. Register and payroll fields are unknown for a client without that source, so a trigger that needs them stays silent; it never reads a missing source as "no".
Every connector stores what the source returned exactly as received, in South Africa, encrypted under the practice's own key and readable only by that connector. Minimisation happens in processing, after that raw copy: processing keeps a short list of fields, and anything new from a source is dropped until someone adds it. What the list below says is dropped stays only in the raw copy. A Custom Import file is stored the same way, as uploaded, before it is read into the client list.