Audit · Jira · AI build

Auditlab: 70 hours of audit work a month, moved to a supervised query engine

Auditlab is an audit client whose auditors ask questions of accounting data that arrives as database export files. I built an engine that reads each export, works out its structure and answers a plain-language question inside Jira. Auditors get 70 hours a month back, and each answer can be traced.

Result70 hof audit work saved per month
ContextAudit firms
ServiceAI agents & systems →
InAuditor’s plain-language question
EngineTurned into SQL
DataClient’s accounting export
OutAnswer inside Jira, with audit trail kept

Key takeaways

  • The saving is 70 hours of audit work a month, measured on the client’s side.
  • The model never gets full direct access to the client’s tables and never trains on the data.
  • Auditors ask and read the answer in Jira, through a Forge interface, so nobody learns a new tool.
  • Complex questions go back to the auditor for confirmation before a query runs.

01The gap: every question began with an import

An export from a client’s accounting system is complete and awkward at once. Before an auditor could ask anything of it, somebody had to work out the file layout, get the data into a tool that could query it, and write the query. The auditing judgment came last, after the plumbing.

The engagement started with a requirement analysis, the same step an AI Readiness Audit formalises today: which questions auditors ask most, where the hours go, and what a regulator would want to see afterwards.

02The build: an inference engine behind a Forge interface

One question now travels this path, and the auditor only sees the two ends of it:

  1. Export files arrive
  2. Engine reads format and structure
  3. Data lands in a queryable database
  4. Auditor asks in Jira
  5. Question becomes SQL
  6. Result returns in Jira

The Jira side is a Forge app, so the question and its answer sit on the ticket the audit already runs on. The engine behind it does the work that used to take a specialist: reading the files, understanding how the tables relate, loading them, and translating the question.

03The number that moved

70 hours a month

of audit work saved, with traceability of the audit built in.

Auditlab · audit

Most of those hours were preparation, the part of the job that produced no finding. The auditors still spend the same care on what the answer means.

04What stayed human at Auditlab

  • The auditor decides what to ask and what the answer means for the audit.
  • A complex query is discussed with the agent and confirmed by the auditor before it runs.
  • Where the data may be processed follows the regulation Auditlab’s customers fall under, and a person set that, not the model.

Around those decisions sit the controls from Supervised AI Delivery: no training on the data, no full direct table access for the model, and guardrails that stop a runaway query from burning tokens.

05What was handed over

The log holds each question, its SQL and what came back, which is what makes the engine usable in an audit file at all. Ownership was settled in the engagement agreement, as it is on every build. The engine was made for Auditlab and is not a product I resell.

Questions

Can I buy this engine for my firm?
No. It was built for Auditlab. What I can do is run the same kind of engagement on your process, starting with the audit, and build what your data and your rules call for.
Does the model see the client’s accounting data?
It sees capped query results, not the tables. The engine runs the SQL and passes back only what the question needs.
Why Jira and not a separate app?
Because the audit already ran in Jira. Putting the answer on the ticket keeps the question, the query and the result next to the work they belong to.

If your team spends its first hours on every engagement preparing data instead of examining it, bring one such process to a call.