How the WrittenCheck AI detector works
WrittenCheck uses its own trained model to estimate how much a text reads like AI writing. This page explains what it measures, how well it did in testing and where it goes wrong.
The short version
- It uses trained detection models, not a chatbot. It doesn't ask ChatGPT or any other AI whether a text is AI-written.
- A deep language model scores English and 16 other languages. If it's busy or offline, our built-in model answers instead.
- Both run on our own servers. Your text isn't sent to any AI service, and it's never stored.
- The models were trained on well over 100,000 texts, some written by people and some by AI models.
- It gives a score, a likely range, a confidence level and a score for each sentence.
What it looks at
AI models tend to pick the most likely next word. Over a few paragraphs that leaves traces. The phrasing is smooth and common, the sentences are similar lengths, and some transitions show up again and again ("Furthermore", "It is important to note"). People write less evenly. We use odd words, uneven sentences and specific details.
The deep language model reads the text the way modern language models do and learned these differences from many examples of both kinds of writing. When it answers, it sets the score.
The built-in model breaks your text into short runs of characters and words and compares them with what it learned from both kinds of writing. It then checks the result against simpler signals: how much sentence length varies, how often phrases repeat and how specific the text is. When those agree, the confidence goes up. When they don't, it goes down.
Each sentence is scored too. That's what the shading under the result shows. A text can score in the middle because half of it is AI-written and half isn't, and the sentence view helps you see which half is which.
Languages and test results
Checks on this site are scored by a deep language model, a transformer trained on human and AI writing. It covers English and 16 other languages: Spanish, French, German, Italian, Portuguese, Turkish, Indonesian, Tagalog (Filipino), Russian, Arabic, Urdu, Hindi, Thai, Chinese, Japanese and Korean. It runs on our own server, and your text is scored in memory and never stored.
If that server is busy or offline, our built-in model answers instead, so every check still gets a result. The built-in model has a separate model for each of the 17 languages. Text in any other language goes to an older general model, and its results are much less reliable. Our Android app uses the deep language model in the same way, with the same fallback. The free widget and the API use the built-in model.
Test of 14 October 2026
On 14 October 2026 we replaced the deep language model and tested it on 15,089 texts in the 16 languages other than English (7,030 written by AI, 8,059 by people). None of them were seen in training. A score of 45 or higher counts as flagged. We scored the same texts with the model from 9 October, so the two can be compared directly.
- 96.8% of AI texts were caught. The 9 October model caught 95.6% of the same texts.
- 0.17% of human texts were wrongly flagged. That is slightly higher than the 9 October model, which flagged 0.14% of the same texts.
- 89% of AI texts that another AI tool had reworded were caught at 70 or higher. The 9 October model caught 79%.
The red bars use a scale ten times larger so the small numbers are visible. The reworded AI column counts AI texts reworded by another AI tool that scored 70 or higher. Only 30 to 39 reworded texts were tested per language, so that column shows counts.
| Language | AI caught | Human flagged | Reworded AI |
|---|---|---|---|
| English (see below) | 98.5% | 0.47% | 325 of 328 |
| Arabic | 98.2% | 0 of 393 | 34 of 36 |
| Chinese | 96.0% | 2 of 496 | 36 of 37 |
| French | 98.1% | 0 of 456 | 36 of 39 |
| German | 95.2% | 1 of 377 | 24 of 30 |
| Hindi | 99.3% | 0 of 407 | 28 of 35 |
| Indonesian | 97.0% | 1 of 416 | 29 of 36 |
| Italian | 96.3% | 2 of 371 | 33 of 36 |
| Japanese | 95.8% | 0 of 419 | 32 of 33 |
| Korean | 97.3% | 0 of 416 | 30 of 34 |
| Portuguese | 98.4% | 1 of 423 | 34 of 35 |
| Russian | 97.4% | 1 of 478 | 30 of 33 |
| Spanish | 98.6% | 4 of 581 | 33 of 35 |
| Tagalog (Filipino) | 93.7% | 0 of 964 | 18 of 33 |
| Thai | 92.4% | 1 of 1,084 | 24 of 35 |
| Turkish | 97.3% | 1 of 450 | 28 of 35 |
| Urdu | 97.6% | 0 of 328 | 31 of 38 |
English has its own deep model and its own, larger test (7,160 AI texts and 13,944 human texts), so its row isn't directly comparable with the others. The new English model was set to flag exactly the same share of human texts as the one before it (0.47% at 45 or higher), so its gain shows up as more AI caught: 98.5%, up from 96.5%. In our locked English test of 400 texts it caught 199 of 200 AI texts and flagged none of the 200 human texts.
Hindi and Tagalog (Filipino) improved the most. German is about the same on normal AI text (95.6% before, 95.2% now) and better on reworded text. Thai moved only a little (91.8% to 92.4%).
Test results are a guide, not a promise. Your own texts may be harder or easier than the test set.
Test of 9 October 2026
We tested the deep language model on 20,326 texts in the 16 languages other than English. None of them were seen in training. A score of 45 or higher counts as flagged.
- 0.15% of human texts were wrongly flagged. The previous model flagged 1.54%.
- 95.9% of AI texts were caught. The previous model caught 88.2%.
- 0.16% of human literature was wrongly flagged. The previous model flagged 3.6%.
The red bars use a scale ten times larger so the small numbers are visible.
| Language | AI caught | Human flagged |
|---|---|---|
| Arabic | 97.8% | 0% |
| Chinese | 96.4% | 0.4% |
| French | 98.0% | 0% |
| German | 95.8% | 0.14% |
| Hindi | 94.6% | 0% |
| Indonesian | 96.5% | 0% |
| Italian | 95.5% | 0.28% |
| Japanese | 95.0% | 0% |
| Korean | 96.9% | 0.15% |
| Portuguese | 96.9% | 0.15% |
| Russian | 96.5% | 0% |
| Spanish | 98.5% | 0.53% |
| Tagalog (Filipino) | 88.6% | 0% |
| Thai | 92.3% | 0.15% |
| Turkish | 95.8% | 0.28% |
| Urdu | 96.9% | 0.23% |
Thai improved the most. Human texts wrongly flagged went from 7.9% to 0.15%, and AI caught went from 63% to 92%. Tagalog (Filipino) is new, and at 89% it has the lowest AI caught rate in the table. English isn't in this table.
Test results are a guide, not a promise. Your own texts may be harder or easier than the test set.
Built-in model: test of 2 October 2026
The built-in model answers when the deep language model is busy or offline. On 2 October 2026 we retrained its models for the 14 languages below. We added public-domain older literature as human writing, because older literary prose used to be flagged as AI far too often. The table shows that test, on texts the models never saw during training.
- AI caught is the share of AI-written test texts that scored 50 or more.
- Human flagged is the share of short human-written excerpts (about 110 words) that scored 45 or more.
- Older literature flagged is new. It's the share of excerpts from older published literature, by authors the model never trained on, that scored 45 or more. The number of excerpts is in brackets.
The red bars use a scale ten times larger so the small numbers are visible.
| Language | AI caught | Human flagged | Older literature flagged |
|---|---|---|---|
| Arabic | 96.5% | 0.6% | 5.0% (40) |
| Chinese | 95.3% | 0.3% | 0.0% (129) |
| French | 92.7% | 0.7% | 6.0% (116) |
| German | 97.5% | 3.1% | 3.4% (89) |
| Hindi | 91.9% | 0.4% | 5.4% (74) |
| Indonesian | 94.7% | 1.3% | 2.2% (93) |
| Italian | 92.8% | 1.7% | 9.7% (103) |
| Japanese | 95.0% | 0.0% | 2.5% (79) |
| Korean | 95.1% | 0.5% | 1.1% (92) |
| Portuguese | 95.0% | 1.1% | 2.2% (90) |
| Russian | 91.5% | 1.9% | 1.4% (70) |
| Spanish | 96.2% | 1.0% | 4.0% (99) |
| Turkish | 95.1% | 1.6% | 4.7% (86) |
| Urdu | 98.0% | 0.5% | 0.0% (44) |
The built-in Thai model is from an earlier round and isn't in this table. Tagalog got its own built-in model on 9 October 2026.
The retrain had a cost as well. On short AI excerpts of about 110 words, French detection fell from 86.4% to 83.8% and Russian from 89.4% to 86.8%. German still has the highest rate of human text flagged, at 3.1%. Italian literature is still the weakest literature result, at 9.7%, so take extra care with literary Italian. For most languages we also test on a separate set of news articles from another source. German and Italian don't have that extra check yet.
Chinese: Traditional Chinese is now converted to Simplified before scoring, and the report still shows your original text. In our test of 10 Traditional Chinese AI texts, 9 were caught and 1 came out as mixed.
Where it goes wrong
Every AI detector makes mistakes. These are the cases where ours is weakest.
- Very short texts. In our October test, the deep language model caught about 85% of English AI texts of about 40 words, against 199 of 200 longer ones. Every result under 80 words is marked low confidence and has a wide range, so check a few hundred words when you need a result you can rely on.
- Edited AI drafts. If a person rewrites an AI draft, or runs it through a paraphrasing tool, the score usually drops. It may land in the mixed band or below.
- Unusual styles. AI text written to sound old-fashioned, technical or legal can read as human. Older literary prose by people is now rarely flagged (0.16% in our test of 9 October 2026 across 16 languages), but it can still happen.
- Very formal human writing. Some careful, plain human writing, such as abstracts and policy text, can score higher than it should.
- Writers using a second language. Simple, regular phrasing can look a little more like AI. Keep this in mind before you judge a student or colleague.
- The widget and the API. They still use our built-in model, so their results on short or unusual texts are weaker than on this page and in the Android app.
So please don't use a score as the only evidence that someone cheated. Look at the sentences it highlights, the person's drafts and notes, and talk to them.
Limits
- 40 to 3,000 words a check. A few hundred words give a more reliable result.
- 8 checks a minute and 200 a day from one connection.
- Paste the text, or upload a DOCX, PDF, TXT, ODT, RTF or HTML file. The file is read in your browser and only its text is sent for the check. Scanned PDFs and images don't work.
Common questions
What does the WrittenCheck score mean?
The score from 0 to 100 shows how closely your text matches the patterns of AI writing the model learned. Around 0 to 44 reads as likely human, 45 to 69 is mixed or unclear, and 70 to 100 reads as likely AI. It isn't the share of words written by AI, and it isn't proof of who wrote the text.
Why do I see a range and a confidence level?
No detector is certain, so we show how sure the model is. The range is where the true score probably sits, and the confidence level says how much the model's signals agree. Short texts and mixed writing usually get a wider range and lower confidence.
Does WrittenCheck send my text to an AI chatbot?
No. WrittenCheck runs its own trained models on its own servers. Your text isn't sent to any chatbot or other AI service, and it's thrown away when the check ends. We don't use it for training.
Which languages does the detector support?
Seventeen: English, Urdu, Hindi, Arabic, Spanish, French, German, Portuguese, Italian, Indonesian, Tagalog (Filipino), Turkish, Russian, Chinese, Japanese, Korean and Thai. The deep language model covers all 17, and the built-in model has its own model for each. Text in other languages goes to an older general model, and those results are much less reliable.
Why did my own writing get a high AI score?
Some human writing looks like AI to a detector. Very formal or formulaic text, short texts and writing in a second language are the most common cases. Look at which sentences were highlighted, and remember that a score alone isn't evidence that anyone used AI.
Why can the same text get a different score later?
We retrain the models from time to time to fix weak spots, and in October 2026 we added the deep language model. After a change, the same text can score a little higher or lower. If the deep language model is busy, the built-in model answers, and its score can differ too. The test results on this page always show the date of the latest test.
Training data credits
Parts of the training data come from public datasets, used under their licences:
- Hello-SimpleAI/HC3 and HC3-Chinese, CC BY-SA 4.0
- Thaweewat/hc3-24k-th, CC BY-SA 3.0
- d0rj/HC3-ru, CC BY-SA 4.0
- almanach/hc3_french_ood, CC BY-SA 4.0
- liamdugan/raid, MIT
The model reports how closely writing matches patterns. It isn't proof of authorship and shouldn't be the only basis for a decision about anyone.
Last updated 14 October 2026.
More guides on AI detection
Plain articles from the WrittenCheck blog.
AI-Resistant Assignments: Designs and Prompts That WorkNo assignment is AI-proof. These designs make AI misuse harder and student thinking easier to see, with example prompts for English, hist…
How to Cite AI in APA, MLA and Chicago StyleThe exact formats for citing generative AI in APA, MLA and Chicago, plus in-text citations, where prompts go and a disclosure statement y…
Em Dash AI: Does an Em Dash Mean a Text Was Written by AI?Writers used em dashes for centuries before chatbots. Here's what the data on em dashes and AI actually shows, and how to use the mark well.
AI Policy for Schools: Levels, Examples and TemplatesHow to write a classroom or school AI policy that students actually follow, with example syllabus statements and a disclosure template yo…