Jan – Feb 2025

  • Evals
  • AI Governance

Evals Everyone Can Read

An interpretable and steerable AI governance process for a UK financial institution that risk owners, engineers and approvers could understand. Delivering governed AI creativity for the bank when the eval and governance playbook was being written.

Design Lead

Governance journey
Stage 1

Register the use case and set its risk tier

A pre-screen checklist grades the use case against the organisation's own risk framework.

MModel OwnerOOversight Team
Stage 2

Approve it through the right route

Sign-off follows the tier. A data protection assessment must be attached before it can progress.

OOversight TeamAAI Council
Stage 3

Evaluate it and watch for breaches

Monitors with metrics picked for the type of use case: summarisation, retrieval or code.

SAI EngineerMQA Analyst
Stage 4

Raise an issue and route it to an owner

Every breach can become an issue with a priority, sent back to the person accountable.

MAI Ops LeadMModel Owner
Risk & Controls workstreamModel Monitoring workstreamOne platform, watsonx.governance

The governance journey from the final playback.

Every AI feature a bank launches needs someone to decide what good looks like, check it before launch, and keep checking once customers are using it. At a major UK financial institution, that process was well defined on paper but in practice it lived across many separate tools, and the people responsible for it didn't align on the process. I led design on a four-week IBM proof of concept that brought the whole governance lifecycle into one place: risk intake, approval, evaluation, monitoring and issue management. My role was to orientate the process towards usable, steerable and understandable evals for multiple users.

Project Overview

Problem

The organisation had a clear AI risk framework and a growing queue of AI use cases, with more arriving every month (this was January 2025 - where every company was rapidly developing their AI use cases and deplyments). The framework was carried out through disconnected tools, so no one could see risk across a model's whole lifecycle, and there was no repeatable way to take on more use cases without adding more reviewers.

What I designed

The end-to-end governance journey for eight different roles, from a model owner registering a new use case to an AI ops lead raising an issue when a live metric breaches. I ran the discovery workshops, wrote the user stories, designed the in-platform flows and translated the evaluation metrics into questions each role could act on.

Key insight

An eval only governs anything if the person accountable can read it. The metrics already existed and the core design work was translation: turning faithfulness scores and code parsers into plain questions, and showing people exactly where each check was incorrect.

Impact

  • End-to-end governance loop designed and demonstrated in 4 weeks
  • 8 roles mapped onto one lifecycle across risk and monitoring
  • Risk pre-screen moved into the platform, ready for every new use case
  • Evaluation shown for summarisation, retrieval and code generation, plus an approach for agents
  • The client moved the process toward production

The Challenge

Governance in a regulated organisation is a chain of decisions, a deep log of processes, and each link belongs to someone with a different question. Remember, this was early 2025, governance standards for AI were evolving rapidly, and there were no strong playbooks for preparedness.

The development of early vibe coding tooling and code-assistants were increasing the creation of internal applications by 50%, so a governance process that could scale and also deliver innovation and rolled out usage was also integral.

  • Model ownerWhat do I have to do before my use case can launch?
  • Oversight teamHow risky is this use case?
  • AI councilWhat has this use case been through before it reached me?
  • AI engineerWhich metric failed, and why?

Each of them was working from a different tool, system or platform to organise growing AI use cases. None of the roles could follow a use case from idea to production, and the process couldn't stretch to match the rate at which new AI use cases were arriving.

The brief was to show that one platform could represent the existing process faithfully, govern every kind of AI the organisation used (built in house, bought, or built on top of a vendor's model), and give every stakeholder the same view of it.

Eight Roles, One Lifecycle

We started with workshops alongside the client's risk, controls and model monitoring teams. Instead of a feature list, we agreed what success would look like, written as opportunity statements: if we provide this, we'll know we've arrived when that happens. I wrote the user stories each sprint was measured against from those sessions.

Risk & Controls

If we provide

  • A pre-screen checklist that sets the risk tier
  • Approval that changes with the tier
  • An end-to-end proposal workflow

We'll know we've arrived when

  • The existing pre-screen journey is automated and simpler
  • A user can walk through the whole workflow in one place

Model Monitoring

If we provide

  • Monitoring for each type of use case, with metrics chosen by type
  • Lifecycle and version tracking
  • Model documentation in the same place

We'll know we've arrived when

  • The monitoring team has a fuller view than it has today
  • Each type of metric maps to a governance requirement (stretch)

From the workshops I built eight personas across the two workstreams. Each demo in the playback was told through them, so a risk director and an AI engineer followed the same story.

Risk & Controls

MMichaelModel Owner
OOllieOversight Team
AAmyAI Council Member
AAliData Analyst
VVickyModel Moderator

Model Monitoring

SShirleyAI Engineer
MMaryQA Analyst
MMarcusAI Ops Lead

“I want a step-by-step process for risk and controls inside the platform, so I know my use case meets compliance requirements before it's deployed.”

User story for the Model Owner, written from the discovery workshops

Designing the Loop ∞

The journey became four stages. Each is owned by a named role and ends in something the next person can pick up.

  1. 01

    Intake that sets the risk tier

    MModel OwnerOOversight Team

    The organisation's pre-screen questionnaire became a structured flow inside the platform. A model owner completes it when registering a use case, and the answers set the risk tier using the organisation's own grading framework. Putting it first meant every use case arrived with a tier attached, instead of being graded later from a separate document.

  2. 02

    Approval that follows the tier

    OOversight TeamAAI Council

    Different tiers need different sign-off and have different levels of risk. Higher-risk use cases route to the AI council, and the workflow can't progress until a data protection impact assessment from an external system is attached. Comments and decisions stay on the use case, so the council sees its full history in one place.

  3. 03

    Evaluation matched to the use case

    SAI EngineerMQA Analyst

    A summariser, a retrieval assistant and a code generator fail in different ways, so each type got its own monitor with metrics picked for it, instead of one generic quality score. When the business asked for a new type of use case, an engineer could add custom metrics to an existing monitor.

  4. 04

    From breach to issue

    MAI Ops LeadMModel Owner

    The monitoring view answers one question before any other: which metrics are in breach? From a breach, an engineer or ops lead raises an issue with a priority and a type, and it routes back to the model owner who is accountable for the fix.

    Here's a look at some of the initial metrics from our RAG use case.

    Category and severity come first, so people see what is wrong before they dig into why.

Making Evals Legible

Most people in this loop would never open an evaluation notebook. For every metric I asked two things: what question does this answer, and who is asking it? Then I worked across the engineers, QA and risk teams until each answer made sense to all of them.

</> Code generation: three questions, three graders

We catalogued eight candidate metrics for generated code, from parse checks to prompt repetition. For the demo we narrowed them to three, and I wrote each as the question a reviewer would actually ask.

  • Is it valid code for the language?Parsable
  • Is it maintainable, or too verbose and complex?Cognitive complexity
  • How similar is it to a known-good answer?Similarity to reference (CodeBERT)

Then we ran them against pairs of good and bad code, so the audience could see what each grader catches and what it misses. The simplified Python examples below illustrate validity, complexity and output differences. The verdicts are illustrative, not measured on the actual CodeBERT scores that we used.

code_evaluation / example_01
Reference
def add_numbers(a, b):
    return a + b
Generated
def add_numbers(a, b):
    return a - b
Valid codePass
ComplexityPass
Matches referenceFail

Subtly wrong.

For inputs 2 and 3, the reference returns 5.
The generated code returns −1.
Valid syntax does not guarantee a correct answer.

code_evaluation / example_02
Reference
def sort_list(lst):
    return sorted(lst)
Generated
def sort_list(nums):
  for i in range(len(nums)):
    for j in range(i+1, len(nums)):
      if nums[i] > nums[j]:
        nums[i], nums[j] = (
            nums[j], nums[i]
        )
  return nums
Valid codePass
ComplexityFail
Matches referencePass

Correct output, more complexity.

Both return a sorted list.
Nested loops and a conditional make the generated version harder to follow.
Output comparison alone misses that. It also changes the input list in place.

No single grader caught every failure. The useful unit is a panel of graders, each with a failure it is known to catch, and a view that shows which one fired.

Agents: a second model as the judge (LLM-as-a-judge)

For retrieval assistants and agents, we used a second model which acted as the judge. It scores the relationships between the question, what the system retrieved and the answer it gave, with similarity to a ground-truth answer added where one exists. I paired each judge with a worked example, so people saw a failure before they saw a score.

Tool context relevance

Did the tools fetch something relevant to the question?

QuestionWho is running the Gen AI training in lecture room 7 next week?
ToolWeb search
Retrieved“There are many AI courses running next week.”
FailThe wrong tool produced the wrong context.

Faithfulness

Does the answer stick to what was retrieved?

RetrievedA list of holiday cottages in two UK regions.
ToolWeb search
Answer“Sorry, I could not find any holiday information in the UK.”
FailThe context was right. The answer ignored it.

Answer relevance

Does the answer address the question that was asked?

QuestionA multi-step sports statistics question needing lookups and arithmetic.
ToolsWeb search, retrieval database, Python, calculator
AnswerA combined total and an average, both on topic.
PassFour tools chained, and the question answered.

Why It Had to Be Automated

The organisation planned to add new AI use cases every month, and every one produces output that someone has to review. If people review everything, the headcount needed grows with each launch. This was 2025 and only the beginning of scaling valuable AI use cases internally.

Automated monitors change that job and graders did the first pass, and reviewers spend their time on high-risk cases instead of reading every output. That became the core of the value case we played back. Where we wanted to catch serious cases with the staff already in place, miss fewer high-risk ones, and launch each new use case sooner.

What I'd Do Differently

This was early 2025 and there wasn't any existing established patterns for evals or AI Governance. I've since spent my time building agents and the evaluations around them, and four things stand out.

  1. Start from the rubric, not the metric

    We began with a catalogue of metrics and worked backwards to the questions they answered. In future, I'd run it the other way and get a reviewer writes what good looks like in plain English, and that becomes the grader. Every new metric in our flow still went through an engineer. The people who know what good looks like should be able to write the check themselves.

  2. Close the loop

    Our journey ended when an issue was raised. A fix should ship with the grader that proves it worked, and that grader should re-run whenever the model underneath changes. Without that, a model upgrade can quietly undo last month's fix.

  3. Put the transcript behind every red warning

    The breach view told people where something failed and it didn't show them what the model said. The finding is usually in the transcript, including the failures no metric was designed to catch.

  4. Evaluate the decision as well as the answer

    In the agent example, the failure began when the agent chose web search for a question it could never answer that way. That choice is shaped by a few lines of tool description and toolcalls had only just started to come into the flow.

Then
Metric catalogue→Monitor→Breach→Issue raised→Ends
Now
Plain-English rubric→Grader→Breach→Transcript→Fix→Grader proves the fix→Rerun on the next model ↺

Impact

4 WeeksFrom kickoff to final playback, in four sprints
8Roles designed into one governance lifecycle
3Use case types evaluated: summarisation, retrieval and code
16People on the team across four workstreams
Before

A clear risk framework carried out across disconnected tools with no shared view of a use case's lifecycle, and no repeatable way to scale review as new use cases arrived.

After

One platform holding the whole loop with a pre-screen that sets the risk tier, approval that follows it, monitors matched to each type of use case, a breach view and issue routing. Demonstrated end to end, with the pre-screen ready for any new use case.

Wider impact

The client moved the governance process toward production and accelerated their ability to build quickly, deliver scalable internal AI experiments and have solid evals for the use cases. The personas and journey gave risk leaders and engineers one shared picture of the process to build from.

What I Took From This

With little wider governance process or framework in place, this project highlighted how important strong evals, a rigid process and metrics were for use cases. If you get that wrong at an organisation of this scale, then you're slowing down your own innovation and internal AI development lifecycle.

The same holds for the prompts behind any AI product. A system prompt, a tool description or a formatting instruction is only as trustworthy as the eval that checks it, and only as improvable as that eval is readable. The evals that matter most are the ones the accountable people can read, interpret, validate and understand.

This project sits between Cora+, where I learned that aggregate scores hide failures for specific groups of users, and Flint, where I built validation into the product itself.

watsonx.governance · LLM-as-judge · RAG evaluation · Code evaluation · Agent evaluation · Risk tiering · Feb 2025

Other case studies

Pause animation
AllAgentsGenerative AIResearch
2026Relay — Supervision interfaces for AI agents2025Flint — Vibe coding platform2025Webglide — Computer-using agents2023NatWest’s Cora+ — Generative AI2024Dynamic Quantum Optimisation — IBM QuantumIBMAI Incubation2024AI-assisted email triage — UK Government
View all projects ↗
Benjamin Woodmansee is an AI product designer working on frontier AI systems including agent interfaces, computer-using agents, generative AI tools, developer platforms, and human-AI interaction design.