Sentence length

Distribution of sentence lengths across your manuscript, plus a per-sentence list you can click into.

Endpoint: /sentencelength — up to 50,000 words per run.

sentence-length report card

What it measures

Every sentence gets bucketed into one of five ranges by word count:

  • < 10 words — punchy, short. Signature of thrillers, action beats, dialogue.
  • 10–19 words — the natural default for most prose. If a book had to pick one bucket to live in, this is the one.
  • 20–29 words — long but still readable. Comfortable for literary and narrative-nonfiction prose.
  • 30–39 words — starting to feel heavy. A few in a chapter add texture; many in a row exhaust the reader.
  • 40+ words — likely too long for readable prose. Deliberate use only; every one of these is a stylistic choice.

Alongside the buckets, the endpoint computes average sentence length (avg), longest sentence in word count, and a sentence variety number (σ, the standard deviation of length across the whole manuscript). Variety matters: two books with identical average length can read completely differently — one because it alternates 4-word sentences with 30-word sentences (high variety), the other because it stays flat around the mean (low variety). High variety usually reads as rhythmically alive; low variety reads as monotonous.

The endpoint also returns the individual sentence list — every sentence with its start/end offsets, paragraph key, and bucket label — which is what powers the clickable per-sentence list and the highlight-in-editor behaviour.

The endpoint caps at 50,000 words per run. Longer manuscripts get truncated.

Why it's useful

A histogram of sentence lengths tells you at a glance whether your prose has rhythm. A book with 90% of its sentences in the 10–19 bucket feels monotonous even if none of the individual sentences are bad — the reader falls into a lull because every sentence lands in the same beat. A book with 40% in the 40+ bucket exhausts the reader in the opposite direction — every sentence demands full working memory. The sweet spot is usually a wide distribution: healthy mass in 10–19, meaningful presence in <10 and 20–29, a small tail of 30–39, and a rare 40+ used for effect.

This is one of the very few diagnostics you cannot feel while writing. Sentence rhythm is invisible from inside the draft — you hear the sound of your prose, not the shape of it. A shape you can see (the histogram) is often more informative than an average you already had a rough sense of.

The per-sentence list is where the actionable value lives: filter to the 40+ bucket, then click through your longest sentences one by one and ask is this length earning its place? If yes, leave it. If no, break it. That single revision pass — done on the 40+ list alone — typically moves the whole sentence-length distribution back toward health.

Use alongside Sentence analysis (for the hardest sentences, weighted by more than just length) and Sentence reports (the underlying per-paragraph heaviness data).

How to read it

The /sentencelength data appears in three distinct areas of the Rust panel.

First: the avg / sentence and long sentences tiles in the top-of-panel PopStat grid. The avg tile shows the running mean sentence length (mono, tabular, 1 decimal); the long-sentences tile shows the count of sentences in the 30–39 and 40+ buckets combined, coloured green/amber/red based on the ratio to total sentences.

Second: the Sentence length distribution block — its own titled section. It renders as a donut chart (using the same PieBlock component as Issue Breakdown) with one slice per bucket (0–10, 10–19, 20–29, 30–39, 40+). Click a slice to lock it — the corresponding sentences paint in the editor via the cliches (teal) highlight layer so you can see them in place. Below the donut, a small caption line shows avg N · target N–N on the left (average and the endpoint's returned target range) and σ N on the right (sentence variety). Click a slice again to deselect and clear the paint.

Third: the Long sentences collapsible issue list near the bottom of the panel (with a blue dot). It aggregates every sentence flagged as either 30–39 or 40+ words into a single list, each row showing the sentence text (line-clamped to 2 lines) and a meta line with the word count. Click any row to jump to that sentence in the editor and see it highlighted via the shared editor decoration layer (the dialogue layer, blue outline). Click again to deselect.

The three surfaces work together: the stat tile is the at-a-glance number, the donut is the shape, the list is the actionable per-sentence drill-down.

When to ignore it

Some genres want a specific shape. Punchy thrillers skew short — Lee Child's median sentence length is around 12 words; the 40+ bucket is empty by design. Literary fiction skews long — Marilynne Robinson, Rachel Cusk, Denis Johnson all live comfortably in the 20–29 and 30–39 buckets, and Robinson in particular has a whole shelf of 60-word sentences that work. Middle-grade fiction is deliberately kept short because the audience is still building reading stamina. Compare against your target genre before treating the shape as wrong.

Second: dialogue distorts the histogram downward. Speech is naturally shorter than narration, so a dialogue-heavy chapter can look "healthier" than a narration-heavy chapter that is actually fine. If you're scoring individual chapters, adjust expectations for the ratio of dialogue.

Third: chapter endings often contain deliberately long sentences (the summary sweep, the reveal, the fade-to-black paragraph). A single 60-word sentence at the end of every chapter is a stylistic pattern, not a defect. The report will flag them; you can ignore them.

Finally, the "variety" metric can mislead in one direction: it doesn't care where the variety is distributed. A book with a wildly varied first chapter and a monotonous middle can score the same as a book with even variety throughout. To catch that, cross-check with the per-paragraph heaviness data in Sentence analysis.

How to run it

  1. Click Write in the left sidebar and open the document you want to analyze.
  2. Open the right rail: click the Reports button (bar-chart icon) in the editor's top toolbar.
  3. In the rail header, click the Rust tab.
  4. All 8 Rust endpoints run in parallel on tab open — typically completes in 2–5 seconds. There is no card to click; everything renders in one composite panel.
  5. The sentence-length data appears in three places: the avg / sentence and long sentences tiles in the header stat grid; the Sentence length distribution block (bucketed 0–10 / 10–19 / 20–29 / 30–39 / 40+ with average and variety σ underneath); and the Long sentences collapsible issue list near the bottom of the card.
  6. Click an item in the Long sentences list to jump to that sentence in the editor and see it highlighted via the shared editor decoration layer.