GPTZero Explained: How It Works & How to Write Around It
GPTZero launched in January 2023 as a Princeton student project and has since become one of the most widely used AI detectors among teachers and professors. Understanding exactly how it works is the first step to producing writing it can't flag.
The two core metrics: perplexity and burstiness
GPTZero's detection model is built around two core ideas. Perplexity measures how 'surprising' the text is to a language model. Low perplexity means the model could easily predict each word — which is typical of AI output. High perplexity means the text is more unpredictable — like human writing.
Burstiness measures variation in sentence complexity and length across the document. Humans naturally write in bursts — some sentences are long and detailed, others are short and punchy. AI models tend to produce much more uniform output.
How GPTZero scores a document
- It scores the full document perplexity (average unpredictability across all tokens)
- It scores burstiness across paragraphs
- It optionally highlights individual sentences with the lowest perplexity scores
- Human: perplexity > threshold AND burstiness > threshold
- AI: perplexity < threshold OR burstiness < threshold
What raises your perplexity score
- Unusual word choices — words a language model wouldn't predict in that position
- Non-standard sentence structures — inversions, fragments, unexpected punctuation
- Domain-specific jargon mixed with casual language
- Contractions and colloquial phrasing in otherwise formal writing
- Personal anecdotes and specific, verifiable details
What a two-pass humanizer does
A tool like HiddenType works by deliberately increasing both perplexity and burstiness in your text. Pass 1 restructures sentences and introduces vocabulary variation to raise the perplexity score. Pass 2 audits the output sentence by sentence, finding any remaining low-perplexity phrases — the 'AI tells' — and rewriting them.
Try it yourself: HiddenType's pipeline is specifically optimized against GPTZero's scoring model. Try it on your next document. HiddenType →