How We Grade It
No accuracy number. Here is the method we use instead.
Beemy will not print a self-reported accuracy figure. This page names what it grades instead: four tasks, 75 hand-labelled examples, and scorers built to punish a confident wrong answer harder than an honest pause.
The short version
Every model task Beemy runs is graded against a small, hand-labelled corpus, and every scorer punishes a confident wrong answer harder than an honest pause. No numeric bar is a promise yet, and the router does not filter on this grading today. Read on for exactly where that stands.
On this page
Four graded tasks, and a corpus for each
Every model task Beemy runs has a gold corpus behind it.
A small corpus stated beats a large one implied. Here is the real count for each task, taken straight from the corpus files themselves.
Triage decision
18 hand-labelled examples.
TriageDecisionTask · backend/src/eval/corpus/triage.json
Draft quality
13 hand-labelled examples.
DraftQualityTask · backend/src/eval/corpus/drafts.json
Digest faithfulness
12 hand-labelled examples.
DigestFaithfulnessTask · backend/src/eval/corpus/digests.json
Silo classification
32 hand-labelled examples.
ReferenceSiloClassifier · backend/src/eval/corpus/documents.json
75 examples in total, across four tasks. None of them is a live user's mail.
Hesitating costs points. Guessing costs everything.
Every scorer is built to punish a confident wrong answer.
This is the harness's spine. An honest pause earns partial or full credit. A wrong answer stated with confidence fails the example outright.
Triage decision
Abstaining on a genuinely ambiguous message scores full marks. Recognising there is no right answer is a correct answer.
scoreTriageDecision · backend/src/eval/tasks/triageDecision.ts, scoreTriageDecision
Triage decision
Abstaining on a message that did have a right answer scores half marks. Safe, but not precise.
scoreTriageDecision · backend/src/eval/tasks/triageDecision.ts, scoreTriageDecision
Triage decision
A confident wrong category scores zero, and fails the example outright.
scoreTriageDecision · backend/src/eval/tasks/triageDecision.ts, scoreTriageDecision
Draft quality
If any forbidden fact appears in the draft, the example scores zero, however well the rest of it reads. This is a safety bar. It doesn't reward fluent prose on its own.
scoreDraftQuality · backend/src/eval/tasks/draftQuality.ts, scoreDraftQuality
Digest faithfulness
One ungrounded bullet fails the whole digest. Not a deduction. A zero.
scoreDigestFaithfulness · backend/src/eval/tasks/digestFaithfulness.ts, scoreDigestFaithfulness
Silo classification
A misfile counts twice against a model. It's a false positive in the silo it wrongly landed in, and a false negative in the one it belonged to. A quarantine counts once, as a false negative only.
evaluateClassifier · backend/src/eval/classification.ts, evaluateClassifier
An ungraded model is never trusted
No score means no pass, by default.
The ledger that records every model's scores answers one question for each model and task pair: did it clear the bar. A model this ledger has never scored gets a fail by design.
See the next two sections for what that ledger cannot yet promise on its own.
No bar is published, because none is set
The numeric targets are a placeholder.
No bar is published, because no bar is set. The quality targets in the code are documented placeholder defaults. Nobody has tuned them yet.
QUALITY_TARGETS · backend/src/eval/tasks/targets.ts, QUALITY_TARGETS
The gate is not wired up yet
What a green build actually proves.
The ledger above is written and it fails closed. The router does not read it yet. Saying otherwise would be false today, so we don't say it.
The routing gate is not wired up yet. The router's default quality signal accepts every candidate, so nothing is filtered out today.
NO_QUALITY_SIGNAL · backend/src/model/routingPolicy.ts, NO_QUALITY_SIGNAL
A green build proves the scorers. It says nothing about the shipping model. Every task grades a deterministic reference stub, and none of them calls a real model.
ReferenceTriageModel · backend/src/eval/tasks/triageDecision.ts, ReferenceTriageModel
Still no accuracy number
What this page adds instead.
Still no accuracy number. This page adds a method. It does not add a number. A self-reported figure from a private beta would fail the sourcing bar The Numbers sets for every other statistic on this site.
Read next
Get your time back.
Beemy is in private beta. Join the waitlist and go from connect to a quiet, triaged inbox before you close your laptop tonight.
You're in the hive. We'll buzz you when it's your turn.
While you waitLast updated