How ContentTrace Is Calibrated: Testing Against Human and AI Writing
- →Any tool that scores writing should publish its test method, sample sizes and misses. These are ContentTrace's, from internal testing on October 3, 2026.
- →The test scored 162 samples: 75 human texts written before 2022 and 87 AI replies from Claude, ChatGPT and Gemini.
- →Leave-one-out accuracy was 89%: 71 of 75 human texts and 62 of 75 AI texts classified correctly.
- →A routing fix and new anchors raised the area under the curve from 83.7% to 94.8%.
- →AI text prompted to sound human was caught only 3 of 12 times, the business calibration group is small, and short texts give weaker signals.
- →This is a modest internal sample. Treat the score as an editing aid, never as proof about a person.
On July 20, 2023, OpenAI switched off its own AI text classifier. The company's announcement had already stated the numbers plainly: the tool correctly flagged 26% of AI-written text and wrongly labeled human writing as AI-written 9% of the time. It was, in OpenAI's words, "very unreliable on short texts." The update that retired it cited "its low rate of accuracy."
That episode set a useful standard, and few tools have met it since. Most accuracy claims in this market arrive as one large number with no sample, no method and no misses. A detector advertised as 99% accurate on data nobody can see is a horoscope with a decimal point.
So here is the opposite. Below is how ContentTrace was calibrated, the internal test behind it, every headline number, and the places it still falls short.
75 human texts written before 2022, 87 AI replies from three providers.
What went into the test
The human side had to be beyond doubt, so every human text predates 2022, before chat assistants were part of everyday writing. The 75 samples span very different registers: Reddit ELI5 answers, tweets, company blogs and personal blogs, emails from the public Enron corpus, Python Enhancement Proposals, arXiv abstracts and Reuters news.
The AI side came from 29 prompts sent to three providers, Claude, ChatGPT and Gemini, at default settings with no system prompt. That produced 87 replies. Twelve of them were "humanized" samples, where the model was asked to sound human, and those are reported separately. The other 75 form the AI group in the main results.
Default settings with no system prompt were a deliberate choice. That's what a writer gets from a fresh chat window, so it's the realistic baseline for raw AI output. It's also the easiest case to catch. Drafts written with a detailed brief, a voice guide or a few rounds of human editing will look different, and that's fine, because those are the AI-assisted drafts ContentTrace exists to help improve. The test measures whether the score separates unedited model output from human writing. It doesn't measure how good any of it is.
The mix matters more than the size. A test made only of student essays would say nothing about Slack-length emails or API docs, and writers bring both to a scoring tool.
How calibration works
Raw scores from the rubric mean different things in different genres. A Python PEP written by a person still scores low on Emotional Texture, because specs don't have feelings. So the 10 content types roll up into 4 calibration groups: formal, business, personal and general.
Each group gets two anchors taken from the test data. The displayed score reads 25 at the median raw score of that group's AI samples and 75 at the median raw score of its human samples. The final number is capped between 2 and 98, since no tool can be certain who wrote a text.
Accuracy was measured with leave-one-out. Each text is scored with anchors computed from all the other texts, so no sample helps set the bar it's judged against. The scikit-learn documentation describes the method well: each learning set takes "all the samples except one, the test set being the sample left out." The same page notes that leave-one-out "often results in high variance" as an estimate. On 150 texts, that warning applies, and it's one more reason to read every number below as provisional.
The results
With the new calibration, leave-one-out accuracy was 89%. Of the 75 human texts, 71 were classified correctly. Of the 75 AI texts, 62 were.
The split runs in the right direction for a tool like this: 4 human misses against 13 AI misses. Wrongly flagging a person costs far more than missing a machine.
By provider, Gemini replies were caught 23 of 25 times, Claude 20 of 25 and ChatGPT 19 of 25. The gap between them is small enough on samples this size that ranking the providers would be overreading it.
The area under the curve for the displayed score rose from 83.7% to 94.8% after the changes described in the next section. Google's machine learning course gives the cleanest definition of that metric: the probability that a model ranks a randomly chosen positive example above a randomly chosen negative one. 50% is a coin flip and 100% is perfect separation. At 94.8%, a random AI text in this sample usually scores below a random human text, though not always.
The routing fix
Part of that jump came from routing, not scoring. Content types decide which calibration anchors apply, and one class of text was going to the wrong place.
A technical AI explainer, say, a model's answer to someone asking how DNS caching works, reads like documentation. So it was routed to the formal group and compared against formal human anchors, the PEPs and arXiv abstracts. Against that bar it looked lively, and it scored far too human.
The tempting conclusion from misses like those is that the judge can't read technical writing. That reading is wrong, and acting on it would have meant rebuilding the wrong part. The judge was scoring fine. The comparison was off. Now answers to a person's question count as "general" even when they're technical, and they're measured against the right anchors.
"A score only means something next to the right comparison. Change the comparison and the same text tells a different story."Colin H · Web Thrive
Known limits, stated plainly
The weakest result is the one most people will ask about. AI text prompted to "sound human" was caught only 3 of 12 times. A model told to add contractions, hedge less and vary its rhythm can clear many surface checks. That doesn't make the text better for readers, which is the argument of a separate post on why undetectable AI is the wrong goal, but it does mean the score is easy to move without real editing.
The remaining AI misses include formal AI documents and some AI emails and social posts. On the human side, the misses were a company "what is product analytics" article, 2 short emails and 1 academic abstract. Reading that list is uncomfortable, because each one is a real person's writing that the system called machine-like, and a company explainer is exactly the kind of page ContentTrace users write.
Two structural limits sit under those misses. The business calibration group is small, with 8 human and 9 AI samples, and needs more data before its anchors deserve much trust. And short texts give weaker signals across the board, the same problem OpenAI named for its own classifier. A 60-word email simply contains fewer places for a writer's habits to show.
There's a broader caution too. Research by Weixin Liang and colleagues found that popular detectors "consistently misclassify non-native English writing samples as AI-generated." The ContentTrace test didn't isolate non-native writers, so it can't claim to be free of that bias. That's the honest position, and it's why the score should never be the only evidence about a person.
These are internal results on a modest sample. They aren't a guarantee. What they do show is a method anyone can follow, numbers with denominators, and a list of misses. That's the minimum any writing score should publish, and the reason ContentTrace frames its score as a guide to editing AI-assisted drafts, never a verdict.
Frequently asked questions
For the scoring method these anchors sit on, read Inside the 32 Signals. Editor, Not Author explains how rewrites are re-scored by the same engine. Can AI Detectors Be Fooled? covers why chasing a passing score misses the point.
Colin H builds ContentTrace at Web Thrive. He has spent 20+ years in B2B SaaS marketing, running content, SEO and AEO programs, and now builds them around AI-assisted content production. Read the ContentTrace manifesto

