Cadence
Learn

How the AI is evaluated

A language model is non-deterministic: the same prompt can return different answers. In a regulated lending context that is a liability, so the two things the model does — categorise transactions and explain the decision — are each measured against explicit standards before and after release.

Why

Evaluations are the guardrails, not a nice-to-have

The model is a variable, not a fixture

The prompt, the model, and the context are knobs. Evaluations are how you turn those knobs with evidence — swapping to a cheaper model, or tightening a prompt — instead of guessing and hoping the demo held.

A regulated domain is unforgiving

A wrong figure or a stray recommendation is not a cosmetic bug here. The checks below exist so that behaviour is enforced and demonstrable, not left to the model's good mood on the day.
Scope

Two surfaces are evaluated — the decision is not one of them

The credit decision is deterministic code over the categorised totals. It is not a model output, so it is not evaluated as one. Only the two places a model actually speaks are held to these standards.

The categoriser

Reads each raw transaction and labels it — category, plus income, recurrence and obligation flags. This is perception: it turns noisy statement text into structured signal the engine can sum.

The rationale

Puts the computed decision into plain language for a loan officer. Every sentence must follow from figures the engine already produced — it explains the decision, it never makes one.
Method

Three ways to run a check

Each check is run in the cheapest way that fits it. Definitive things are code; subjective things are a model acting as judge; the hardest calls are human. Most robust systems are a hybrid of all three.

Code

Deterministic, cheap, exact. Used where the answer is definitive — a figure that must trace to a source, a banned phrase, a length band. Runs with no model and no API key.

LLM-as-judge

A separate, more capable model scores the subjective dimensions — relevance, balance, tone — that code cannot. It returns a pass/fail, a 1–5 score, and a written reason.

Human

A subject-matter reviewer for new features, calibration, and the cases the automated layers flag. Costly and slow, so reserved for where judgement genuinely matters.
Live today

The categoriser eval, measured against an independent ground truth

The labelled set is produced by a generator that assigns each transaction its true label at creation time — before the model sees anything. The score is agreement with labels the model had no hand in writing, not the model marking its own work.

What is measured

The categoriser runs over a synthetic set drawn from eight personas plus fourteen hand-authored hard cases — the deliberately ambiguous lines where a naïve rule would slip. It is scored on overall accuracy, per-category precision and recall, and a full confusion matrix, with a deterministic offline harness that fails the build if intended outcomes regress.

By design

The rationale eval — what the explanation is held to

These dimensions define the standard the rationale must meet. Compliance, groundedness and outcome-faithfulness are hard gates: a breach blocks release. The judged dimensions are advisory. This is the design the checks implement.

GroundednessCodeHard gateEvery figure in the text must trace back to the decision package — allowing for rounding and derived values such as debt-to-income. A fabricated number fails.
Outcome faithfulnessCodeHard gateThe outcome the text states must match the outcome the engine computed. A rationale cannot narrate an approval over a decline.
ComplianceCode + judgeHard gateNo advice, no recommendation to lend or decline, no reasoning from protected attributes. A curated deny-list gates it; the judge adds a second pass for paraphrased advice.
CompletenessCodeGateThe rule that actually drove the outcome has to appear in the explanation — a decline on affordability must say so.
StructureCodeGateA readable length band, and the core affordability figures — income and what remains after costs — must be present.
Relevance · balance · toneLLM-as-judgeInformationalIs it clear, does it weigh both sides fairly, is it professional? Scored 1–5 with a reason. Advisory, not blocking.
Cadence

Offline before release, online after

Evaluations are not run once. They gate every release and then keep watching production.

Offline — the release gate

Run before a release over the full labelled set. The hard gates block deployment on a breach; the rest is a scoreboard the team hill-climbs. These evals double as the specification: they state, precisely, how the feature is expected to behave.

Online — the standing watch

In production a system samples real traffic, tracks latency and feedback, and watches for drift as the world moves under the model. Failures found here flow back into the labelled set, so the offline gate gets stricter over time. This layer is the roadmap, not yet wired here.
Honesty

What these numbers do and do not prove

Synthetic personas measure consistency against a known generator, not absolute truth — an easier target than the genuine ambiguity of real statements. A deny-list catches the obvious compliance breaches but is a floor, not a ceiling; paraphrased advice is why a judge sits behind it. And the offline gate proves the deterministic path and the checks themselves are sound — it does not, on its own, certify the live model's every answer.

A production system would add human-reviewed labels from real data with inter-rater agreement, and the online layer above. This demo is explicit about which of those it does today and which it does not.

Next
The affordability engine