Understand the problem
Interview the people doing the task today. Record what drives their decisions and what the process costs now.
We build LLM systems the way you would build anything that handles money or decisions: measured from the first week. Every change is judged by tests that are tied to what a mistake costs your business, not by whether the output looks better.
Four conversations that give us the problem, the examples and the cost model.
Read more →From a rough first version to a system that keeps improving in production.
Read more →Checking payment receipts for an East African finance team.
Read more →A useful LLM system starts with the people who do the work today, the examples they decide on, and what a wrong decision costs. The first meeting is how we get all three.
You will do most of the talking. We will ask questions and play back what we heard at the end.
Actual inputs from the workflow, with the decisions your team made on them if you have them.
Someone who does the work today, to review our first outputs and explain their calls.
A written assessment of whether an LLM helps here, what a first version looks like, and what it should save.
Most projects start without clean labelled data or a complete picture of the problem. The process is built for that. Understanding the problem never stops: what we learn at every stage feeds back into the first.
Interview the people doing the task today. Record what drives their decisions and what the process costs now.
Collect real inputs, labelled or not. The test set grows over the project, with your experts.
Right inputs in, right shape out. Usually one prompt, one model and structured output. Quality comes later.
Run V0 on real inputs and have experts correct its output. Their corrections become the first ground truth.
A simple cost model turns each score into a figure, so we fix what costs you most. Not every metric matters.
Work back from wrong decisions, re-run the same evals, compare. When the system passes, write harder evals.
Log, sample real traffic for expert review, capture corrections. Ship a new version only when it beats the old one.
Customers pay invoices by mobile money and bank transfer, then send a screenshot or photo of the receipt. A finance team checks each one against the invoice: payer, amount, reference and date. Mismatches go to a senior reviewer.
Receipts arrive in Amharic and English, as screenshots and phone photos, sometimes with handwritten notes. Figures below are illustrative, not from a client.
Read the receipt image into structured fields: payer, amount, reference, date, rail.
Compare the fields with the invoice and decide: approve, or send to a reviewer, with the reason.
Given the image, how many fields match what an expert reads?
Given the extracted fields, even wrong ones, did step 2 make the correct decision? We don’t blame it for step 1’s errors.
Given the image, did the receipt end up approved or escalated correctly? This is the number the business feels.
Each step down costs more to build and maintain. Fine-tuning on a weak prompt locks the weakness in, so we only move down when the evals show we need to.
A stronger model, or more reasoning budget.
Clearer instructions and explicit rules.
Worked examples, or retrieval that pulls in similar cases.
Lookups in your systems, APIs and databases.
Sub-tasks, guardrails, or several models whose answers are combined.
On labelled data or eval graders, never on the eval set itself.
Once quality is where it needs to be, the same evals let us move to smaller, cheaper, faster models without guessing what we lose.
Not a final check. They are written in week one and run on every change.
A rough system that runs from input to decision teaches more than one perfect part.
We ask for small, regular reviews and use every correction twice: as a test and as guidance.
If a score doesn’t connect to money or time, we don’t optimise it yet.
Each step is scored on the inputs it actually received, and the whole system on the outcome.
When the system passes, we add more data and more reviewers, and raise the bar.
Credit: this method is adapted from Eval-Driven System Design: From Prototype to Production, OpenAI Cookbook, a collaboration between OpenAI and Fractional. © 2025 OpenAI, MIT License. The worked example is our own.
Read the original →