We won't give you a score. We'll give you the records.
Every task an agent does is logged as a run: whether it really passed, what it cost, and which slice of memory it was given. Three documents come out of that. Their format below is the real one. The numbers are samples from Fernhill, a made-up team. Yours come from your own tasks.
1. One run
Sample numbersThe smallest unit. One task, one agent, one attempt. Everything else on this page is built from these.
{
"task_id": "t1-thursday-order-arrival",
"mode": "pack",
"verified": true,
"checks": [
{
"type": "command",
"level": "L2v",
"pass": true
}
],
"harness_measured": {
"wall_ms": 48210,
"input_tokens": 18422,
"output_tokens": 1310,
"total_cost_usd": 0.18
},
"context_manifest": [
"pk_01M775JMX8HXFVCQ3Q7JX2MNBS"
],
"started_at": "2026-11-10T09:14:02Z"
}- verified
- Decided by tests the agent never sees. They are copied in only after it finishes. What the agent says about its own work is kept as a claim and never counted.
- harness_measured
- Time, tokens and cost, metered from outside the agent.
- context_manifest
- The exact slice it was given. Any result traces back to what the agent knew at the time.
- mode
- "pack" is a run with memory. "baseline" is the same agent, cold.
2. With memory, and without
Sample numbersThe same agent does the same tasks twice. Each task is one where something an earlier session learned decides whether it works. These four are samples. Yours are your own tasks.
| Task | What an earlier session learned | Cold agent | With memory |
|---|---|---|---|
| Tell a customer when a Thursday evening order arrives | The courier skips weekends for live plants | Failed · $0.21 | Passed · $0.18 |
| Refund a plant returned after 20 days | A decision in force: 14 days | Failed · $0.34 | Passed · $0.22 |
| Quote 80 olive trees for a garden centre | Wholesale discounts stop at 10% | Passed · $0.41 | Passed · $0.29 |
| Fix the delivery date shown at checkout | The checkout tests need the payment mock | Passed · $0.88 | Passed · $0.52 |
| Really passed | Checked by tests the agent never saw | 2 of 4 | 4 of 4 |
| Cost of a pass | Everything spent, divided by what really passed | $0.92 | $0.30 |
How the verdict reads. One of three words: better, worse or unresolved. When there are too few tasks to call it, the report says unresolved instead of rounding up.
Why cost of a pass. A cheap run that fails isn't cheap. Dividing the whole bill by the passes puts a failed attempt where it belongs: in the price of the ones that worked.
- Run card: model
- One model, the same in both arms
- Run card: task set
- 4 tasks, frozen before the runs
- Run card: checked by
- Held-back tests, on every number
- Run card: tools allowed
- The same list in both arms
3. Your week
Sample numbersWhat your agents did with memory, counted from the audit log. It arrives once a week.
| Fernhill, week 3 | Count | What it means |
|---|---|---|
| Sessions | 212 | Each one started with a slice |
| Memories written | 61 | Kept by agents in their own memory |
| Lessons proposed | 9 | 6 approved, 1 rejected, 2 still waiting for a person |
| Contradictions | 4 | 3 settled. Agents act on neither side of the one still open. |
| Refusals | 7 | Times an agent asked for something outside its slice, each with the reason |
| Secrets blanked | 3 | Replaced before anything was stored |
| Held for you | 1 | Text that read like orders to an agent. It stays out until you release it. |
Three things that never appear in a report
- One number that blends everything. You see passes, cost and the level each was checked at, side by side.
- An agent's word that it succeeded. Its claim is recorded and labelled as a claim.
- Cost the agent reported about itself. If the meter couldn't measure it, the report says it is missing.