Evaluation and observability

Make AI quality a number instead of an opinion

Most teams cannot say how accurate their own AI system is, or whether last week's change helped. We build the evaluation suites, CI gates and production tracing that answer both questions.

  • 3-4 weeks
  • One-week fixed-price audit
  • LangFuse
  • Braintrust
  • Promptfoo

What is evaluation & observability?

LLM evaluation is the practice of scoring an AI system against a fixed set of cases with known correct outcomes, so that every prompt, model or retrieval change can be measured rather than guessed at. Paired with production observability — traces, quality sampling and cost attribution — it is what stops slow, invisible quality decay. It is also the single practice most often skipped, and the reason teams cannot say how accurate their own system is.

Why teams call us

What usually goes wrong before we get involved

Almost every engagement starts from one of these. If none of them sound familiar, you probably do not need us yet.

Quality is discussed anecdotally

Someone tried a handful of prompts and formed an impression. There is no baseline, no per-category breakdown, and no way to settle a disagreement about whether the system is getting better or worse.

Every quality decision becomes a debate rather than a measurement.

Regressions ship silently

A prompt is tweaked, a model version changes underneath you, a retrieval parameter is adjusted. Each change looks fine on the two examples someone checked. Cumulatively the system is measurably worse than at launch, and nobody can identify which change did it.

Quality decays for months before a customer complaint surfaces it.

Provider upgrades get postponed indefinitely

A better or cheaper model ships, but with no way to verify it is safe to switch, the team stays on an ageing version — and eventually gets forced off it by a deprecation notice on the vendor's timeline rather than their own.

Leaves cost savings and capability gains on the table for quarters at a time.

Production behaviour is invisible

Logs capture errors but not quality. Nobody sees that a specific query category has been failing since a document set changed, because it does not throw an exception.

The failures that matter most are the ones that look like successes.

Scope

What evaluation & observability covers

Evaluation set construction

We build a golden dataset from your real historical cases, adjudicated with someone who knows the domain, and structured by case category so scores stay diagnostic rather than aggregate.

  • Cases mined from real transcripts, tickets and records
  • Category breakdown covering the long tail and known-hard cases
  • Expected outcomes adjudicated with your domain experts

Scoring and judge validation

The right scorer per case type, and where a model acts as judge, we validate its agreement with human labels before trusting it.

  • Deterministic scoring for structured and extraction tasks
  • Retrieval metrics scored independently of generation
  • Model-as-judge rubrics validated against human agreement rates

CI integration and regression gates

Evaluation runs on every pull request against a baseline, and a drop beyond threshold blocks the merge — the same discipline you already apply to unit tests.

  • Automated runs on prompt, model and retrieval changes
  • Per-category thresholds with baseline tracking over time
  • Side-by-side comparison reports for model upgrades

Production observability

End-to-end tracing with quality sampling on live traffic, cost and latency attribution per step, and alerting on quality regression rather than only on exceptions.

  • Step-level traces with token, cost and latency attribution
  • Continuous quality sampling on production traffic
  • Alerting on score drift, refusal-rate change and cost anomalies

How it runs

The delivery process

Fixed checkpoints with a named deliverable at each one, so you can stop the engagement at any stage and still own something useful.

  1. Audit and baseline

    Week 1

    We assemble a first evaluation set from your real traffic and measure what your current system actually does, per category.

    You receive: Baseline score report with failure analysis by category.

  2. Suite build and judge validation

    Weeks 2-3

    Expand coverage, implement scorers, and validate any model-as-judge against human labels so the numbers can be trusted.

    You receive: Full evaluation suite with documented scoring methodology and judge agreement rates.

  3. CI and observability wiring

    Weeks 3-4

    Evaluation into your pipeline with regression gates, and tracing plus quality sampling into production.

    You receive: Gated CI pipeline and live observability dashboards.

  4. Handover

    Week 4

    Your team learns to extend the suite, read the dashboards and interpret a regression — because an evaluation suite nobody maintains stops being true within a quarter.

    You receive: Documentation, paired sessions and an owner named for the suite.

What you end up owning

  • Golden evaluation dataset built from your real historical cases
  • Scoring implementation per case type, with judge validation where applicable
  • CI pipeline with per-category regression gates and baseline tracking
  • Production tracing with cost, latency and quality attribution
  • Alerting on quality drift rather than only on errors
  • Documented methodology and a named internal owner

Typical stack

  • LangFuse
  • Braintrust
  • Promptfoo
  • OpenTelemetry
  • Python
  • Grafana

Engagement

Typical timeline
3-4 weeks
Starting at
One-week fixed-price audit
Engagement models
Fixed-price auditEvaluation suite buildOngoing quality retainer

Results

What this typically moves

To a defensible accuracy baseline
1 week
What a quality regression does to a deploy
Blocked
Time to evaluate a new model version
Afternoon

The practice that separates working AI systems from stalled ones

There is one habit that reliably distinguishes teams whose AI systems keep improving from teams whose systems quietly decay: they have a fixed set of cases with known correct answers, and they score against it before every change.

Everything else follows from that. You can compare two prompts. You can evaluate a new model version in an afternoon. You can give a compliance reviewer a number rather than a reassurance. You can detect that a change made things worse before your customers do.

Teams without it are not merely less rigorous — they are structurally unable to improve, because no change can be shown to be an improvement.

Why the cases must come from your own history

Synthetic evaluation cases test the situations you thought of. Your real traffic contains the situations you did not, which is precisely where systems fail.

Support transcripts, resolved tickets, historical documents, completed applications — these are labelled datasets that already exist inside your company. Turning a few hundred of them into an evaluation set takes roughly a week of adjudication with someone who knows the process. Include the awkward ones. Include the ones a human got wrong, labelled with what the right answer was.

Synthetic cases still have a place: they cover rare paths that history is too thin on. They are the supplement, not the foundation.

Judge validation, or you are measuring nothing

For open-ended output, scoring usually means asking a model to grade the answer against a rubric. This works, and it is easy to do badly.

An unvalidated judge produces confident numbers that correlate with nothing. Before trusting one, we have humans label a sample, measure the judge’s agreement with those labels, and iterate on the rubric until agreement is high enough to be useful. If the judge disagrees with your experts, the rubric is wrong — and until that is fixed, the score is one model’s opinion of another model’s output.

Gate the deploy

Evaluation that runs manually gets skipped under deadline pressure. The version that survives contact with a real team runs automatically on every pull request and blocks the merge when a category score drops beyond threshold.

This is not a novel idea — it is exactly how you already treat unit tests. The only reason AI changes are commonly exempt is that the tooling arrived later.

Then watch production, because it drifts

An evaluation suite reflects the traffic that existed when it was built. Six months later, real usage has moved: new question types, changed documents, different user behaviour.

So live traffic gets sampled and scored continuously, and the drift feeds back into the suite. The alerting that matters is on score drift and refusal-rate change, not on exceptions — because the failures that hurt most are the ones that return a perfectly well-formed wrong answer.

Frequently asked questions

What actually goes into an LLM evaluation suite?
A fixed set of input cases with expected outcomes, a scoring method per case type, and a threshold that defines pass or fail. Scoring methods vary by what you are checking: exact match or schema validation for structured extraction, retrieval metrics for grounding, and a validated model-as-judge rubric for open-ended text quality. The suite runs on every change and reports a score per category rather than one aggregate number, because an average hides the regression you care about.
How do we build an evaluation set if we have no labelled data?
From your history. Support transcripts, resolved tickets, past documents, completed cases — these are labelled data, just not formatted as such. Adjudicating a few hundred of them with someone who knows the process usually takes about a week and is the highest-return week in the project. Synthetic cases are a supplement for coverage of rare paths, never the foundation.
How do we know a new model version is actually better?
You run both against the same evaluation suite and compare scores per category, including cost and latency. This is the routine question that teams without an evaluation set cannot answer, so they either upgrade blind or postpone indefinitely. With a suite, a provider release becomes an afternoon of testing and a decision backed by numbers.
Is it worth auditing an AI system we already have in production?
Usually yes, and it is a one-week engagement. We build an evaluation set from your real traffic, measure the current baseline, and report where the system is failing and why. Teams are frequently surprised — both by systems performing worse than believed, and occasionally by ones performing well enough that a planned rebuild was unnecessary.

Next Step

Tell us what you are trying to automate

A 30-minute technical call with an engineer who has shipped this before — not a sales qualification round. You leave with a feasibility read, a rough shape for the build, and an honest answer about whether it is worth doing at all.

Book a Technical Call
  • No sales script
  • NDA on request
  • Scoping notes sent within 48 hours
Call us Book a call