There is a default architecture for "AI in business software" that most teams reach for first: give a language model access to the data, ask it to find what matters, and show the user what it says.
We built the opposite. Every proactive signal in xMatix is computed by deterministic code. The model never decides whether something is worth flagging. It explains, contextualises and carries the action — but the finding itself is arithmetic.
This is not conservatism. It is what the workload demands.
What the signals actually are
Nine signal providers ship today, each a small piece of code that runs on a record event or a schedule and produces a finding with evidence attached:
- Purchase-order quantity — this line orders stock the pipeline already covers, or leaves the item under its reorder point.
- Scheme gap — this order is close to unlocking a better slab, and here is the shortfall.
- Alternate item — the ordered item is short; here is an available substitute.
- Overdue receivables — money past due, aged.
- Awaiting invoice — delivered but not yet invoiced.
- Dormant customer — an account that has gone quiet against its own pattern.
- Quote follow-up — a quote sitting past the point where quotes usually convert.
- Service recommendation — service work indicated by the record.
- Stale draft — a document that was started and abandoned.
Each is narrow, and that narrowness is the design. A provider does one calculation over data it can see completely, and either the condition holds or it does not.
Why the finding is not model-generated
Three properties matter more than breadth here.
Repeatability. The same record on Tuesday and Thursday must produce the same finding. Users build trust in a signal by seeing it behave consistently; a flag that appears and disappears without the data changing teaches people to ignore all of them. Deterministic code is repeatable by construction.
Auditability. These signals attach to financial documents and offer actions that change them. When someone asks why an order was flagged, the answer needs to be the calculation — on hand 40, in transit 30, on order 25, committed 40, net 95, reorder point 65 — not a plausible reconstruction of reasoning. Only one of those survives an audit.
Cost at the frequency we want. These fire on record saves across a tenant's whole transaction volume. Deterministic evaluation is effectively free, so it can run on everything, always. A model call per save has a cost curve that punishes exactly the usage you want to encourage — and the first thing anyone does under that pressure is sample, which means the signal is silently no longer reliable.
So what is the model for?
Four jobs, all downstream of the finding.
- Explanation on demand. The evidence is structured; not everyone wants to read a JSON object. Ask "why is this flagged?" and Sense Assist answers in plain language grounded in that evidence.
- Follow-up. "Which other orders from this distributor have the same problem?" is a query, and answering it against live data is genuinely what a model-driven agent is good at.
- Prioritisation in context. Presenting the relevant subset for the record and the person, rather than a queue of everything.
- Carrying the action. Applying the correction under the user's own permissions, with the change written to the audit trail.
The division is simple to state: computation is deterministic, communication is generative. It turns out most of what people wanted from "AI insights" was the communication half all along.
The obvious objection
Deterministic providers only find what someone thought to write. A model turned loose on the data might notice something nobody anticipated.
That is true, and it is why the platform also supports open-ended analysis — asking Sense to query, aggregate and summarise across entities is a first-class capability, and it is the right tool for exploration. The distinction is between exploring and alerting. Exploration is a person asking a question and evaluating an answer, where an interesting-but-wrong response costs a follow-up question. Alerting is unprompted, at scale, attached to documents that move money — and there a plausible-but-wrong finding costs trust that took months to build.
Tenants can also author their own agents that publish nudges, so a business with a pattern we never anticipated can encode it. That path exists precisely because we do not think nine providers is the finished set.
What we would tell another team
Decide, per feature, whether you need a system that is usually right and interesting or one that is always right and narrow. Both are legitimate; conflating them is what produces AI features people quietly turn off.
Then check which half of the problem the model is really solving. In our case it was never the finding — it was making the finding legible, answerable and actionable. That is a smaller claim than "AI finds insights in your data", and it has the advantage of being true every time.
Related: The nudge that says don't buy · AI trust & governance · Sense Assist
