NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-19-01KHTXM7MB5XY28TWRK7G65DSJ
Run Details
Model:
GPT-5
Test:
Bad Writing Habits
Scenario:
Thriller: chase through city streets
Duration:
2m 22s
Cost:
$0.067880
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
100.00%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
75.00%
AI-ism word frequency
(details)
100.00%
Cliché density
(details)
100.00%
Emotion telling (show vs. tell)
(details)
100.00%
Filter word density
(details)
100.00%
Gibberish response detection
(details)
100.00%
Markdown formatting overuse
(details)
100.00%
Missing dialogue indicators (quotation marks)
(details)
100.00%
Name drop frequency
(details)
50.00%
Narrator intent-glossing
(details)
100.00%
"Not X but Y" pattern overuse
(details)
100.00%
Overuse of "that" (subordinate clause padding)
(details)
100.00%
Paragraph length variance
(details)
100.00%
Passive voice overuse
(details)
100.00%
Past progressive (was/were + -ing) overuse
(details)
100.00%
Em-dash & semicolon overuse
(details)
94.00%
Purple prose (modifier overload)
(details)
100.00%
Repeated phrase echo
(details)
100.00%
Sentence length variance
(details)
44.37%
Sentence opener variety
(details)
0.00%
Adverb-first sentence starts
(details)
77.45%
Pronoun-first sentence starts
(details)
0.00%
Subject-first sentence starts
(details)
26.60%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
100.00%
Useless dialogue additions
(details)
100.00%
Dialogue tag variety (said vs. fancy)
(details)
85.5804%
Overall
Model input
System
You are an expert fiction writer. Always keep the following rules in mind: - Write in past tense and use General English spelling, grammar, and colloquialisms/slang. - Write in active voice - Always follow the "show, don't tell" principle. - Avoid adverbs and cliches and overused/commonly used phrases. Aim for fresh and original descriptions. - Convey events and story through dialogue. - Mix short, punchy sentences with long, descriptive ones. Drop fill words to add variety. - Skip "he/she said said" dialogue tags and convey people's actions or face expressions through their speech - Avoid mushy dialog and descriptions, have dialogue always continue the action, never stall or add unnecessary fluff. Vary the descriptions to not repeat yourself. - Put dialogue on its own paragraph to separate scene and action. - Reduce indicators of uncertainty like "trying" or "maybe" When writing text: - NEVER conclude the scene on your own, follow the beat instructions very closely. - NEVER end with foreshadowing. - NEVER write further than what I prompt you with. - AVOID imagining possible endings, NEVER deviate from the instructions. - STOP EARLY if the continuation contains what was required in the instructions. You do not need to fill out the full amount of words possible.
User/Human
Take into account the following glossary of characters/locations/items/lore... when writing your response: <codex> <character id="4416" name="Detective Harlow Quinn" aliases="Quinn, Detective Quinn, Harlow" pronouns="she/her" species="Human" storyRole="Antagonist"> <eyeColor>brown</eyeColor> <hair>closely cropped salt-and-pepper</hair> <height>5'9"</height> <age>41</age> <jawline>sharp jaw</jawline> <watch>worn leather watch on her left wrist</watch> <bearing>military precision</bearing> <description>A Metropolitan Police detective with 18 years of decorated service who suspects the clique is involved in criminal activity.</description> <backstory>She lost her partner, DS Morris, during a case three years ago under unexplained circumstances that had supernatural origins she doesn't yet understand.</backstory> </character> <character id="4417" name="Tomás Herrera" aliases="Tommy, Tomás, Herrera" pronouns="he/him" species="Human" storyRole="Support"> <eyeColor>warm brown</eyeColor> <hair>short curly dark brown</hair> <height>5'10"</height> <age>29</age> <skinTone>olive skin</skinTone> <scar>scar running along his left forearm from a knife attack</scar> <medallion>Saint Christopher medallion around his neck</medallion> <birthplace>Seville, Spain</birthplace> <description>A former paramedic who provides off-the-books medical care for the clique.</description> <backstory>Born in Seville, Spain. He moved to London to work for the NHS but lost his license after administering unauthorized treatments to supernatural patients.</backstory> </character> <location id="854" name="The Raven's Nest" aliases="the Nest, Raven, Silas' bar" realm="Earth"> <signColor>distinctive green neon sign above the entrance</signColor> <secretRoom>hidden back room accessible through a bookshelf, used for clandestine meetings</secretRoom> <description>A dimly lit bar in Soho, London. The walls are covered with old maps and black-and-white photographs.</description> </location> <location id="856" name="The Veil Market" aliases="Veil Market, the Market, underground market" realm="Earth"> <currentLocation>abandoned Tube station beneath Camden</currentLocation> <entryRequirement>bone token</entryRequirement> <schedule>moves locations every full moon</schedule> <description>A hidden supernatural black market that sells enchanted goods, banned alchemical substances, and information.</description> </location> </codex> Continue the story using the following instructions: <instructions> Write a fully fleshed out scene of at least 1000 words in the thriller genre. A detective is pursuing a suspect through rain-soaked city streets at night. The chase takes them from the street level down into an underground market. The detective must decide whether to follow the suspect into unfamiliar and potentially dangerous territory. Use the codex entries above as your world reference for characters and setting. Only include the prose of the scene without any markdown or commentary. </instructions>
Model response
Messages
Meta
AI
Green neon bled across the wet pavement outside the Raven’s Nest, the sign over the door humming like a low threat.
Harlow planted a shoulder against
the brick and let the rain thicken on her cropped hair.
The leather watch rode her
wrist like an old scar. Eleven past midnight. He’d show.
Rats always followed the same
pipes. “You waited long enough, Detective.”
He slid out under the
neon, collar up, jaw hidden under fuzz. A hood shadowed his face, but the grin showed. Sharp. Wrong for this street. “You left an open tab, Louis.” “Put it on the department, yeah?”
The grin broke, and he
ran. “Control, Quinn. Foot pursuit from Greek Street, male, dark hood, white trainers, moving north. Offences—put it under everything.” “Quinn, repeat, moving north from Greek Street. Any units in vicinity of Soho—” “Move your body away from me.”
A woman yanked a cigarette
from her lips as they clipped her in the doorway.
The man splashed a puddle
and cut between a taxi and a bus with their wipers beating time.
Harlow tore after him, boots
hard on tarmac, breath
measured
, arms
pumping
tight. Rain drew lines down her face and
tasted like brick dust
. “Back off, cop.” “Stop. Hands. Now.”
He tossed a glance over
his shoulder.
The hood stuck to his
scalp.
A lip ring caught the
streetlamp.
He vaulted a row of
bins, landed bad, and kept running.
She flowed after him, weight
through the hips, spine lined up. Eighteen years stamped each stride; a long time since parade grounds, but it never left. “You’re killing my vibe!”
A pair of kids reeled
out of Old Compton Street, eyeliner smudged, laughing until they saw the badge. The boy’s jaw dropped. “Go inside. Lock the door.” Harlow’s voice sliced the night. They vanished.
Louis, if that was his
name, hopped a low chain and ripped along the kerb. A horn blared.
The driver laid into his
window with a palm and screamed something that drowned in the rain. “Control, suspect now east on Soho Square, approaching Charlotte. I need a unit to intercept northbound to Tottenham Court Road.” “Quinn, nearest unit stuck on Oxford. Advise caution.” “Caution’s off.”
He skittered around a puddle
and slid on his heel, grabbed a bollard to steady.
He glanced back again, and
the grin had gone. Good.
He dashed across Oxford Street
under a red man, cars braking, tyres spitting water. Harlow cut the angle and stepped in his wake.
Her watch caught the rain
and held it in the cracks in the leather. “You’re not that fast.” “What, you want me to offer you a piggyback?”
He bounded past shuttered shops
and a kebab joint coughing steam. The steam hit her throat with grease. Tottenham Court Road station sat ahead like a toothy
maw
, lights hard and white under the canopy. “No, no, no,” a station attendant flapped a high-vis sleeve. “You can’t take—” “Police pursuit!” Harlow snapped the warrant card past his nose and vaulted the barrier. Louis had already taken the clean option—legs up and over the gate like he’d rehearsed.
She landed on the other
side and sprinted,
footsteps
drumming on tile. The ticket hall blurred into tunnel. Posters swam past; scantily dressed singers and watches as big as heads. Water dripped from the vaulted ceiling and beaded on the line map. “Northbound Northern Line platform. Open the gates.” “Madam—” “Now.”
She hit the conveyor of
bodies, carved a path with her shoulders, hurtled down the second set of stairs. The howl of a train pressed up from below.
Her thigh bit where scar
tissue pulled.
She dropped two steps at
a time, breath a
measured
count between her teeth. The platform gasped with wet tourists and locals in black. Doors hissed open. Louis flung himself into a carriage and turned to look at her, chest heaving.
He flicked two fingers off
his brow. “Don’t.” The doors slid. Harlow jammed an arm between them. They clung to her sleeve.
She set her jaw and
shoved. The rubber gave. Inside air hit her with heat and wet wool.
She caught the bar and
pulled herself in as the train rolled. “Control, I’m in carriage three, Northern northbound. Suspect in carriage four. Lock down Camden Town, flood exits.” “Negative on lockdown. British Transport Authority requests—” “Tell BTP to get warm and brace. He’s mine.” They rattled through the black. Lights in the tunnel strobed through the window and sawed at her eyes. Passengers looked, then looked away, eyes on phones and shoes. A woman in a red coat slid a child behind her leg. Harlow touched the radio again. “Morris would have taken the stairs.”
She caught herself talking into
the reflection and closed her mouth. Steam clung to the glass like breath. With each station, people spilled in and out. Louis stayed near the connecting doors, a shadow with a heartbeat.
He looked small through the
gangway window, blurred by condensation. He watched her and didn’t
watch
her at once. The train screamed into Camden Town. Doors peeled back. Louis burst out in a spray of elbows. Harlow launched after him. The platform space yawned, made for bodies. He cut through a busker packing away a guitar. Strings wailed. An inspector lifted a hand, then let it fall when he saw the focus in Harlow’s eyes. “Stop him.” “You can’t—” “He’s assaulted. He’s running.” She hurdled a case, skimmed a shoulder off a loiterer, and took the stairs three by three. Camden sucked at them. The rain had settled into a steady pour around Chalk Farm Road, a long grey ladder dropping from the night. Street traders wrestled tarps over racks of fake band tees. A woman with a fringe hawked incense from under a sheet of plastic. The canal glimmered black in the corner of her eye, cut by the bridge lattice. Louis didn’t marvel. He dived off the main drag and punched through a knot of smokers at the side of a shuttered tattoo parlour. “Watch your hands.” “Oi!” “Police business. Move.” He slid down a narrow service path that ran along the side of a brick office, fat weeds bursting between the bricks. Harlow followed and knew, in a small ready place in her chest, that he’d walked this route before. He pulled up at a rust-cancered gate, rattled it once, then shoved through where the chain didn’t
quite meet
. She pushed, the chain tore skin on her knuckles, and they were in a yard behind a nameless building, the city’s
pulse
pressed against the fence line. “End of the road.” He dropped onto a metal stairwell that led to a basement door. The door
looked like any locked delivery entrance
, mottled paint peeling to show primer. He put a hand to his pocket and showed her the one thing that didn’t fit his walk, his grin, his shoes. A length of bone dangled from a linen cord, smooth with use, the joints
etched
with sigils. Knuckles, maybe, or something cut into neat pieces. He lifted it in a curt wave. “Stay topside.” “Don’t test me.” He pressed the bone against the door where a handle should have been. The slab of metal shivered, then sighed inward. Warmth rolled up, smelling of cloves, wet stone, and something sharp like cut brass. For a flash, the silhouettes of moving figures showed in the half light below. Voices carried—low bargains, laughter that didn’t fit young lungs. He ducked in. The door whispered back, almost closed, almost gone.
To anyone else it would
look like paint and damp. Harlow stared at her hand. Blood beaded at the torn knuckles and ran across her palm, caught by the necklace of her
watch
and settled in the cracks. The
watch
ticked,
not with seconds, but punches on a pad
. “Control, suspect entered a concealed basement access in yard behind—send me a map pin—no, scrap it. You won’t see it. He used something. Like a key. Possibly bone. Camden, near the market. I’ll—” “Quinn, negative on you proceeding into an unknown. Contain and wait for units.” “Contain what? A door that pretends to be a wall?” “Quinn—” Her radio filled with an operator’s careful tone. She thumbed the volume down. The rain quieted under the walkway’s overhang, a little roof of rust and spider web. Camden muttered beyond the fence, a thousand tiny transactions in the wet. She pressed her palm to the metal where his bone had touched. The door stayed a door. It didn’t care about warrant cards. “You’re lost, officer.” The voice came from the shadows below the grill of the stair. Harlow’s shoulders set before her brain named the face. A man stepped into the light from the low emergency fixture by the door. Olive skin. Curly dark hair pinned back with rain. Eyes warm until they weren’t. A medallion winked against his damp shirt. His left forearm carried an old knife kiss, puckered and raised. He tucked a bag heavier than gauze into the crook of his elbow. “You again.” Harlow backed her
weight
against the handrail. “Herrera.” “Quinn.” A nod, polite enough. “You always turn up where you shouldn’t.” “You fix wounds in illegal basements.” “I fix wounds. Illegal is your word.” “Where does that door go.” “Down.” He looked at her
watch
. The corner of his mouth twitched. His English carried heat, syllables soft as if they came wearing winter coats. “Down into what.” “You would call it an underground market.” He tipped his head toward the hatch. “It moves every moon. Tonight, Camden. Tomorrow, you’ll be yelling at a wall in Peckham and scaring pigeons.” “Someone just ran through there, used a bone. A suspect in an assault. He’s clean? I don’t think so.” “They come for medicine, trinkets, stories. You like stories.” Tomás shifted the bag up his elbow. A splotch of deep brown bled through one corner. “You also like rules.” “Don’t patronise me.” “You want inside.” “You going to open it.” “You have a bone token?” “Open it.” A low chuckle rolled up from the stairwell’s throat. It wasn’t Tomás. Another shape leaned on the banister, big shoulders under a coat that looked cut from a curtain. The man’s eyes picked up the emergency light and flashed pale, too pale, like the inside of a shell. “No token, no entry.” He tasted the words. “Law’s got no teeth in the Nest.” “I’m Metropolitan Police.” “Metropolitan what?” He tapped the bone cord strung across his chest. It danced against the coat like a row of small moons. Harlow pictured Louis’s piece and the way the door had peeled like skin. “Move.” “You grew brave this month, Detective.” Tomás dropped his eyes to her torn knuckles. “You should let me dress that.” “You can dress it after he’s in cuffs.” “He won’t be.” A quiet truth. No triumph in it. Just weather. “You go down, you go down without backup, without the comfort of your radio. It will work until it doesn’t. Your pistol will feel heavy, then light, then like a toy. The rules bend. The market is for people who accept that.” She stared, jaw a line that could cut leather. The rain off the overhang dripped at a steady beat. Her heart answered in time. The smell of clove sat on the back of her tongue now, and the brass bite of something old. Behind the door, the market breathed. That was the only word her brain would offer for that long, low, many-person murmur. A living thing with pockets and coins, with buyers and sellers and the sour sweat of choices. “Herrera, the assault tonight on Berwick Street.” “Not my place.” “You were there.” “I was two blocks away, eating a pasty that tasted like a wet mitt. It is not always me.” “You all run in circles.” “You all run in squares.” “You know him.” “No.” He met her eyes when he said it. They were warm again, like tea left five minutes. “I know his type.” “You know this door.” “Yes.” “Then you know I’m going through it.” He looked at her hand again. “You should not go through it alone.” “You going to babysit me.” “I am going to stop someone bleeding out in the stall that sells glimmer tea. After that, I am going to go where I am asked. None of this is babysitting.” The big man on the stairs flexed his fingers around the banister. His knuckles
looked like boulders under skin
. He stepped onto the second step and
loomed
. “Police woman, you carry iron.” Harlow let her coat fall back. The holster sat snug at her hip. The man sniffed. “You check your gun at the line. No iron past the bones. No badges either.” “You want me to go down unarmed into a warren where your friends run knives and spells.” “The market polices itself.” His smile cut his face in two. “Better than your lot.” “Enough.” Tomás held a flat palm between them, the way a paramedic closes a scene. “I’ll vouch one visitor.” “No.” “I vouch. If that vouch is broken, I bring her out by the ear. I pay the price.” “You can’t afford that, doctor.” “You can’t afford me to refuse.” The big man’s eyes turned to Tomás. They
had that shell
glitter again. He weighed it. He let his shoulders settle. “Price then.” “A debt.” Harlow’s neck tightened. The word
tasted like a fishbone
. Tomás looked at her again, patient this time, an old habit from ambulances when breath came in ragged and time bled out too fast. “You don’t want what’s downstairs to crawl upstairs, Detective. So you don’t smash it with the first hammer you find. You pick it up, you look at it close, and you use the right tool.” He rubbed his medallion with his thumb and left the imprint of a cross in the wet. “You come with me, you keep your voice low, you switch off the part of your brain that insists the world is flat. In exchange, you owe me a favour.” “What favour.” “I don’t know yet. When I do, I call, and you will not ignore me.” “You think I make room for favours on my calendar.” “I think you know the
weight
of lives.” “Control, Quinn. I’m at one concealed entry in Camden. No viable backup access. I’m—” “You are what?” Her thumb hovered. The operator filled her ear with rain on plastic. “Going in.” A beat of
silence
. On the other side of the world, someone who’d never see this market held their breath. “Copy, Quinn. Keep channel open.” The big man’s teeth showed behind his lips when he smiled. Tomás pulled a length of bone from his bag, smooth and old, carved with tiny lines like a map of a dry river. He looped the cord off his neck. “That’s yours.” “It’s a loan.” “It’s a favour.” She took it. It weighed less than it looked, warm from his chest. The etchings bit her skin. The door decided to become a door again. She pressed the token to the place where the paint had cracked and the world had gone thin a minute earlier. It breathed in. The seam split, then widened, then widened more. Light pulled up from the belly of the city, yellows and greens, a bruise with a heartbeat. Voices rose, some like hers, others not at all human. “You don’t draw.” “I wasn’t planning to throw a shoot-out in a shop.” “You don’t arrest unless I tell you you can. You don’t threaten to arrest unless you mean to kill. You don’t ask names. You pay if you take tea. You do not eat the sweets.” “I don’t eat the sweets.” The words came out dry. “Does anyone ever eat the sweets.” “That’s why we have a medic.” Harlow thumbed the safety in her head and unbuckled the holster’s outer snap, then fastened it again. Her breath came steady, cold and exact. She looped the cord over her own neck, where it settled against her damp shirt, the Saint Christopher of another man warm on her skin for a second before memory wiped it clean. “Watch my back.” “You’ve got it.” The door drew a final breath and stopped being metal. It became threshold, a thing made of agreement and oils and the bones of whatever animal had given its knuckles to become keys. Harlow set her boot on the top step. The rail felt like wood under her palm, though it
looked like iron
. Tomás stepped beside her, the big man’s shell eyes on both their shoulders. “You keep your badge tucked away, Detective.” “It’s not the badge I’m tucking.” She went down.
created_at
"2026-02-19T12:22:34.896Z"
2/19/2026, 12:22:34 PM
model
"openai/gpt-5-2025-08-07"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
7841
moderation_latency
(null)
generation_time
141624
tokens_prompt
1140
tokens_completion
5414
native_tokens_prompt
984
native_tokens_completion
6665
native_tokens_completion_images
0
native_tokens_reasoning
2944
native_tokens_cached
0
num_media_prompt
(null)
num_input_audio_prompt
(null)
num_media_completion
0
num_search_results
(null)
origin
"https://ncbench.com/"
is_byok
false
finish_reason
"stop"
native_finish_reason
"completed"
usage
0.06788
router
(null)
provider_responses
0
endpoint_id
"7c2f859a-7890-4e8e-b1de-1cd1c0a800b4"
id
"resp_0ff3fd943cc2b390016997008afbe88196b26427230bca3066"
is_byok
false
latency
164
model_permaslug
"openai/gpt-5-2025-08-07"
provider_name
"OpenAI"
status
200
api_type
"completions"
id
"gen-1771503754-Oyg8iraItBlqQzGEdBrp"
upstream_id
"resp_0ff3fd943cc2b390016997008afbe88196b26427230bca3066"
total_cost
0.06788
cache_discount
(null)
upstream_inference_cost
0
provider_name
"OpenAI"
Evaluation details
Result
Evaluator
Details
Meta Data
100.00%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
11
adverbTagCount
0
adverbTags
(empty)
dialogueSentences
120
tagDensity
0.092
leniency
0.183
rawRatio
0
effectiveRatio
0
100.00%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
2800
totalAiIsmAdverbs
0
found
(empty)
highlights
(empty)
100.00%
AI-ism character names
Target: 0 AI-default names (17 tracked, −20% each)
codexExemptions
(empty)
found
(empty)
100.00%
AI-ism location names
Target: 0 AI-default location names (33 tracked, −20% each)
codexExemptions
(empty)
found
(empty)
75.00%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
2800
totalAiIsms
14
found
0
word
"measured"
count
2
1
word
"pumping"
count
1
2
word
"weight"
count
3
3
word
"maw"
count
1
4
word
"footsteps"
count
1
5
word
"flicked"
count
1
6
word
"pulse"
count
1
7
word
"etched"
count
1
8
word
"warmth"
count
1
9
word
"loomed"
count
1
10
word
"silence"
count
1
highlights
0
"measured"
1
"pumping"
2
"weight"
3
"maw"
4
"footsteps"
5
"flicked"
6
"pulse"
7
"etched"
8
"warmth"
9
"loomed"
10
"silence"
100.00%
Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches
0
maxInWindow
0
found
(empty)
highlights
(empty)
100.00%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
0
narrationSentences
195
matches
(empty)
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
4
hedgeCount
0
narrationSentences
195
filterMatches
0
"watch"
hedgeMatches
(empty)
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
302
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
maxSentenceWordsSeen
52
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
2791
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
10
unquotedAttributions
0
matches
(empty)
100.00%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
53
wordCount
1943
uniqueNames
18
maxNameDensity
0.93
worstName
"Harlow"
maxWindowNameDensity
2
worstWindowName
"Harlow"
discoveredNames
Raven
1
Nest
1
Old
1
Compton
1
Street
3
Oxford
1
Court
1
Road
2
Harlow
18
Camden
3
Town
1
Chalk
1
Farm
1
English
1
Tomás
8
Louis
7
Saint
1
Christopher
1
persons
0
"Harlow"
1
"English"
2
"Tomás"
3
"Louis"
4
"Saint"
5
"Christopher"
places
0
"Raven"
1
"Old"
2
"Compton"
3
"Street"
4
"Oxford"
5
"Court"
6
"Road"
7
"Camden"
8
"Town"
9
"Chalk"
10
"Farm"
globalScore
1
windowScore
1
50.00%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
150
glossingSentenceCount
6
matches
0
"tasted like brick dust"
1
"quite meet"
2
"looked like any locked delivery entrance"
3
"looked like boulders under skin"
4
"tasted like a fishbone"
5
"felt like wood under her palm, though i"
6
"looked like iron"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
1
per1kWords
0.358
wordCount
2791
matches
0
"not with seconds, but punches on a pad"
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
1
totalSentences
302
matches
0
"had that shell"
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
146
mean
19.12
std
22.46
cv
1.175
sampleLengths
0
58
1
5
2
26
3
6
4
6
5
6
6
18
7
13
8
6
9
57
10
3
11
3
12
56
13
4
14
22
15
5
16
42
17
20
18
8
19
2
20
62
21
4
22
9
23
35
24
13
25
2
26
69
27
7
28
1
29
1
30
49
31
34
32
1
33
44
34
17
35
7
36
9
37
45
38
6
39
56
40
56
41
2
42
2
43
4
44
79
45
24
46
3
47
1
48
3
49
86
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
0
totalSentences
195
matches
(empty)
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
0
totalVerbs
334
matches
(empty)
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
2
semicolonCount
2
flaggedSentences
4
totalSentences
302
ratio
0.013
matches
0
"Eighteen years stamped each stride; a long time since parade grounds, but it never left."
1
"Louis had already taken the clean option—legs up and over the gate like he’d rehearsed."
2
"Posters swam past; scantily dressed singers and watches as big as heads."
3
"Voices carried—low bargains, laughter that didn’t fit young lungs."
94.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1948
adjectiveStacks
1
stackExamples
0
"long, low, many-person"
adverbCount
50
adverbRatio
0.02566735112936345
lyAdverbCount
4
lyAdverbRatio
0.002053388090349076
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
302
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
302
mean
9.24
std
6.99
cv
0.757
sampleLengths
0
21
1
16
2
10
3
3
4
2
5
6
6
5
7
12
8
9
9
1
10
4
11
6
12
6
13
6
14
18
15
13
16
6
17
15
18
18
19
13
20
11
21
3
22
3
23
7
24
6
25
6
26
11
27
11
28
15
29
4
30
18
31
4
32
5
33
5
34
2
35
15
36
3
37
17
38
20
39
8
40
2
41
15
42
9
43
1
44
14
45
9
46
14
47
4
48
9
49
11
44.37%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
17
diversityRatio
0.2913907284768212
totalSentences
302
uniqueOpeners
88
0.00%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
0
totalSentences
188
matches
(empty)
ratio
0
77.45%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
67
totalSentences
188
matches
0
"He slid out under the"
1
"He tossed a glance over"
2
"He vaulted a row of"
3
"She flowed after him, weight"
4
"He skittered around a puddle"
5
"He glanced back again, and"
6
"He dashed across Oxford Street"
7
"Her watch caught the rain"
8
"He bounded past shuttered shops"
9
"She landed on the other"
10
"She hit the conveyor of"
11
"Her thigh bit where scar"
12
"She dropped two steps at"
13
"He flicked two fingers off"
14
"They clung to her sleeve."
15
"She set her jaw and"
16
"She caught the bar and"
17
"They rattled through the black."
18
"She caught herself talking into"
19
"He looked small through the"
ratio
0.356
0.00%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
173
totalSentences
188
matches
0
"Harlow planted a shoulder against"
1
"The leather watch rode her"
2
"Rats always followed the same"
3
"He slid out under the"
4
"A hood shadowed his face,"
5
"The grin broke, and he"
6
"A woman yanked a cigarette"
7
"The man splashed a puddle"
8
"Harlow tore after him, boots"
9
"He tossed a glance over"
10
"The hood stuck to his"
11
"A lip ring caught the"
12
"He vaulted a row of"
13
"She flowed after him, weight"
14
"A pair of kids reeled"
15
"The boy’s jaw dropped."
16
"Harlow’s voice sliced the night."
17
"Louis, if that was his"
18
"A horn blared."
19
"The driver laid into his"
ratio
0.92
26.60%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
1
totalSentences
188
matches
0
"To anyone else it would"
ratio
0.005
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
88
technicalSentenceCount
2
matches
0
"He put a hand to his pocket and showed her the one thing that didn’t fit his walk, his grin, his shoes."
1
"His English carried heat, syllables soft as if they came wearing winter coats."
100.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
11
uselessAdditionCount
0
matches
(empty)
100.00%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
0
85.5804%