ai writing · craft
The Flatline: Why Sentence Rhythm Gives Away AI Prose
JP LeBlanc · October 7, 2026 · 7 min read

For a while, our AI cliché corpus carried a line item called "low burstiness: uniform 15-20 word sentences." It sat there for months. It never once fired.
The reason is almost embarrassing in hindsight. Every other entry in that corpus is a phrase match: "delve," "tapestry," "a testament to." You grep for the string, you count the hits, you move on. Burstiness isn't a string. It's a shape a whole paragraph makes when you lay its sentence lengths end to end, and a phrase-matching detector has nothing to grep for. We'd correctly named the tell and built a tool that could never see it, the kind of mistake that only looks obvious afterward.
The fix, once we got there, was to stop reading words and start counting them.
What burstiness actually is
Burstiness is the technical name for something you already notice without naming it: real writing spikes and stalls. A human paragraph runs four words, then twenty-two, then a fragment, then a sentence with a clause shoved into the middle of it like a person interrupting their own thought. A model left to its own defaults doesn't do that. It builds sentence after sentence at the same medium complexity, comma, clause, modest landing, comma, clause, modest landing, and the effect over a page is less like prose and more like a treadmill. Burstiness and its cousin perplexity have been the standard pair for flagging machine text since detectors like GPTZero shipped in early 2023, and they've outlasted almost every other AI-tell heuristic for one reason: you can train a model to avoid the word "delve." You can't as easily train it out of building the same sentence shape over and over, because that habit sits one level below vocabulary.
Paragraph shape carries the same tell, one size up. Flat prose doesn't just repeat sentence length, it repeats paragraph length: four sentences, four sentences, four sentences, each one developing its point to roughly the same depth before handing off to the next. Real writing lets one idea eat three paragraphs and the next get a single line.
What flat actually looks like
Here's a paragraph with the problem baked in on purpose:
Mara stepped into the kitchen and set the bag down on the counter without a word. Her brother watched her from the doorway, arms crossed, waiting for her to explain herself. The silence stretched between them until the old kettle started to whistle on the stove. She poured two cups and slid one across the table toward him without looking up. He didn't touch it, and for a long moment neither of them moved at all. Outside, a car pulled into the quiet driveway and idled there for almost a minute. Mara finally spoke, though her voice came out much quieter than she meant it to.
Count the words per sentence and the flatness stops being a feeling and becomes a list:
- 16, 15, 15, 15, 15, 15, 15
Six of seven sentences land on the exact same number, and all seven sit inside the 15-20 word band, the range a model can hold "for pages at a time," which is the same band our own rhythm detector checks first. Any one sentence here is fine on its own. Read all seven in a row and your ear goes numb, because nothing about the next one is unpredictable.
Same events, same information, rewritten for rhythm instead of length:
Mara set the bag on the counter and didn't say anything. Her brother stood in the doorway, arms crossed, the whole posture of a man rehearsing a lecture he hadn't decided to give yet. The kettle screamed before either of them could. She poured two cups anyway. He didn't touch his. A car idled in the driveway for almost a minute, headlights off, nobody getting out, like it was deciding something too. Then Mara spoke. Her voice came out smaller than she wanted.
- 11, 23, 8, 5, 4, 21, 3, 8
Nothing was reworded for cleverness. The clauses moved. A four-word sentence sits next to a twenty-three-word one with an aside jammed into its middle, then two short ones land back to back, then a long one, then a fragment. The mean sentence length actually dropped, from just over fifteen words to just over ten, which tells you rhythm was never about writing longer or writing shorter. It's about refusing to let three sentences in a row measure the same.
The wrong fix
The obvious response to "vary your sentences" is to chop the long ones into fragments and call it done. Don't. A paragraph made entirely of four-word sentences is just the opposite flatline, the "chainsaw to the syntax" version of the same tell, and a reader clocks it almost as fast as the glide it's replacing. A few short sentences read as punchy. A page of nothing but short sentences reads like a parody of hardboiled fiction that nobody asked for. Variation means some short, some long, some medium, in an order that doesn't resolve into its own pattern. That last part is the part people usually skip.
The manual version
You don't need a tool for a first pass at this. Take one page of your own draft, or someone else's, and write down the word count of every sentence in a row, comma-separated, in the order they appear. Don't average them yet. Just look at the row of numbers.
Two patterns give you away. The first is a run: four or five numbers in a row sitting within two or three words of each other, especially if most of them fall between fifteen and twenty. That run is a paragraph gliding on autopilot, even if every individual sentence reads fine in isolation. The second is the opposite run: a page of sentences all under six or seven words, which usually means someone already tried to fix the first problem and overshot. Either run is worth a second look. A page with no runs at all, numbers jumping around without a settled center, is doing what most published prose actually does without anyone planning it consciously.
How we actually measure it
Inside AIStoryHub, this runs as one detector among several that scan a scene right after it generates, before you ever see it. It splits the text into sentences, counts words per sentence, and checks five things: the coefficient of variation across the whole passage (low variation means uniform cadence, which is burstiness measured backward), what fraction of sentences sit in that 15-20 word comfort band, what fraction carry a subordinating conjunction like because or although stacked onto an otherwise ordinary sentence, what fraction are short and structurally simple, and what fraction are ultra-short fragments, checking for the staccato over-correction in the other direction. No single signal flags a passage alone, since one uniform stretch can be coincidence; two or more tripping together reads as a habit, and that's what gets flagged. A page made almost entirely of fragments is the one exception, since a fragment majority is diagnostic by itself. Passages under six sentences don't get scored at all; there isn't enough length in them to tell a habit from a short scene.
When it flags a run, a second pass finds the worst offending stretch and quotes it back to the model with a specific instruction, not a vague one: write at least one sentence under eight words, let one run long with something jammed into the middle of it, and change where the breaks fall, without touching the actual events in the scene. This is the same detector behind the Rhythm axis of the Fiction Slop Index, 15% of the running Mechanical Prose Score, though it's the axis we trust least so far. At the roughly 400-word passages we test against, almost every model lands near the top of it, because none hit real cadence extremes at that length. Real measurement, just not enough runway yet to separate a fine model from a genuinely bursty one.
The cliché-matching half of this, the one that started the story, is free to run yourself at /slop-checker: paste anything, get a density score against the same corpus that used to carry that dead "low burstiness" line item. Rhythm doesn't have its own public dial yet. If you've got API access, the closest thing is /developers: call the self-check endpoint against a chapter or a pasted passage and the response includes a flags.rhythm array, either empty or a list of reasons like low-variation or held-comfort-zone, the same labels the internal critic reads before it goes looking for the sentence to fix.
None of it replaces reading your own page out loud, or writing the numbers down in a row and noticing where they repeat. The tool just does in milliseconds what your ear was already doing, slower, on the second or third read-through.