This is a sample report. Start your own assessment below. Start Your Assessment →
← All use cases
Public sector & municipalities

A monthly variance report for councillors, generated straight from the ledger.

What the audit checks

The report gets assembled by hand in Excel a couple of days before the council meets. The audit checks whether the data can be reached programmatically, what the risk is on a number that goes public, and whether this needs AI at all or just a plain script.

Self-Audit Assessment Report

Budget versus actual spending

01 Jan 2026

01/Recommendation
Recommended path

Traditional Code

A lightweight script pipeline to extract and reconcile ledger data will cut routine effort by 60 percent while keeping human sign-off where public accountability demands it.

The monthly variance report is a well-defined, rules-based extraction and reconciliation task that runs on a fixed schedule with a hard deadline. The data sources are known, the output format is stable, and the main cost is manual assembly time rather than complex decision-making. A traditional code approach, using a scheduled script to pull ledger data, calculate variances, and pre-populate the Excel template, is the right fit: it is proportionate to the volume, avoids procurement complexity, and can be built and maintained by a competent developer without specialist AI tooling. The client has no stated tech stack preference and operates under central IT constraints, so a simple Python or similar script that works with existing file formats and open-data endpoints is the most deployable option. Human review of exceptions and final sign-off by the department head is preserved, which is essential given the public accountability and appeal requirements.

The client has no preferred tech stack and is constrained by central IT procurement rules, so a lightweight Python script using standard libraries (openpyxl, pandas, requests for open-data endpoints) requires no new procurement and can be handed to central IT for hosting on existing infrastructure.

02/Process Overview

Process Overview

The monthly budget versus actual spending report is a recurring financial governance task produced by a department head and two case officers ahead of each council meeting. The process runs twelve times a year and currently takes around seven hours per cycle. Its purpose is to give councillors a clear picture of where actual spending stands against the approved budget, drawn from the general ledger and a handful of supporting data sources.

Each cycle begins when the council meeting date approaches. A case officer manually pulls data from the general ledger and fills gaps through email exchanges and separate spreadsheets. All of this material is then consolidated by hand in Excel, variances are calculated, and narrative commentary is added to explain significant deviations. The department head reviews the assembled report, approves it, and passes it to councillors before the meeting. The output must be accurate, auditable, and defensible under administrative procedure law, including the possibility of appeal.

The process is well understood and follows a consistent structure each month, but it carries real compliance weight. Decisions about which variances are material, how to handle upstream data errors, and whether anything needs escalation before publication all require human judgement. Those judgement calls will remain with the department head regardless of how the routine assembly work is automated.

03/Path Scores

Path Scores

Traditional Code Recommended
8/10

The process is rules-based, the data sources are known, and the output format is fixed. A scheduled script that extracts ledger data, calculates variances, and pre-populates the report template eliminates the bulk of manual assembly effort. It is proportionate to the volume of 12 runs per year, requires no specialist AI tooling, and fits within central IT constraints.

AI Agent + human review
7/10

A hybrid approach formalises what the recommended script already implies: automated data assembly followed by a structured human review step for exceptions and sign-off. This is essentially the recommended path with an explicit workflow gate added, which is worth considering if the team wants a documented audit trail for the review step. The added complexity is modest but may not be necessary given the small team size.

RPA
5/10

RPA could automate the screen-level interactions needed to pull data from systems that lack APIs, which is relevant here given the fragmented data landscape. However, the maintenance burden of UI-based bots in a slow-moving central IT environment is a real risk, and a direct script approach is simpler if even basic data exports are available. RPA is a fallback if programmatic data access proves impossible.

AI Workflow Not recommended
4/10

An AI workflow adds value where data is unstructured or narrative generation is the bottleneck. Here the core task is numerical reconciliation from structured ledger data, and the compliance requirement that decisions be justifiable on file makes AI-generated variance commentary a liability rather than an asset. The overhead is not warranted at 12 runs per year.

Education (AIRIES) Not recommended
4/10

Training alone would not remove the manual assembly burden, which is the primary pain point. Education is valuable as a complement to the recommended path so the team can maintain and improve the script, but it is not sufficient on its own to solve the problem.

AI Agent Not recommended
2/10

An autonomous AI agent is disproportionate for a monthly, low-volume, structured numerical report in a public-sector compliance environment. The accountability requirements mean a human must remain in the loop for every output, which negates the core benefit of an autonomous agent.

Stay Manual Not recommended
2/10

The current manual process consumes roughly 84 hours per year, carries rework risk from upstream data errors, and depends on tacit knowledge held by two or three people. Staying manual is not justified when a straightforward script can handle the routine assembly reliably.

04/Process Dimensions

Process Dimensions

Eight dimensions drive the recommendation, scored 0–10 with a note on each.

Data Structure 7/10

Ledger data is inherently structured and numerical; the main challenge is that no single system holds everything, requiring consolidation from multiple sources.

Rule Clarity 7/10

The variance calculation rules are clear and stable; the ambiguity lies in which variances require narrative judgement, not in the arithmetic itself.

Exception Frequency 4/10

The client states that almost every run has something unusual, meaning exceptions are the norm rather than the edge case, which limits how much can be fully automated.

Integration Readiness 4/10

Central IT is slow to change and procurement rules add friction; some open-data registers are accessible, but full programmatic access to the ledger is unconfirmed.

Volume / ROI 4/10

At 12 runs per year the volume is low, but each run is high-effort and high-stakes, so even modest automation of routine assembly delivers meaningful savings.

Process Stability 6/10

The report format and council calendar are stable, reducing the risk that automation will need frequent rework to keep up with process changes.

Human Judgment Required 6/10

Material variance assessment, narrative writing, and final sign-off require human judgement and must remain with the department head given public accountability obligations.

Compliance Requirements 8/10

Administrative procedure law, publication duties, GDPR, and the requirement that decisions survive appeal all demand a clear, auditable human sign-off on every output.

05/ROI Estimate

ROI Estimate

£3,150

Current annual cost

60%

Estimated time saved

£1,890

Annual savings

24mo

Payback period

Build cost estimate: £2,500 – £6,000

Current annual cost is based on 12 runs times 420 minutes per run at GBP 45 per hour, giving GBP 3,150 per year. The 60 percent saving estimate reflects automation of routine data assembly while retaining human time for exception review and sign-off; payback is estimated at around 24 months at the low build cost, reflecting the modest annual volume.

06/Implementation Roadmap

Implementation Roadmap

1
Data access audit 1-2 weeks

Map every data source used in the current report and confirm which can be accessed programmatically (ledger export, open-data endpoints, shared drives). Identify any sources that require RPA or manual intervention as a fallback. This step is the critical dependency for everything that follows.

2
Script prototype for data extraction and variance calculation 2-3 weeks

Build a Python script that pulls confirmed data sources, calculates budget versus actual variances, and writes results into the existing Excel template. Focus on the routine cases first; flag rows that fall outside defined thresholds for human review. Effort is low given the structured nature of the data.

3
Exception flagging and review workflow 1-2 weeks

Add logic to classify variances by materiality threshold and produce a short exception list for the department head. Define the handover point clearly so the human reviewer knows exactly what the script has done and what still needs judgement. Document the logic so it can be audited.

4
Parallel run and validation 2 months

Run the script alongside the manual process for two consecutive reporting cycles. Compare outputs, capture any discrepancies, and refine the extraction and calculation logic. This builds confidence with the team and satisfies the audit trail requirement before going live.

5
Handover to central IT and documentation 1-2 weeks

Package the script with clear documentation, a maintenance guide, and a log of known edge cases. Hand over to central IT for scheduling and hosting. Train the two case officers to monitor outputs and handle the exception review step independently.

07/Risks & Considerations

Risks & Considerations

The biggest risk is incomplete data access: if the ledger or any key source cannot be reached programmatically, the script will cover only part of the process and the team may end up maintaining both the script and a residual manual step, increasing rather than reducing complexity. A thorough data access audit before any build work is essential. Central IT's slow change cycle also means that if the script needs a dependency update or a new data connection, turnaround time could be weeks, so the script should be designed to degrade gracefully and alert the team rather than fail silently.

On the compliance side, the script must never be the final decision-maker. Every output must carry a clear record of what was automated and what was reviewed by a named person, so that the file is defensible under administrative procedure law and on appeal. If the exception-flagging thresholds are set too high, material variances could pass through without human review, which is the single highest-consequence failure mode. The department head must retain genuine oversight, not just a rubber-stamp step at the end.

AIRIES/Learning recommendation

Train the team, not just the tool.

In partnership with AIRIES, the Swiss AI learning platform. These levels fit your result.

Recommended levels
  1. 3
    Corporate Applied Intelligence & Automation
    Turn your own tasks into AI workflows, build reports and dashboards, set up a personal AI assistant.
  2. 5
    AI for Strategy & Operations
    Optimise operations, forecast, and automate KPIs and executive reporting.
Why these levels

The two case officers and the department head will need to understand how to configure, monitor, and improve the script pipeline rather than just run it. Level 3 gives them the practical skills to turn their remaining manual tasks into AI-assisted workflows and to build a personal productivity layer around the automated report. Level 5 equips the department head to own the KPI and variance reporting logic, interpret automated outputs confidently, and make the case for further operational improvements to senior leadership.

Focus topics
Who should take it

Both case officers who assemble the report and the department head who signs it off.

Explore these levels on AIRIES → The levels come from the AIRIES course catalogue. Opening the link does not commit you to anything.
08/Architecture Overview

Architecture Overview

flowchart TD A(["Council meeting\napproaching"]) B["Data access\naudit"] C["Script: extract\nledger data"] D["Script: calculate\nvariances"] E{"Exception\nthreshold met?"} F["Flag exceptions\nfor review"] G["Pre-populate\nExcel template"] H["Department head\nreview & sign-off"] I(["Report delivered\nto councillors"]) subgraph External Systems J("General ledger") K("Open-data\nregisters") end A --> B B --> C J --> C K --> C C --> D D --> E E -->|"Yes"| F E -->|"No"| G F --> G G --> H H --> I

Hover to zoom · click for fullscreen

09/Why This Approach

Why This Approach

The core recommendation is Traditional Code: a scheduled Python script that extracts data from the general ledger and any other programmatically accessible sources, calculates the budget versus actual variances, and pre-populates the existing Excel report template. The script handles the mechanical assembly work that currently consumes the bulk of the seven-hour cycle. A human review step for exceptions and a final sign-off by the department head are preserved as explicit handover points, not optional extras.

The case for Traditional Code over the other paths comes down to proportionality and fit. The data involved is structured and numerical. The variance calculation rules are stable and well understood. The output format does not change from month to month. These are the exact conditions under which a well-written script is more reliable, more maintainable, and far easier to audit than any AI-assisted approach. There is no unstructured text to interpret, no ambiguous intent to resolve, and no benefit to machine learning at a volume of twelve runs per year. Adding AI orchestration or an autonomous agent to this process would introduce complexity and explainability risk without solving any problem that actually exists.

The client has no stated technology preference and operates under central IT governance and public-sector procurement rules. That constraint actually makes the Traditional Code path more attractive, not less. A Python script using standard libraries such as pandas, openpyxl, and requests for open-data endpoints requires no new software procurement, no vendor relationship, and no specialist tooling. It can be scheduled on existing infrastructure and handed to central IT as a documented, maintainable asset. Any competent developer can read, modify, and extend it without needing to understand a proprietary platform.

The Hybrid path scored just below the recommended option and deserves an honest mention. In practice, what Hybrid describes is essentially the same as Traditional Code with a more formally documented review gate. The recommended script already flags exceptions for human attention and produces a clear audit trail of what was automated. If the team wants to formalise that handover as a named workflow step with its own log entry, that is a sensible addition and adds almost no build complexity. The distinction between Hybrid and Traditional Code here is mostly a matter of how explicitly the review gate is documented rather than a fundamental architectural difference.

RPA was assessed as viable but not recommended as the primary approach. It becomes relevant only if the ledger or another key source turns out to have no export capability and must be accessed through a user interface. That is a real possibility in a central IT environment where programmatic access is unconfirmed, and the implementation roadmap treats a data access audit as the critical first step for exactly this reason. If that audit reveals that screen-level automation is unavoidable for one or more sources, a targeted RPA component can be added alongside the script without changing the overall architecture. The maintenance burden of UI-based bots should not be underestimated in a slow-moving IT environment, so the goal should be to minimise rather than rely on RPA.

10/Comparing the Top Approaches

Comparing the Top Approaches

Traditional Code scores ahead of the other paths here for a straightforward reason: the core task is structured numerical reconciliation on a fixed monthly schedule, and that is exactly what a scheduled script does well. The data sources are known, the variance calculation rules are stable, and the output format has not changed. There is no ambiguity that would justify reaching for a more sophisticated tool, and at twelve runs per year the volume does not demand one either.

The Hybrid path scores close behind, and it is worth being honest about what that score actually reflects. A well-designed Traditional Code implementation already implies a human review step for exceptions and a department head sign-off before publication. Hybrid as a distinct path would simply formalise that handover with an explicit workflow gate, perhaps a short-form checklist or a structured email handoff, rather than leaving it as an informal step. That formalisation has real value in a compliance environment where the file must be defensible on appeal, but it adds modest complexity for a small team of three people. The recommended approach is to build that structure into the script's exception report rather than introduce a separate workflow tool, keeping the footprint small and the maintenance burden on central IT manageable.

RPA is worth mentioning because it addresses a genuine uncertainty: if the general ledger turns out not to support any form of programmatic data export, screen-level automation may be the only realistic path to removing manual effort. That makes RPA a credible fallback rather than a competing recommendation. AI Workflow and AI Agent score poorly not because AI is inappropriate in principle, but because the compliance requirement that every output be justifiable on file makes AI-generated narrative commentary a liability, and autonomous decision-making is simply incompatible with the public accountability obligations this process carries.

11/How to Build It

How to Build It

The first and most important step is a data access audit, and it needs to happen before any code is written. The team currently pulls data from the general ledger, supporting spreadsheets, email threads, and some open-data registers, but it is not yet confirmed which of those sources can be reached programmatically. A Python script using pandas for tabular manipulation, openpyxl for reading and writing the existing Excel template, and requests for any open-data endpoints that publish JSON or CSV will cover the majority of realistic scenarios without requiring new procurement or specialist infrastructure. The audit maps every source, confirms export formats or API availability, and identifies any stragglers that may need a manual fallback or, in the worst case, a lightweight RPA step to handle a system that only exposes a GUI.

Once data access is confirmed for the main sources, the prototype script pulls the ledger extract, joins it to the budget figures, calculates line-by-line variances, and writes the results directly into the existing Excel template. Keeping the output format unchanged matters: it means the department head and councillors see a familiar document, and it avoids any need for a separate approval process to change the report layout. The script flags rows where the variance exceeds a configurable materiality threshold and writes those flagged rows into a separate exception tab or a short companion summary. That summary is the handover document for the department head: it tells the reviewer exactly what the script has done, which lines need a narrative explanation, and which may indicate upstream data entry errors requiring correction before publication.

Two parallel runs alongside the existing manual process are the right way to build confidence before going live. Running the script in shadow mode for two consecutive monthly cycles lets the case officers compare the automated output against their own assembled figures line by line. Any discrepancies surface edge cases in the extraction logic, such as how the ledger codes certain inter-departmental transfers or how late data from a supporting system should be handled when it arrives after the script has already run. Both issues are solvable, but they are much easier to solve during a parallel run than after the manual process has been retired. A simple log file written by the script on each run, recording source file timestamps, row counts, and any rows skipped due to missing data, creates the audit trail that the compliance requirements demand.

After two successful parallel cycles, the script is packaged with a plain-language maintenance guide, a log of known edge cases and how they are handled, and clear instructions for the two case officers on how to monitor outputs and trigger the exception review. Central IT receives the package for scheduling on existing infrastructure, whether that is a cron job on a server or a scheduled task on a shared Windows environment. The script is designed to fail loudly rather than silently: if a source file is missing or a data connection is unavailable when the script runs, it sends an alert to the case officers rather than producing a partially populated report that might not be noticed until the department head review. That design principle, loud failures over silent ones, is the single most important engineering decision in a low-volume, high-stakes process like this one.

12/Risks in Detail

Risks in Detail

The biggest practical risk is incomplete data access. If the general ledger cannot be exported in a machine-readable format, or if central IT's change process makes even a read-only connection a months-long procurement exercise, the script will automate only a portion of the assembly work. The team could end up maintaining both the script and a residual manual step, which in the worst case adds complexity rather than reducing it. This is why the data access audit is the critical dependency for everything else: if it reveals that programmatic access to the ledger is not feasible in a reasonable timeframe, the recommendation shifts toward RPA for those specific sources, or the project scope is adjusted to automate only the portions that are accessible. Central IT's slow change cycle is a related risk. Even after the script is live, any dependency update, new data connection, or change to the ledger's export format will need to go through the same central process. The script should therefore be written to degrade gracefully, producing a clear alert and a partial output rather than crashing silently, so the team knows immediately when something has changed upstream and can revert to a manual step for that source while a fix is in progress.

On the compliance side, the exception-flagging thresholds carry the highest-consequence failure mode in the entire process. If a materiality threshold is set too high, a significant variance passes through to the councillors without a narrative explanation or an escalation decision, and that gap will be visible in the published document and potentially on appeal. The department head's review must be a genuine exercise of judgement, not a rubber-stamp of a pre-populated template. Every version of the report that goes to councillors should carry a record of who reviewed it, when, and which exceptions were considered, so that the file is defensible under administrative procedure law. The script cannot make that record for a human; it can only make the information available clearly enough that the review is efficient and well-informed. That distinction between automating routine assembly and preserving accountable human decision-making is the line this implementation must not blur.

⚡

Claude Code Starter

A scaffolded project ready to open in Claude Code. Unzip, open the folder, and Claude starts building immediately.

Claude Code Starter (.zip)

Your own assessment includes a ready-to-use project scaffold: CLAUDE.md, pyproject.toml, src/agent.py and .env.example. Open the folder in Claude Code and it starts building.

📁 your-process/
📄 CLAUDE.md
📄 pyproject.toml
📁 src/agent.py
📄 .env.example
Start Your Assessment

What's next?

That was someone else's process. Now do yours.

Same seven paths, same eight dimensions, same honest verdict, except scored against how your team actually works. Five to eight questions, about fifteen minutes.

Start Your Assessment
Public sector & municipalities
Monitoring council minutes and resolutions Chatbot for citizen enquiries Processing tree-felling and public space permits
Illustrative scenario based on how these processes typically run. Not a customer case study. Run this on your own process