Punctuation analyser
By Jack Stovell · published 2026-09-24
A punctuation analyser reads the marks and layout in a writing sample: commas per sentence, exclamation marks, ellipses, questions, capitalisation and list format. In a ScriptGrain voice profile these are six of the 45 attributes. Every stored value is the extraction model's reading of your samples, and four of the six can move the voice match score.
Analyse your punctuation and format attributes free
Your free voice profile measures every punctuation and format attribute among all 45, from a sample of your own writing. No card needed.
Try the six-signal check first
At a glance
- Attributes: 6 of 45 (ScriptGrain voice profile)
- Counted in code: 4 (when a draft is scored, or in the free tools) (ScriptGrain voice-match engine and free tools)
- Judged by a model: 2 (ScriptGrain extraction and voice-match engine)
- Kept as word lists: 0 (ScriptGrain extraction)
- Move the voice match score: 4 of 6 (ScriptGrain voice-match engine (published method))
What the punctuation and format group measures
The punctuation and format group covers marks and layout: how many commas sit inside a sentence, how often exclamation marks and ellipses turn up, whether questions appear in body copy, capitalisation habits and preferred list format. It's one of eight groups in ScriptGrain's full attribute set, sitting alongside lexical, syntactic and tone measures, and it holds 6 of the 45 total attributes tracked in a profile. The punctuation and format reference page has the corpus figures.
Comma density is the average number of commas in a sentence. Code counts it when a draft is scored, and its voice match weight of 1.5 is the joint heaviest in the group.
Exclamation rate measures how often exclamation marks show up, per 1,000 words rather than per sentence. Code counts it when a draft is scored, at weight 1.5. If your writing never raises its voice on the page, this is where that gets recorded.
Ellipsis usage is a label on a four-step scale: frequent, occasional, rare or never. When a draft is scored, code counts its ellipses and converts the rate to a label, at weight 1. Small attribute, but it's often the difference between a voice that trails off and one that doesn't.
Question marks in body is a straight yes or no: do questions appear inside the body copy? When a draft is scored, code checks it for any question mark, at weight 1.
Capitalisation quirks is different. It's judged, not counted, and it comes back as a short description, no more than 15 words. An example of the shape: "sentence case headings; capitalises product names only". It doesn't move the voice match score at all.
List preference is also judged rather than counted. It reads as one of five values: bullets, numbered, inline, mixed, or avoids. Like capitalisation quirks, it's descriptive and doesn't feed into the score.
So the split across the group: 4 attributes that code counts when a draft is scored, 2 judged by the model, none from catalogued word lists. Of the six, 4 move the voice match score and 2 don't. Every stored value, for all six, is the extraction model's reading of your samples (Claude Sonnet 5). No stored value is a count you could reproduce with a regex, and judged labels can vary slightly from run to run.
How punctuation and format features are scored
Four of the six are scored: when a draft is checked against a profile, code counts those four features in the draft and compares each with the profile's stored value. The other two are judged by the extraction model and never scored. Unlike some groups in the 45-attribute framework, nothing here comes from a catalogued word list.
Comma density and exclamation rate carry a weight of 1.5 each, the two heaviest in the group; ellipsis usage and question marks in body carry 1 each. That makes this group four of the 28 attributes that can move the voice match score. One rare-habit rule applies: when both the draft and the profile sit under 0.5 exclamation marks per 1,000 words, that agreement counts at half weight and is never headlined as a match. The voice measurement framework sets out the full method.
Capitalisation quirks and list preference don't move the score at all: the voice-match engine has no comparator for either, so polish cannot target them. They still describe the voice, and they still go to the model with the rest of the profile.
How to analyse the punctuation and format of your own writing
You can analyse your own punctuation habits by hand with a text sample and some patience. Here's how.
- Take a writing sample of at least a few hundred words, ideally something typical of how you actually write, not your most polished piece.
- Count total sentences, then count every comma. Divide commas by sentences. That's your comma density.
- Count exclamation marks, divide by total words, multiply by 1,000. That gives you exclamation marks per 1,000 words.
- Count ellipses ("..." or "…") per 1,000 words and call your habit frequent, occasional, rare or never.
- Check whether any questions appear inside your paragraphs, not just as headings or titles. Yes or no.
- Note any capitalisation habits: do you capitalise for emphasis, put headings in title case, or keep everything in standard sentence case?
- Look at how you present lists: bullets, numbered steps, inline within a sentence, a mix, or do you avoid lists altogether?
That's the manual version. ScriptGrain's free voice profile reads all six of these from a writing sample automatically, alongside the other 39 attributes in the framework.
How to make AI writing match your punctuation and format
You make AI writing match your punctuation and format by giving the model a profile of your habits instead of a vague style note. Here's the process.
- Gather a writing sample, ideally 3,000 or more words across up to 20 samples, since more text gives the extraction model more to work with.
- Run it through a tool that measures comma density, exclamation rate, ellipsis usage, question marks in body, capitalisation quirks and list preference specifically, rather than guessing at "tone" alone.
- Store those six values (and the other 39 attributes) as a single profile rather than a one-off description.
- Feed that profile into your drafting process, whether that's a prompt built from the profile or a direct connection into the tool you're using.
- Check the output against the profile using a voice match score, so you're not relying on a feeling that "it sounds about right."
A ScriptGrain voice profile carries this group into drafts the same way it carries the other 39 attributes: as structured data in the voice profile JSON of the system prompt, under "Treat every attribute as a hard constraint, not a suggestion." Two named rules cover this group: "Reproduce punctuation habits (parenthetical rate, comma density)" and "do not introduce warmth or exclamation if the profile shows dry/rare". The profile also reaches ChatGPT, Claude and other tools through the API and the MCP server, so a model writing for you reads your stored comma density and exclamation rate instead of a rough impression of "writes with fewer exclamation marks than most." Every profile, on every plan, returns all 45 attributes as JSON through `GET /v1/profiles/{id}` or the `get_profile` MCP tool.
Attributes in this group
- Comma density: The average number of commas in a sentence.
- Exclamation rate: How often exclamation marks appear.
- Ellipsis usage: How often ellipses (…) appear: frequent, occasional, rare, or never.
- Question marks in body: Whether questions appear inside body copy.
- Capitalisation quirks: Any noted capitalisation habits.
- List preference: The preferred list format: bullets, numbered, inline, mixed, or avoiding lists altogether.
Questions
What does a punctuation analyser measure?
A punctuation analyser measures the marks and layout choices in a piece of writing: commas per sentence, exclamation marks per 1,000 words, ellipsis frequency, whether questions appear in body text, capitalisation habits and list format. In ScriptGrain's framework, this is one group of 6 attributes out of 45 total, and every stored value is a reading from the extraction model.
How is a punctuation score calculated?
ScriptGrain gives no separate punctuation score; the group feeds the overall voice match score. When a draft is scored, code counts four of the six attributes: comma density and exclamation rate each carry a weight of 1.5, ellipsis usage and question marks in body 1 each. The remaining two, capitalisation quirks and list preference, are judged by the model and never move the score.
How can I analyse my own punctuation habits?
Count commas per sentence for comma density, count exclamation marks per 1,000 words, note whether ellipses appear frequently, occasionally, rarely or never, check for questions inside body paragraphs, describe any capitalisation habits in a short phrase, and note your list format: bullets, numbered, inline, mixed or avoided. Doing this by hand across a real sample gives you a rough version of what an extraction model produces automatically.
How do I make AI punctuate like me?
Give the model a profile of your habits rather than a vague description. A ScriptGrain profile records your comma density, exclamation rate, ellipsis usage, question marks in body, capitalisation quirks and list preference, then carries that data into ChatGPT, Claude and other tools through the API and MCP server, so drafts work from your stored values instead of a general instruction like "write formally."
Why does capitalisation not affect my voice match score?
Capitalisation quirks is a short description of up to 15 words, judged by the extraction model, and the voice-match engine has no comparator for it. Only 4 of the 6 punctuation and format attributes carry a voice match weight, the four that code counts when a draft is scored; capitalisation quirks and list preference sit outside that calculation, and polish cannot target them.