Data sources: what we take, and what it feeds

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.

The films

Three cuts to choose from. Each one plays here in the browser.

Option 1: version 2, two and a half minutes

The problem, the five sources and what each one feeds, how records find their client, the AI CFO findings and the service provider triggers.

Option 2: version 3, the garage, a minute and a half

The practice as a car in a workshop: each source adds a part, matching wires it to the right client, then the dashboard, the findings, the service providers and the safety cage around the data.

Option 3: version 4, a minute and 40 seconds

Five steps from scattered data to the right conversation: map every record to its client, combine them into one master profile, enrich it with 120 signals, turn those into AI CFO findings, then connect the client to funding, legal services or advice with their consent.
Data sources and what they feed Five sources on the left, what we extract from each, what it is used for and what comes out. Xero (per client, live) feeds matching, the client file and 81 signal fields. SimplePay (per practice, live since 8 November 2026) feeds matching and 17 payroll fields. Microsoft 365 (per practice) feeds matching and the client file. InfoDocs (per practice, live by API) feeds matching, the client file and 16 register fields. Custom Import feeds matching and the client file. Income tax, VAT, PAYE, UIF and SDL numbers arrive as identifiers from Xero, SimplePay and InfoDocs and are used for matching. Outputs: the dashboard; 30 AI CFO finding rules (Xero 15, SimplePay 8, InfoDocs 6, and 1 that needs filed tax returns, which no connected source provides, so it cannot fire); Aurora Capital, 54 triggers (Xero 37, SimplePay 10, InfoDocs 9); ACC Consult, 37 triggers (Xero 29, InfoDocs 21, SimplePay 10). Both specifications are live in prod, published 9 November 2026. A trigger that reads two sources counts for each. The summary table below the figure has the same facts. Source What we extract Used for What comes out Xero Per client Live, nightly Organisation, chart of accounts, tax rates, tracking, contacts, invoices, bills, bank, payments, credit notes, manual journals; monthly profit and loss, balance sheet, trial balance SimplePay Per practice, by API key Live since 8 Nov 2026 Clients, employees (as tokens), pay points, payslips, pay runs and their journals, EMP201s, pay items, leave types Names and ID numbers dropped in processing Microsoft 365 Per practice Connector in prod Every mailbox, OneDrive and SharePoint library, kept as received. Only metadata is processed: it matches items to clients Hourly, after a backfill of past years InfoDocs Per practice; CIPC registers Live, by API Companies, individuals, trusts; directors and officers, shareholders, share classes, share transactions, beneficial owners, key dates, history, CIPC transactions; trust parties Custom Import Per practice, a spreadsheet Live The practice's client list: names, company or individual, type of business, mail addresses, who is a director, shareholder, member or trustee of which company Matching to clients Proposes links; a person confirms each one Xero: registration and tax number SimplePay: PAYE and UIF references Microsoft 365: mail addresses, domains, folders InfoDocs: CIPC, tax, VAT, PAYE, UIF, SDL, email Custom Import: mail addresses, names Mail and files go to the client whose confirmed address or folder they match Client file Xero: names, type, province, year end, currency Microsoft 365: the client's mail and documents InfoDocs: company details, directors and officers, shareholders, related clients Custom Import: client list, related clients Analysis: 120 signal fields What findings and service provider rules read Xero: 81 fields, ledger and organisation SimplePay: 17 payroll fields InfoDocs: 16 register fields Practice details 2, Catalyst Platform 4 Leave the platform only as ranges or yes/no; names and exact amounts only with the client's consent Dashboard Clients and To review Related clients A client's details, mail and documents Sources linked to each client AI CFO findings: 30 rules Xero 15: 14 live in prod SimplePay 8: 6 live in prod InfoDocs 6: live in prod 1 more: cannot fire Needs filed tax returns Aurora Capital: 54 triggers Live: version 2, published 9 November 2026 Xero 37 SimplePay 10 InfoDocs 9 ACC Consult: 37 triggers Live: published 9 November 2026 Xero 29 17 only check the type of business InfoDocs 21 SimplePay 10 Every connector lands what the source sent, exactly as received, in South Africa under the practice's own key. Personal details are dropped or tokenised in processing.

The figure is wide: scroll it sideways, or read the same facts in the summary below.

Every line is live in prod. Both service provider specifications were published on 9 November 2026: Aurora Capital version 2 and ACC Consult. Matches are worked out nightly and after each publish. The company register signals, the six company-secretarial findings and the seven payroll findings went live in prod on 8 November 2026. A trigger that reads two sources counts once for each. Counts come from the field catalogue, the finding rule library and the two service providers' specifications as they stand on 9 November 2026.

Summary

SourceStatusMatchingClient fileSignal fieldsFindingsAurora triggersACC triggers
Xero per clientLiveRegistration and tax numberNames, type, province, year end, currency8115 14 live3729 12 beyond business type
SimplePay per practiceLive since 8 NovPAYE and UIF referencesPayroll linked to the client178 6 live1010
Microsoft 365 per practiceConnector in prodMail addresses, domains, foldersThe client's mail and documents0000
InfoDocs per practiceLive, by APICIPC, income tax, VAT, PAYE, UIF, SDL numbers; emailCompany details, directors and officers, shareholders, related clients166921
Custom Import per practiceLiveMail addresses, namesClient list, types, related clients0000

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.

Xero

Live in prodPer client: the practice connects each client's Xero organisation.

What we extract

  • The organisation record: legal and trading name, type, registration and tax number, year end, currency.
  • Chart of accounts, tax rates, tracking categories and contacts.
  • Sales invoices, bills, bank transactions, payments, credit notes and manual journals.
  • Monthly profit and loss, balance sheet and trial balance: 24 months when a client connects, then the last 2 months every night.

What it is used for

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.

81 signal fields

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.

SimplePay

Live in prod since 8 November 2026Employees and payslips flowing since 9 November 2026Per practice, with the practice's SimplePay API key.

What we extract

  • The practice's SimplePay clients, each a company on its account.
  • Employees with their service periods and last 12 payslips with their items.
  • Pay points, pay frequencies, pay runs and each pay run's accounting journal.
  • EMP201s, the client's pay items, and leave types (at the first sync only).
  • 12 months when the practice connects, then the last 2 months every day.

What it is used for

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.

17 signal fields

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.

Microsoft 365

Connector in prodPer practice: mail, SharePoint and OneDrive, after the practice's administrator consents.

What we extract

  • Every mailbox, every OneDrive and every SharePoint library of the practice.
  • A backfill of past years (five by default), then changes every hour.
  • Each message and file is stored exactly as received. Deletions are recorded.
  • Only metadata is processed, never a body or a file's content.

What it is used for

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.

Signals, findings and triggers

None. Mail and documents are not analysed, and nothing from a message or a document reaches a signal, a finding or a log line.

InfoDocs

Live in prod, by APIRegister signals and findings live since 8 November 2026Per practice: the company book the practice keeps in InfoDocs, with its CIPC data.

What we extract

  • The lists of companies, individuals and trusts.
  • For each company: its details, directors and officers, share classes, shareholders, share transactions, beneficial owners, key dates, history and CIPC transactions.
  • For each trust: its details, trustees, beneficiaries, founders and history.
  • A sync is monthly; confirming a company fills it at once.

What it is used for

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.

16 signal fields

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.

Custom Import

Live in prodPer practice: its client list as a spreadsheet, loaded by Catalyst staff.

What we extract

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.

What it is used for

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.

Signals, findings and triggers

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.

AI CFO findings by source

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.

SourceRulesStatus
Xero, 13Cash 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 ownsFire in prod
Xero, 1Reliance on a few customers Needs sales by customer, which is not worked out yet.Does not fire yet
Xero, 1Payroll growing faster than revenue Reads payroll from the books, so it also runs for clients without SimplePay.Live in prod
SimplePay, 6Payroll 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 payrollLive in prod
SimplePay, 2Revenue 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, 6Annual 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 dateLive in prod
No connected source, 1VAT 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

Service provider triggers by source

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.

SourceAurora CapitalACC Consult
Xero37. Loans from shareholders or directors · New vehicles bought or financed · New lease or move to new premises · Solar, battery or generator installation29. 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)
SimplePay10. Travel allowances on the payroll · No retirement fund deductions with 11 or more staff · Staff who left in the last year10. New employees started · Overtime changed by 25% or more · A bargaining council applies
InfoDocs9. Two or more shareholders · The company has one director · A trust holds shares21. A director was appointed · Shares transferred or a shareholder left · Shares issued at 90% or more of those authorised
More than one source223

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".

What we deliberately don't keep

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.