Writing style analysis

Paste something you have written and get the measurable part of your style: sentence rhythm, vocabulary spread, punctuation habits, and the words you reach for without noticing. It runs in your browser: nothing is uploaded, and there is no signup.

What you get

Twelve measurements covering sentence length and its variance, vocabulary diversity, your hapax rate (the words you use exactly once, a classic authorship marker in forensic stylometry), contraction and punctuation habits, paragraph length, the content words you reach for, and how you tend to open a paragraph.

What it cannot see

Everything here is counted, which is why it is instant and free. The parts of a voice that need judgement are not included: humour register, whether you argue evidence-first or conclusion-first, how you handle transitions. ScriptGrain's full profile measures 45 attributes including those, and can then write in that voice.

The twelve measurements, explained

Every number in a style report is a count of something plain. Nothing mystical. So here's what each one counts and what it tends to tell you.

Average sentence length is words divided by sentences. High means long, braided sentences; low means clipped ones. Sentence length spread is the standard deviation of those lengths. It matters more than the average. Two writers can both average 17 words, and one gets there with steady 17-word sentences while the other swings between 4 and 40. The second reads as livelier. A tiny spread is what flat prose looks like.

Vocabulary diversity is distinct words over total words, from 0 to 1. Higher means you rarely repeat yourself. Lower means a tight, repeated vocabulary, which is normal in technical writing and often deliberate. "Words used exactly once" is the share of your words that appear a single time. It's a classic authorship marker in forensic stylometry, because people are oddly consistent about it.

Long words are those of 7 or more letters, as a percentage. More of them usually signals a more formal or abstract register. "Utilise" against "use"; you get the idea.

Contractions are counted per 1,000 words. A high rate is conversational ("don't", "it's", "we'd"), a low one is formal or careful. Comma density is commas per sentence. High tends to mean qualifying clauses and asides; low means plain, direct construction.

Then the punctuation habits. Dashes per 1,000 words, semicolons per 1,000 words, and parentheticals (brackets) per 300 words. Each is a habit you barely notice in yourself. Exclamation marks per 1,000 words is the blunt one: zero is a dry voice, a high count is an enthusiastic one. Average paragraph length, in words, shows how you chunk ideas. Short paragraphs read as quick and web-native; long ones as essayistic.

The tool also lists your most-used content words (common function words left out) and the words your paragraphs open with. Those two lists are quietly revealing. If half your paragraphs begin with "The", that's a pattern, whether you meant it or not.

How to read your results

Start with the extremes. A number near the middle of the usual range tells you very little. A number that sits far from what you'd expect is the interesting one.

Compare, don't judge. There's no correct contraction rate. There's only yours, and whether it matches the voice you want. Run two pieces you wrote for different audiences (a newsletter and a report, say) and look at what moves. Contractions will probably drop. Long words will probably climb. That's register shifting, and seeing it in figures is useful.

Don't over-read a single figure. One semicolon per 1,000 words against three is a habit, not a verdict on your character. And the measurements interact. A high average sentence length with a large spread often means a few very long sentences are dragging the mean up, which is a different story from uniformly long sentences. Look at the pair together.

Vocabulary diversity has a trap worth knowing. It falls as a text gets longer, because you run out of fresh words. So comparing a 400-word piece with a 4,000-word piece on that number alone is unfair. Keep samples of similar length when you compare.

Below about 300 words, the numbers are noise rather than signal. A single exclamation mark in a short text looks like a wild swing in rate. It isn't. It's one exclamation mark.

And to be fair, there's a limit to all this. Twelve counts describe the surface of your writing. They can't tell you whether a sentence is funny, or whether you lead with evidence or with the conclusion.

What makes a good sample

Paste writing that sounds like you on a good day, at a sensible length. Aim for more than 300 words; more is better, up to a few thousand.

Pick text you wrote yourself and stand behind. Not something a colleague edited heavily, not a press release three people signed off. Heavy editing averages voices together, and the numbers reflect the committee rather than you.

Keep it to one kind of writing. A blog post and a legal disclaimer pasted together give you a blended reading that describes neither. If you write in several registers, run them separately.

Strip out what isn't yours. Quoted passages, pasted lists, boilerplate footers and code blocks all skew the counts. If you've quoted someone at length, cut the quote before you paste.

A quick checklist:

  1. Over 300 words, ideally well over.
  2. Written by you, lightly edited at most.
  3. One register, one audience.
  4. No long quotations or boilerplate.

Everything runs in your browser. Nothing is uploaded, and there's no sign-up, so you can paste a draft you'd never want on a server and experiment freely.

From twelve counts to a full voice profile

So what do twelve counts miss? Quite a lot, as it happens.

The free tool measures the countable surface. A ScriptGrain profile measures 45 attributes across 8 layers: lexical, syntactic, tone and register, rhetorical, punctuation and format, function words, content patterns, and quirks and cadence. Some of your twelve sit inside that (sentence length and its variance, contraction rate, comma density, semicolon and dash habits). Many don't.

The additions are the judged qualities. Formality on a 0 to 10 scale. Confidence versus hedging. Opening style. Argument structure: evidence-first, conclusion-first or narrative. Paragraph openers, pronoun mix, humour register, how you handle transitions. These are the things a count can't reach, and they're often what makes a voice recognisable.

The second difference is what happens afterwards. A profile needs at least one sample of 50+ words, though three or more pieces and about 3,000 words is the recommendation. Extraction usually takes under a minute (the median was 39 seconds when measured on 28 September 2026). Then every draft gets scored from 0 to 1 against the profile, a voice match. On-voice drafts typically land between 0.85 and 0.95, partial matches between 0.5 and 0.8, and a clearly different voice falls under 0.45. The score arrives with per-feature deltas, draft value against profile value, so you can see exactly which habit slipped. The method is published on the voice measurement framework page.

If a draft falls short, Polish revises it toward a target score (the default is 0.9). Drafts are written with the profile as a constraint, and the app learns from the edits you save.

The profile also travels. It reaches ChatGPT, Claude, Gemini, Cursor, Meta Muse and any MCP client through the MCP server and the REST API, read live each time, on every plan including Free. It's never a pasted prompt, which matters: a prompt is a description, and a live profile is a measurement.

Free gives you one profile and one full analysis, no card. That's enough to see what your twelve counts were hiding.