an overhead view of a team with printed charts and a large screen
Financial Controls · Continuous Monitoring · Hub

AI Agents for Continuous
Control Monitoring

A programme raising two hundred exceptions with a thirty percent worked ratio is doing worse than one raising forty at ninety.

Key takeaways
  • Sample testing existed because reading every transaction was impossible. That constraint is gone and most control programmes have not been redesigned around its absence.
  • A sample gives a pass or fail. A full population gives a failure rate, and a rate can be trended, which is where the value is.
  • Continuous monitoring dies of volume within two quarters when it raises more exceptions than the team can work. That is a design choice, not a discipline problem.
  • The measure of a monitoring programme is the proportion of exceptions that get a decision, not the number raised.
  • Continuous does not mean daily for everything. Frequency should match how fast the risk moves, and a duplicate found before a payment run is worth far more than one found after.

AI agents for continuous control monitoring test the full population rather than a sample, which changes the output from a pass or fail into a failure rate. ChatFin reports that rate per control per period, so a control that is slowly degrading becomes visible before it fails an audit.

The harder problem is volume. ChatFin ranks exceptions by what has actually turned out to be a problem on your own data, separates missing values from anomalies, suppresses accepted recurrences with an expiry, and reports the proportion of exceptions that got a decision as the headline measure of the programme.

Continuous monitoringFinancial controlsSOXControl testingException managementControl evidenceFull population testingAI agents for finance
01

Continuous controls monitoring, in practice

Continuous controls monitoring tests every transaction against the control instead of a sample, and records the result as it goes. The gain is not coverage alone. It is that an exception surfaces in the period it happened in, while the people involved still remember the transaction.

Sampling was a constraint, and it stopped being one

Control testing has always been a sample exercise because reading every transaction was not possible. That constraint is gone and most control programmes have not been redesigned around its absence. They still test twenty five items a quarter.

Sample testingFull population testingWhat changes
25 items per controlEvery itemA rate, not a pass or fail
A failure is an exceptionA failure rate is a measurementTrend becomes visible
Tested at quarter endTested continuouslyFound in days, not months
Extrapolated conclusionActual conclusionNo statistical argument
A clean sample proves littleA clean population proves a lotReal assurance value

The second row is the one that matters. A sample gives you a binary and a full population gives you a rate, and a rate can be trended. ChatFin reports the failure rate per control per period, which turns control testing from an event into a measurement.

In ChatFin

ChatFin tests the full population and reports a failure rate per period rather than a pass or fail, because a rate can be trended and a sample cannot.

02

The programme dies of volume, and that is a design choice

Continuous monitoring fails the same way everywhere. It raises more exceptions than the team can work, the backlog grows, people stop opening the list, and within two quarters the programme is nominally running and actually dead. Every part of that is preventable at design.

Rank by hit rate, not by severity. An exception type that has never once turned out to be real should stop being raised. ChatFin tracks the outcome of every exception and reorders by what has actually been a problem on your data.
Separate gaps from anomalies. A missing approval is a fact. An unusual pattern is a judgement. Mixing them makes the whole list feel optional.
Suppress the known. A recurring exception with an accepted explanation should be suppressed with an expiry date, not raised monthly and dismissed monthly.
Cap the daily volume. A list that exceeds what the team can work in a day is not a control, it is a backlog. Better to work the top of a ranked list properly.
Report the worked ratio. The measure of the programme is what proportion of exceptions get a decision, not how many were raised.

ChatFin reports that last figure as the headline. A monitoring programme raising two hundred exceptions a month with a thirty percent worked ratio is performing worse than one raising forty with a ninety percent ratio, and only the second number tells you that.

an overhead view of a team around a table with laptops
The measure is the proportion worked, not the number raised.
In ChatFin

ChatFin reports the worked ratio as the headline measure of a monitoring programme, not the exception count.

03

Evidence that a control operated, not that it exists

The audit question is never whether a control was designed. It is whether it operated, on what population, by whom, and what happened to the exceptions. Most evidence packs answer the first question and imply the rest.

Common evidenceWhat it provesWhat is missing
A screenshot of a reportThe report existsThat anyone read it
A signed checklistSomebody signedWhen, and against what
An email saying reviewedA review was claimedThe population reviewed
A sample of 25 with ticks25 items were checkedThe other 40,000
A policy documentA rule was writtenThat it is followed

ChatFin produces the evidence as a by product of running the control rather than as a separate exercise at year end. Population tested, exceptions raised, who decided each one, when, and on what basis. That is the pack, and assembling it afterwards from screenshots is the reason control evidence takes weeks.

Ask for the population your last control test covered and how many items were in it. If the answer is a sample size rather than a population, that is the finding.
04

Continuous does not mean daily for everything

The word continuous does a lot of unhelpful work. The useful frequency is the one that matches how fast the risk moves, and getting that wrong in either direction is expensive.

1

Match the frequency to the exposure

Payment release authority changes the day someone joins or leaves, so access conflicts are a daily check. A chart of accounts structure changes rarely, so quarterly is honest.

2

Check at the point of decision, not after

A duplicate invoice found before the payment run costs an edit. Found after, it costs a recovery conversation with a supplier. The same control at two frequencies has two entirely different values.

3

Batch the low value checks

Not everything deserves its own alert. Grouping low hit rate checks into a weekly digest keeps them running without spending the team's attention on them.

4

Escalate on trend, not on instance

One exception is noise. A failure rate that has doubled over three periods is a finding, and it is invisible unless the rate is being recorded.

ChatFin sets frequency per control against measured exposure rather than applying one cadence to a whole framework, which is what makes a monitoring programme affordable to operate for more than two quarters.

In ChatFin

ChatFin sets each control's test frequency against how fast that risk actually moves, rather than running a whole framework on one cadence.

05

Where this underperforms

Three, and the first is the boundary.

This is management activity, not assurance. Monitoring your own controls is not the independent test. Internal audit still tests them, and ChatFin producing the measurement does not change that. See AI for compliance and internal audit.
A control has to be stated to be tested. Where the rule is a shared understanding rather than a written control, writing it down is the first task and no tool substitutes for it.
Hit rate needs history. Ranking exceptions by what has actually been a problem requires outcomes to have been recorded. The first two periods are calibration, not results.
Start with the worked ratio on your current exception list and the population size of your last control test. Those two numbers usually settle whether the programme is operating or nominally running.

Deeper in controls

Where the rest of the control work sits.

Questions controllers ask about monitoring

Why test the full population instead of a sample?

Because a sample gives you a binary and a population gives you a rate. Twenty five clean items prove very little about forty thousand, while a measured failure rate can be trended across periods, which is how a degrading control becomes visible before it fails. ChatFin reports the rate per control per period.

Why do monitoring programmes stop being used?

Volume. They raise more exceptions than the team can work, the backlog grows, people stop opening the list. ChatFin ranks by hit rate on your own history rather than by an abstract severity, separates gaps from anomalies, suppresses accepted recurrences with an expiry date, and caps what is pushed to a working list.

What counts as evidence that a control operated?

The population it covered, the exceptions it raised, who decided each one, when, and on what basis. A screenshot proves the report exists, a signed checklist proves somebody signed. ChatFin produces the pack as a by product of running the control rather than as a reconstruction at year end.

Does continuous mean everything runs daily?

No, and applying one cadence to a whole framework is what makes these programmes unaffordable. Access conflicts change the day someone joins or leaves, so they are a daily check. A chart of accounts structure is honestly quarterly. ChatFin sets frequency per control against measured exposure.

How ChatFin monitors controls

A rate you can trend, and a list people actually work.

ChatFin tests the full population and reports a failure rate per control per period, so degradation is visible before a control fails.

Exceptions are ranked by what has actually been a problem on your data, accepted recurrences are suppressed with an expiry, and the worked ratio is the headline.

Bring your current exception list and last control test.

Book a demo
AM
Ashok Manthena
CEO and co founder, ChatFin

Ashok Manthena is the CEO and co founder of ChatFin, an AI agent platform for enterprise finance that runs across NetSuite, Acumatica, JD Edwards, SAP and Dynamics 365. He works with CFOs and controllers on governed automation of the close, payables, receivables and reporting. Connect on LinkedIn.

Image credits. Header photograph: an overhead view of a team with printed charts and a large screen, sourced from Pexels and used under the Pexels licence.
Section photograph: an overhead view of a team around a table with laptops, sourced from Pexels and used under the Pexels licence.
All images are served from the Pexels content network. No third party product screenshots, vendor logos or licensed media are used on this page.
Get started

Bring your current exception list.

We will run it through ChatFin, rank it by what has actually been a problem, and show you the worked ratio your programme is really achieving.

✓Full population tested, failure rate per period
✓Exceptions ranked by hit rate on your own history
✓Accepted recurrences suppressed with an expiry
✓Evidence produced while the control runs
Request a demo
Confidential & private