Verdah · accuracy audit · 100 posts
I labelled 100 LinkedIn posts by hand — 50 written by a model, 50 written by a person — and ran them through my own product. Every detector in this category publishes a percentage. Almost none publish the set it was measured on.
| Actually | Said AI | Said Human | Said Mixed | Total |
|---|---|---|---|---|
| AI | 21 | 28 | 1 | 50 |
| Human | 0 | 50 | 0 | 50 |
71 exact matches out of 100. The errors are all in one direction: it lets AI through, and it does not accuse people. That asymmetry is deliberate and it is the whole design.
Twenty-eight of fifty AI posts came back as human. If a machine-written post is specific — real names, real numbers, an unflattering detail — this will miss it, and that is the most common way it fails. Treat a Human verdict as "no strong signal", not as a clearance.
Zero human posts out of fifty were called AI. Every one of the 21 AI calls was correct. On a set this size that is not proof of a perfect false-positive rate — it is one hundred posts, and the honest reading is "no false accusations were observed", not "none can happen".
The verdict comes from a 0–100 score and two thresholds. Sweeping every threshold pair against this same set shows detection is flat — there is no setting that catches substantially more AI without starting to accuse people:
| Thresholds | AI caught | Precision | False accusations | Exact |
|---|---|---|---|---|
| 33 / 32 — current | 21/50 · 42% | 21/21 · 100% | 0/50 · 0% | 71/100 |
| 30 / 29 — more aggressive | 22/50 · 44% | 22/23 · 96% | 1/50 · 2% | 71/100 |
| 53 / 33 — more cautious | 17/50 · 34% | 17/17 · 100% | 0/50 · 0% | 67/100 |
Two more percentage points of detection costs the first false accusation. That trade is not worth making. Detection improves by changing what the model looks for, not by moving a number, and the next version of the prompt is where that work belongs.
The raw per-post results are available on request while I decide how to publish them without republishing other people's posts.