Specificity analyser
By Jack Stovell · published 2026-09-24
A specificity analyser judges whether writing leans abstract, balanced or data-driven. In a ScriptGrain voice profile this is specificity_level, one of 45 attributes: the extraction model judges it on that three-point scale, since no code tallies facts and figures, and it moves the voice match score at weight 1.
Analyse your specificity level free
Your free voice profile measures specificity level among all 45 attributes, from a sample of your own writing. No card needed.
Try the six-signal check first
At a glance
- API field: specificity_level
- How it is measured: Judged by an AI model
- Group: Content patterns (ScriptGrain voice profile, 45 attributes in 8 groups)
- Scale: abstract, balanced or data-driven (ScriptGrain attribute definitions)
- Voice match: Scored, weight 1 (ScriptGrain voice-match engine (published method))
What specificity level measures
Specificity level measures where your writing sits between vague generalisation and concrete detail. That's it. It's the difference between "sales improved" and "sales rose from 400 to 610 units in March", between "people struggled" and "the invoice team missed three deadlines in a row". The scale has three points: abstract, balanced, data-driven. No sliding percentage, no decimal score, just a label. It is one of ScriptGrain's 45 voice attributes and sits in the content patterns group with claim density, anecdote usage and analogy preference.
That label is never counted from your text: no code tallies facts and figures, even when a draft is scored. A ScriptGrain voice profile is built by an extraction model (Claude Sonnet 5, running two passes: one per sample, one to synthesise across all of them), and for this attribute the model reads your samples and judges where you land. It then snaps that judgement to one of the three canonical labels when the profile saves. So when you see "data-driven" on your profile, that's a reading, not a measurement in the arithmetic sense. Worth knowing before you argue with your own result.
How specificity level is scored
Specificity level moves your voice match score, as a judged label rather than a count. When ScriptGrain checks a piece of writing against your profile, Claude Haiku reads the draft and assigns it a label on the same abstract, balanced, data-driven scale. That label gets compared to your profile's label in code, on an ordered scale, with a fixed weight of 1.
The comparison is blunt. Same label, full marks. One step apart (abstract versus balanced, say) scores 0.5. Two steps apart (abstract versus data-driven) scores 0.1. An unreadable label scores 0.15. So getting it exactly right matters more than getting it close, and getting it very wrong tanks that slice of the score hard.
The label itself can wobble. ScriptGrain's SGR-003 study found that the 13 enumerated labels, this one included, matched a 15-piece reference profile 72% to 87% of the time depending on how many pieces built the profile (82% at one piece, 87% at eight). Labels like this are the least stable part of any profile. Full method: voice measurement framework.
How to analyse specificity level in your own writing
You can do a rough version of this check by hand in about ten minutes. Here's how:
- Pull three paragraphs from something you've written recently.
- Underline every noun that names a category rather than a thing: "the team", "the process", "the results".
- Count how many of those could be replaced with a specific name, number, date or example.
- Underline every claim you make (an assertion, a benefit, a result).
- Check how many of those claims have a concrete example sitting next to them.
- If most nouns are categories and most claims float free of examples, you're writing abstract. If most are swapped for specifics, you're data-driven. Somewhere in between is balanced, which is exactly what it sounds like.
ScriptGrain's free voice profile reads specificity level from a writing sample, alongside the other 44 attributes, no spreadsheet required.
Examples of specificity level in real writing
Example: "The campaign performed well." That's abstract. No number, no timeframe, no mechanism.
Example: "The campaign lifted click-through rate on the Tuesday send but flattened by Friday." That's balanced: one concrete detail, one general shape.
Example: "The campaign raised open rate from 18% to 31% between March 3rd and March 17th, driven almost entirely by the subject line change." That's data-driven. Numbers, dates, a named cause.
No typical value gets quoted here, because there's no reference corpus for this attribute. It's judged per profile, not benchmarked against a population.
How to make AI writing more specific
Ask ChatGPT to be "more specific" and it can simply add adjectives, which is decoration. To make it stop being vague, work through these:
- Give it the facts, figures and names to use. Asked for specifics without source material, a model will invent them, and invented specifics are worse than honest vagueness.
- Ask for one concrete example per claim, not a paragraph of examples piled up. One is usually enough to ground the point.
- Replace category words with the actual thing. Not "the document", the invoice. Not "the meeting", the Tuesday call.
A ScriptGrain voice profile handles this at generation time by sending specificity_level in the voice profile JSON block of the system prompt, as a hard constraint rather than a suggestion. If your profile reads data-driven or balanced, the model is also told plainly not to abstract a concrete idea, and polish, when you run it, is barred from introducing any number, statistic, quantity, date, price or named person or organisation the draft doesn't already contain. It can sharpen what's there. It can't manufacture facts to sound more specific. The profile reaches ChatGPT, Claude and other tools through the API and the MCP server, so they read the same label.
How to make AI writing more big-picture
Sometimes you want the opposite: less data, more shape. Fewer numbers, more principle. Three moves get you there:
- Ask for the principle first and fewer figures, explicitly.
- Summarise data as a direction instead of listing numbers: "engagement climbed steadily" rather than five data points across five months.
- Keep any examples brief and illustrative rather than exhaustive; one line, not a case study.
A ScriptGrain profile labelled abstract sends that label as a hard constraint in the same way; there is no extra rule for it, and a balanced profile still carries the instruction not to abstract a concrete idea. Claim density, its sibling, covers how many assertions land per paragraph.
Questions
What is a specificity analyser?
It's a check on whether writing leans abstract, balanced, or data-driven, one of the content patterns group in a ScriptGrain voice profile. It's judged by an extraction model reading your samples, not counted by code, and it moves your voice match score at weight 1 when a draft is checked against your profile.
What's the difference between concrete and abstract writing?
Concrete writing names things: numbers, dates, people, specific nouns. Abstract writing generalises: categories, outcomes stated without mechanism, claims without examples. Neither is wrong on its own; a strategy memo often wants abstract framing, an invoice dispute wants concrete facts. Specificity level just measures which one your writing defaults to.
How do I make my writing more specific?
Swap category nouns for named things, attach one concrete example to each claim you make, and add real figures where you currently gesture at outcomes. See the numbered steps above for the full method. It's mechanical work, not a talent, which is good news if you've never thought of yourself as a "detail person".
How do I make ChatGPT less vague?
Feed it facts before asking for specifics, since a model denied real data will invent plausible-sounding fake data instead. Ask for one example per claim rather than general polish. A ScriptGrain voice profile carries your specificity level into its own drafts as a hard constraint and passes it to connected AI tools through the API or MCP server.
How is specificity level scored in a voice profile?
It's judged, not counted: an extraction model reads your samples and assigns abstract, balanced, or data-driven. When checking a draft, that label is compared against a fresh Haiku-judged label on the same three-point scale, weight 1. Matching labels score full marks; one step apart scores 0.5; two steps apart scores 0.1. The full scoring method is on the voice measurement framework page.
Related
- Content patterns attributes
- Anecdote usage
- Claim density
- Analogy preference
- The anatomy of a writing voice: 45 measured attributes across 8 layers