The question we must answer
When an AI grades a batch of student papers, a teacher with forty minutes before their next class needs to know which questions require a manual look.
A reliable triage system makes automated marking safe by letting teachers review the uncertain edge cases while trusting the rest. A broken triage system does the opposite: it buries real errors under false confidence.
The obvious signal to rely on is the model's self-reported confidence score. Ren stores a confidence value with every suggested mark. When we tested those scores against tens of thousands of production records, we found they are virtually useless for flagging mistakes.
Confidence has almost no range
We analyzed more than 35,000 marks generated in production. Each record contained a confidence rating from 0 to 100:
| Statistic | Value |
|---|---|
| Mean | 95.4 |
| At or above 95 | 73.9% |
| At or above 90 | 90.6% |
| Below 80 | 1.55% |
Almost every suggestion claims near-certainty. Setting a filter threshold at 80 captures only 1.55% of all marks, which is far too narrow to catch real errors. Moving the threshold to 90 flags 9.4% of the batch, but the vast majority of those flagged suggestions are completely correct.
Confidence points the wrong way
The distribution is bad, but the direction of the error is worse. When we compared model confidence against how often teachers rejected a suggestion, we found an inverse correlation:
| Confidence | Share of the set | Teacher rejected |
|---|---|---|
| 30 to 70 | 1.6% | 0.0% |
| 80 to 89 | 6.9% | 0.4% |
| 90 to 99 | 39.1% | 0.9% |
| 100 | 52.5% | 4.8% |
While the lowest band has a small sample size, the broader trend is undeniable: suggestions marked with 100% confidence were rejected ten times more frequently than suggestions in lower bands. On divergent marks specifically, the mean confidence was 93.9 compared to a baseline average of 95.4. That tiny difference is statistical noise.
Language models are notoriously bad judges of their own accuracy. A self-reported confidence score is simply a number the model generates about itself without external verification.
Teacher clicks are not ground truth
We initially assumed teacher accept and reject actions would serve as a clean, labelled evaluation dataset. With tens of thousands of rows showing roughly 75% accepted and 25% rejected, it seemed ready for analysis.
It was not:
- 79.8% of all rejections occurred in simultaneous bursts of five or more on a single submission. The largest single batch contained 65 rejections in one second.
- 94% of rejections had no updated score attached, and 82% did not associate with a specific question.
- Of the rejections that did reference a question, only 13% included a replacement comment. In practice, rejecting usually meant "clear the draft" rather than "correct a mistake."
- Only 0.8% of accepted suggestions ever had their numerical score modified.
These logs reflect batch interactions. A teacher clicks "accept all" to clear the queue or clears an entire page to mark from scratch. The data records UI interaction habits, not grading precision.
Most edits compress text rather than fix errors
We filtered out bulk actions to isolate roughly 2,000 marks where teachers actively edited content. We then separated them by whether a numerical mark was involved:
| Group | Share of the set | Median AI comment | Median teacher comment | Cut below 60% of length |
|---|---|---|---|---|
| No score (essay feedback) | 62% | 469 characters | 210 characters | 56% |
| Scored (structured questions) | 38% | 187 characters | 176 characters | 16% |
In essay feedback, teachers frequently edit AI suggestions not because the point was wrong, but to shorten verbose explanations into their own voice. For example:
AI comment: "The claim is an important evaluative conclusion, but it is asserted rather than supported by a concrete comparison, such as severity, likelihood distribution, or number of people affected."
>
Teacher edit: "Would have been better if this claim was supported with evidence."
The substance is identical, but the teacher trimmed the word count by more than half. If an evaluation system counts every rewritten sentence as an AI error, it ends up optimising for brevity rather than pedagogical accuracy.
Where real errors actually happen
To find genuine mistakes, we audited 40 divergent marks by comparing the AI output, the student submission, and the official marking scheme side by side:
| Group | Inspected | Genuine AI error |
|---|---|---|
| Score moved by one mark or more | 14 | 12 (86%) |
| Comment rewritten, score unchanged | 8 | 1 (13%) |
| Essay comment rewritten, no score | 6 | 0 (0%) |
| Suggestion deleted | 6 | 0 (0%) |
| Suggestion rejected and replaced | 6 | 0 (0%) |
Score movement is the real indicator of error. Comment edits are mostly stylistic.
The most common failure mode is over-crediting, where the model awards marks that the rubric explicitly withholds:
- The marking scheme says "do not award the mark if no reason is given." The student omitted the explanation, yet the model awarded the mark.
- The question required the gradient of the tangent at two seconds. The student calculated the chord gradient across the full interval, but the AI still awarded the method mark.
- The rubric specified an explicit presentation deduction that the AI ignored.
- The question demanded a simplified final fraction, but the AI awarded full marks for an unreduced expression.
Another class of error comes from implicit syllabus conventions. In General Paper comprehension, students lose marks for lifting phrases directly from the passage. If that constraint is not written into the uploaded rubric, the AI cannot apply a rule it was never given.
Divergence does not always mean the AI was wrong
In two of the forty audited cases, the teacher's override was incorrect:
- The rubric stated the correct answer was D with full working. The student wrote D. The AI marked it correct with 100% confidence. The teacher overrode it and wrote "wrong, the correct answer is A." The student and the AI were correct.
- In a mathematics paper, the AI caught an arithmetic slip and correctly withheld a point. The teacher waived the penalty during review.
A human edit is not guaranteed to be an accurate correction. This is why automated validation requires adjudicated verification rather than raw clickstream logs.
What works instead: deterministic validation
Instead of asking the model if it feels confident, we run deterministic logic checks on the generated output. These checks look for internal contradictions between the feedback text and the awarded score. They cost virtually nothing to compute and require no secondary LLM calls.
The most reliable check matches the itemised point breakdown in the comment against the recorded score:
Comment: "+1: correctly shows the expansion
+1: correct final expression"
Recorded score: 1
Confidence: 99
The comment clearly describes awarding two points, but the output recorded a score of 1. A teacher in a hurry accepted the mark without noticing.
When tested against our audited dataset, deterministic checks proved far more effective than raw confidence thresholds:
| Check | Precision | Recall | Fires on |
|---|---|---|---|
| Confidence below 90 | 100% | 7.1% | 9.6% |
| Score against comment | 100% | 7.1% | 0.8% |
| All deterministic checks together | 100% | 21.4% | 3.3% |
The combined checks caught three times as many real errors while flagging only a third as many total suggestions for manual review.
When we applied this score-versus-comment validation across all scored marks in production, the check uncovered internal contradictions in roughly one out of every fifty questions. Many of those contradictory marks had carried confidence ratings above 95.
A methodological trap in feedback data
If you evaluate review flags against unadjudicated accept and reject logs, the automated checks look like they perform poorly. That is an artifact of noisy human labelling.
Our score-versus-comment check flagged dozens of suggestions that teachers had accepted without edits. When we inspected the raw scripts, the AI had made a clear scoring mistake that the teacher missed during review. The check was right; the clickstream record was wrong.
Evaluating safety flags against unverified clickstream data is flawed because rushed reviewing is the exact problem automated checks are built to catch.
Practical takeaways for educators
- Ignore raw confidence percentages. A high confidence score from a language model does not guarantee an accurate grade.
- Prioritize score changes over comment edits. When reviewing a batch, focus on questions where the score was adjusted. That is where 86% of actual grading discrepancies occur.
- Keep human review in the loop. Language models provide a fast, structured first pass, but final grades should always have teacher approval. For our broader perspective on system design, read why AI marking still needs human oversight.