Simulated portfolio. Everything here is a simulated case study using synthetic data about a fictional company. It is not client work, a real audit, a certification or an assurance opinion.
ASSURANCE: GRC, IT audit, technology risk

Case studies / AI audit analytics

Simulated case study: fictional company (Northstar Financial Technologies), synthetic data, no real audit or client.

5. AI-assisted audit evidence review and continuous controls monitoring

On 108 held-out cases the rules-plus-mock pipeline found 40 of 43 labelled exceptions (recall 0.93); it sent all 18 ambiguous or contradictory cases to a human. The model is a mock, so this tests the method, not any real AI.

Simulated. Simulated case study: fictional company (Northstar Financial Technologies), synthetic data, no real audit or client. Findings, people, vendors and metrics on this page are invented. Nothing here is a real audit result or an assurance opinion.
Diagram: AI-assisted evidence review architecture
Pipeline in which deterministic rules and a mock model both examine synthetic evidence, output is schema-validated, a human decides, and every step is logged.

Why it matters to the business

The business context. Assurance work is mostly reading evidence: is this access review for the right period, was this change approved before it went live, does this screenshot relate to the control at all? Even the small audit in case study 1 involved 31 evidence items and 71 exception records to trace. Reviewers' attention is the scarce resource, and automation that can handle the repetitive checks is attractive to every audit and compliance leader.

What is at stake. Adopting AI badly is as risky as ignoring it. A tool that suggests conclusions with confidence can be wrong, can be manipulated by the text it reads, and can lead reviewers to stop checking. Sending evidence to an external model also raises privacy questions. The responsible position is neither enthusiasm nor refusal but measurement: what does it get right, where does it fail, and does it know when it is unsure?

Who relies on the work. An audit manager decides whether any of this enters a methodology. Reviewers would use it daily. The Privacy Officer would have to approve any data leaving the company, and the Chief Risk Officer would want evidence, not enthusiasm.

What the business needs from this work.

  • Deterministic checks kept separate from AI suggestions and from the reviewer's conclusion, so each can be audited.
  • A human who decides every case, and a log of what was suggested, what was decided and which version of the rules and model produced it.
  • A fair evaluation on cases the tool was not built on, reported with its limits, instead of a single impressive number.

What this shows about how I work. It builds the pipeline, evaluates it on held-out cases, and reports the uncomfortable parts: the model is a mock, the scores are optimistic, and reviewer acceptance was never measured. Candour about limits is what makes analytics credible in an audit setting.

Approach

Deterministic rules examine the structured record. A second step reads the free-text snippet, extracts fields and proposes a label with a confidence value and a rationale. The model output must pass a strict JSON schema; anything malformed is rejected. Rules and AI results are stored separately and a human reviewer accepts, corrects or rejects each case. Every run writes a hashed audit log with prompt, rules and model versions.

The "model" is a mock. It is a set of regular expressions and keywords, not a language model. No API key is needed and no network call is made. A live adapter exists but is switched off by default, needs three settings and a command-line flag, and was only tested against a stub.

What is automated, and what is not

Automation here means scripts that run the same way every time on synthetic data. It is not a live connection to any real system. The table separates what a script does from what still needs judgement.

Automation in this case study (simulated, synthetic data)
What is automatedHowWhere in the repositoryWhat a person still does
Deterministic evidence checksRules examine dates, periods, roles, duplicates and malformed values on every casesrc/evidence_review/rules.pyDeciding which rules the control needs
Field extraction and classification (advisory)A mock model, made of keyword and pattern rules, reads each snippet. A live model could be plugged in, but is off by defaultsrc/evidence_review/mock_model.py, adapter.pyEvery final decision: accept, correct or reject
Validation and audit trailOutput must pass a JSON schema; each run writes a hashed log of inputs, outputs and versionssrc/evidence_review/schema.py, pipeline.pyReading the log when something looks wrong
EvaluationHeld-out accuracy, with confidence intervals, for three variants on 108 casessrc/evidence_review/evaluate.pyDeciding whether the results justify any real use
Continuous monitoring (simulated)3 daily rules over a 31-day simulated feed, with exception tracking and simulated alertssrc/ccm/Triaging alerts; tuning rules to limit false alarms

Re-run it. bash scripts/build_all.sh rebuilds everything from the synthetic data in 22 steps and runs 92 automated tests. The single script is named in each row.

New: the continuous controls monitoring demo shows daily re-performance of three audit tests, with alerts and escalation. It is a replay of a simulated feed, not a live service.

Held-out results

A 44-case development set was used while building the mock. A separate 108-case held-out set (different seed) was run once; labels were set before the run. Distribution: 43 exception, 35 no exception, 18 needs review, 12 not relevant.

Variants on the held-out set
VariantPrecisionRecallF1False-positive rateAbstention (all cases)
Rules only0.940.70 (95% CI 0.55 to 0.81)0.800.0570.33
Mock model alone0.950.95 (95% CI 0.84 to 0.99)0.950.0570.08
Rules + mock (assisted)0.950.93 (95% CI 0.81 to 0.98)0.940.0570.19

The assisted pipeline correctly abstained on all 18 ambiguous or contradictory cases, and rules alone could not tell that 12 snippets were unrelated evidence. The mock model alone scored slightly higher on exceptions (recall 0.95 against 0.93), so adding structured data helped mainly on contradictions. The recall confidence intervals for rules-only and assisted overlap at this sample size.

Open the reviewer queue   Read the evaluation report

What a team would do next

Run a real model on real (permitted) evidence under a privacy review, measure reviewer acceptance and correction rates with several reviewers, and only then judge value. Those measurements do not exist here: every case has reviewer decision "Pending: no human review performed", and no efficiency or quality claim is made.

Limitations: why these numbers are optimistic

  • The corpus and the mock were written by the same person from related templates, so the mock fits the corpus.
  • Part of the advantage of combining sources is by design: some cases were built so the text reveals what the structured data hides.
  • Labels are the author's judgement and the irrelevant-evidence cases are easy.
  • Two post-run fixes were made and logged in the change log: a crash on malformed dates and a metric definition.
  • Prompt injection, data leakage and over-reliance are treated in the threat table of the README.

Downloads

Every file below is generated by this repository's scripts and listed in the download index.

Sources

  • S018: Artificial Intelligence Risk Management Framework (AI RMF 1.0), NIST AI 100-1 (NIST), verified

See the full source register.

← AI governance · Dashboard