NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-03-06-01KK1HAAFVQJJV16JPYFFM3WS5
Run Details
Model:
GPT-5.4 (Reasoning)
Test:
Bad Writing Habits
Scenario:
Thriller: chase through city streets
Duration:
1m 25s
Cost:
$0.041565
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
97.56%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
75.63%
AI-ism word frequency
(details)
66.67%
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)
50.00%
Name drop frequency
(details)
100.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)
100.00%
Purple prose (modifier overload)
(details)
100.00%
Repeated phrase echo
(details)
100.00%
Sentence length variance
(details)
56.83%
Sentence opener variety
(details)
100.00%
Adverb-first sentence starts
(details)
100.00%
Pronoun-first sentence starts
(details)
71.73%
Subject-first sentence starts
(details)
27.93%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
100.00%
Useless dialogue additions
(details)
87.50%
Dialogue tag variety (said vs. fancy)
(details)
91.1286%
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
Rain slapped the windscreen hard
enough to blur the city into streaks of amber and white.
Detective Harlow Quinn leaned over
the steering wheel and watched a man in a dark coat break from the alley mouth across Greek Street, shoulders hunched, one hand clamped to his side as he ran. “There you are.”
She killed the siren before
the pool car had fully stopped.
The engine ticked behind her
as she stepped out into the downpour.
Water hit her scalp, rolled
down the back of her collar, and slid between her shoulder blades. She barely felt it.
Her gaze locked on the
runner. He glanced back once. Pale face. Sharp nose.
A flash of fear
, then calculation.
He cut across the road
through moving traffic. “Police!”
Her voice cracked through the
rain. Horns answered.
A taxi swerved, tyres hissing
over slick tarmac.
Quinn vaulted the bonnet of
a parked Mini, boots landing hard, and drove forward. Her coat flared behind her.
The leather strap of her
watch
stuck to her wrist.
The suspect reached Frith Street
and knocked into a pair of clubgoers under a black umbrella.
They spun, swore, and vanished
behind a spray of gutter water as Quinn pushed through after him. “Stop now and keep your hands where I can see them.” He ran harder. Of course he did.
Quinn’s breath settled into a
measured
rhythm. Eighteen years had taught her how to chase without wasting motion. Keep the target in sight. Read the corners. Don’t let the city choose for you.
She gained ground when he
slipped near a drain, one hand hitting the wall of a shuttered off-licence. For a second she thought she had him.
Then he darted into an
alley pinched between a fried chicken shop and a tattoo studio. Quinn followed without breaking stride. The alley stank of wet cardboard, old beer, and fryer grease. Bin bags split under her boots. Water cascaded from fire escapes overhead. The man used the narrow space well, bouncing off brick, clipping a stack of milk crates, driving onward like he’d run this route before. That tightened something in her chest. “You know where you’re going,” she muttered. At the alley’s far end he burst into Old Compton Street, cut left, then vanished behind a knot of smokers huddled under a theatre awning. Quinn shoved through the crowd. A man in a
velvet
jacket threw up his hands. “Oi—” “Move.”
She caught sight of the
suspect again as he sprinted past the green neon sign of The Raven’s Nest. The sign buzzed in the rain, casting a sick wash of colour over the pavement. Old maps and black-and-white photographs hung beyond the steamed windows inside, blurred by condensation and distance. The suspect didn’t go in. He kept running. Interesting. Quinn slowed for half a beat.
She turned her head towards
the bar. Two men stood under the shallow shelter of the entrance, smoking beneath the neon glow. One looked away too
quickly
. The other watched her with a blank face that had practised not reacting.
She filed it, then drove
on.
Her radio crackled on her
shoulder. “Quinn, report. You dropped off the grid.” “Foot pursuit. Male, thirties, dark coat, heading north-east from Soho. Send uniforms to Tottenham Court Road and Charing Cross Road pinch points.” “Unit response delayed. Flooding near Centre Point’s caused a mess.” “Then tell them to move their arses.” She thumbed the radio off. No breath to waste. The suspect reached the corner and plunged down a set of service steps Quinn had never noticed before, half-hidden behind scaffolding and a poster board plastered with gig flyers turned to pulp by the rain. A rusted chain hung from one side of the rail, snapped clean through. The city kept these little cracks to itself until someone bled through them. Quinn hit the top stair and checked her speed. The steps dropped steep and slick into darkness. Water rushed down them in silver ribbons.
Somewhere below, a metal door
slammed.
She took the descent in
long controlled strides, one hand skimming the wall. Her shoulder brushed damp tile. Old Underground signage showed through grime in faded red arcs and chipped enamel letters. The air changed first—less rain, more iron, mildew, engine oil, and something sweet that didn’t belong. At the bottom she found a heavy service door propped ajar by a wedge of carved bone. Quinn stared at it. The bone was no larger than a domino, polished smooth, marked with a ring of tiny symbols burned black into its surface. Not decorative. Not random. A token, a marker, a key. Her
jaw clenched
. The memory came fast and unwelcome. Morris on the warehouse floor three years ago, eyes open, rainwater and blood threading together under sodium lights. No wound that made sense. No weapon. The case file rewritten until it
looked like an accident no one believed
. Quinn crouched and lifted the bone with two fingers. It felt warm. She dropped it into her coat pocket and pushed through the door. A tiled passage sloped ahead, old Tube walls buckling with age. Defunct adverts peeled in strips: cigarettes, West End musicals, sun-faded holidays to Spain. Water dripped in a steady rhythm from cables overhead. Farther in, the tunnel breathed with noise. Voices. Dozens of them. A generator thump. Metal clatter. The low
churn
of a crowd doing business. The suspect’s
footsteps
echoed
ahead, then disappeared into the larger sound. Quinn drew her warrant card from one pocket, looked at it, and put it away. The little plastic rectangle belonged to a world with warrants, cordons, clean arrest forms, and CCTV requests. It would get her nowhere here. She slipped her hand inside her coat and rested it near the holster at her hip instead. The tunnel widened. She stopped dead at the threshold. An abandoned station platform opened before her, transformed into something illicit and alive. Bare bulbs and hanging work lamps threw dirty gold across the curved ceiling. Stalls lined the platform in crooked rows, built from trestle tables, packing crates, old display cabinets, and sheets of corrugated metal. Steam rose from vats. Glass glimmered on shelves. A woman in a fox-fur coat held up a string of charms that looked suspiciously like finger bones. A man in butcher’s whites hacked at something blue-black on a stained block while a queue waited with folded notes. Smoke drifted from braziers set in old oil drums. Voices bounced off tile and brick in accents from half the city and several places beyond it. No one dressed for fancy dress. No one
looked embarrassed
. They traded with the focus of surgeons and thieves. Quinn stood just inside the mouth of the tunnel and let the scene hit her in full. So this was where the missing evidence went. Where impossible witness statements were born. Where her dead partner had begun to disappear from the world she understood. A skinny boy by the entrance spotted her first. His eyes dropped to her coat, her posture, the cut of her holster under the fabric. He hissed through his teeth. Heads turned in a ripple. Music from a crackling radio faltered somewhere deeper in the station. Quinn stepped onto the platform. “I’m looking for a man in a dark coat. Medium height. Ran in thirty seconds ago.” Blank faces met her. Too blank. An old woman behind a table of stoppered jars grinned, gums shining wetly. “Lots of men in coats tonight, darling.” A few nearby laughed. Not warm laughter. Testing. Quinn walked past her stall and
scanned
the crowd. Every instinct she had screamed at her to map exits, count hands, pick threats. Tunnel mouths at both ends. One staircase on the far side, half collapsed.
At least forty people in
sight.
More in the shadows between
columns. Many watched her. Some watched with amusement. Some with hunger sharpened to a point. She saw her suspect near the middle of the platform, shoving through a cluster of buyers gathered around a glass case. He looked back and flinched when he realised she’d followed. “There,” Quinn snapped, and moved. The crowd tightened against her route at once. Not panic. Deliberate obstruction. A porter’s trolley squealed across her path. She slapped it aside. Bottles smashed underfoot. Bitter herbal stink burst up. Someone grabbed her sleeve. She tore free and drove an elbow backwards into ribs. A man folded with a cough. “Out of my way.” The suspect leapt over a stack of old signal boxes and cut behind a stall draped with black netting. Quinn pushed after him. The stallholder, a bald woman with tattooed eyelids, dropped her cigarette into a tray and spread both arms. “Private business.” “Move.” “Not in that tone.” Quinn drew her warrant card again and shoved it within inches of the woman’s face. “Metropolitan Police. You obstruct me, I shut every entrance to this place by morning.” The woman looked at the card, then at Quinn’s eyes, and smiled like she’d just heard a joke worth savouring. “By morning?” Quinn’s patience snapped. She shoved past, sending the netting askew. Hooks and charms rattled around her. The suspect had reached the track bed now, jumping down onto the gravel between rails black with old grease and standing water. He
was heading
for the opposite tunnel. Quinn jumped after him. Her boots landed hard, splashing foul water up her trousers. The rails gleamed at her feet. The tunnel ahead swallowed light in ragged slices. “Stop and get on the ground.” He spun as he ran, hand dipping inside his coat. Quinn drew her pistol. “Don’t.” He froze for one precious half-second, then flung
not a weapon but a fistful of powder at the ground between them
. It burst in a white flash and a bang that punched the air from her lungs. Quinn flinched, vision washed raw. The market erupted around her—shouts, curses, laughter.
By the time the bright
smear cleared from her eyes, the suspect had vanished into the tunnel mouth. She lowered the gun enough to move and listened. Footsteps. One set. Fast. Fading.
Then another sound drifted from
the tunnel. Not his steps. A wet scrape, deep and irregular, as if something heavy dragged itself over concrete farther in. The nearest stallholders had gone quiet.
Even the mockery had dropped
out of their faces. A man carrying a crate edged back from the tunnel and crossed himself. Quinn kept her pistol level and turned towards the platform. “What’s in there?” No one answered. Rainwater still dripped from her coat hem.
Somewhere above, London carried on
with cabs, kebab shops, late shifts, and drunks under awnings, unaware of the station breathing beneath its feet. Quinn looked at the tunnel, then back at the crowd hemming the track bed. Her suspect had gone to ground in a place these people respected enough to fear. That mattered. So did the fact that she stood alone, with no backup close and no idea what rules applied below street level. Her hand tightened on the grip. From the edge of the platform a
familiar
voice cut through the hush. “Detective.” Tomás Herrera stood near a pillar half-covered in peeling station maps, rain-speckled curls pushed back from his forehead, a messenger bag slung across his chest. The scar along his left forearm flashed pale when he lifted his hand. A Saint Christopher medallion glinted at his throat. He looked from Quinn to the tunnel and swore under his breath. “You picked a rotten night to come down here.” “You know him?” Quinn kept the pistol aimed low, not at Tomás, not away from the dark. “I know what’s past that tunnel.” “Then talk.” Tomás stepped closer, careful, palms open where the market could see them. “The man you chased bought entry with blood money and a bone token. He won’t get far if they decide he’s bad for trade.” “That sounded like they’ve already decided.” “That sound wasn’t them.” A fresh scrape rolled out of the tunnel, followed by a faint metallic clink. Tomás looked at the darkness and his face hardened. “If you go in there with that gun and that badge stitched into your spine, you’ll die stupid.” Quinn shifted her stance and
measured
the tunnel mouth, the distance, the crowd, Tomás’s expression. “Then you lead.”
created_at
"2026-03-06T12:17:50.083Z"
3/6/2026, 12:17:50 PM
model
"openai/gpt-5.4-20260305"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
387
moderation_latency
(null)
generation_time
85218
tokens_prompt
1140
tokens_completion
3245
native_tokens_prompt
984
native_tokens_completion
2607
native_tokens_completion_images
0
native_tokens_reasoning
0
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.041565
router
(null)
provider_responses
0
endpoint_id
"9ff5625c-403f-4d7f-b895-58ac7295062c"
id
"resp_087678b57c9fa4520169aac5ee256081938354f949b1248fbc"
is_byok
false
latency
145
model_permaslug
"openai/gpt-5.4-20260305"
provider_name
"OpenAI"
status
200
user_agent
"langchainjs-openai/1.0.0 ((node/v24.14.0; linux; x64))"
http_referer
(null)
api_type
"completions"
id
"gen-1772799470-dcRptvBA7cPAECNW7GyP"
upstream_id
"resp_087678b57c9fa4520169aac5ee256081938354f949b1248fbc"
total_cost
0.041565
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
3
adverbTagCount
0
adverbTags
(empty)
dialogueSentences
32
tagDensity
0.094
leniency
0.188
rawRatio
0
effectiveRatio
0
97.56%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
2052
totalAiIsmAdverbs
1
found
0
adverb
"quickly"
count
1
highlights
0
"quickly"
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.63%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
2052
totalAiIsms
10
found
0
word
"measured"
count
2
1
word
"velvet"
count
1
2
word
"jaw clenched"
count
1
3
word
"churn"
count
1
4
word
"footsteps"
count
2
5
word
"echoed"
count
1
6
word
"scanned"
count
1
7
word
"familiar"
count
1
highlights
0
"measured"
1
"velvet"
2
"jaw clenched"
3
"churn"
4
"footsteps"
5
"echoed"
6
"scanned"
7
"familiar"
66.67%
Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches
2
maxInWindow
2
found
0
label
"jaw/fists clenched"
count
1
1
label
"flicker of emotion"
count
1
highlights
0
"jaw clenched"
1
"A flash of fear"
100.00%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
1
narrationSentences
198
matches
0
"looked embarrassed"
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
1
hedgeCount
0
narrationSentences
198
filterMatches
0
"watch"
hedgeMatches
(empty)
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
227
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
maxSentenceWordsSeen
36
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
2051
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
4
unquotedAttributions
0
matches
(empty)
50.00%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
62
wordCount
1846
uniqueNames
22
maxNameDensity
1.52
worstName
"Quinn"
maxWindowNameDensity
3.5
worstWindowName
"Quinn"
discoveredNames
Harlow
1
Quinn
28
Greek
1
Street
3
Mini
1
Frith
1
Old
3
Compton
1
Raven
1
Nest
1
Underground
1
Tube
1
West
1
End
1
Spain
1
London
1
Herrera
1
Saint
1
Christopher
1
Tomás
5
Water
4
One
3
persons
0
"Harlow"
1
"Quinn"
2
"Mini"
3
"Raven"
4
"Herrera"
5
"Saint"
6
"Christopher"
7
"Tomás"
8
"Water"
9
"One"
places
0
"Greek"
1
"Street"
2
"Frith"
3
"Old"
4
"Compton"
5
"West"
6
"End"
7
"Spain"
8
"London"
globalScore
0.742
windowScore
0.5
100.00%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
133
glossingSentenceCount
1
matches
0
"looked like an accident no one believed"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
1
per1kWords
0.488
wordCount
2051
matches
0
"not a weapon but a fistful of powder at the ground between them"
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
0
totalSentences
227
matches
(empty)
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
108
mean
18.99
std
19.73
cv
1.039
sampleLengths
0
51
1
3
2
50
3
22
4
1
5
45
6
33
7
11
8
3
9
4
10
59
11
16
12
5
13
47
14
6
15
7
16
40
17
1
18
1
19
50
20
8
21
1
22
46
23
6
24
6
25
7
26
22
27
10
28
7
29
9
30
61
31
30
32
48
33
17
34
4
35
35
36
44
37
12
38
12
39
57
40
11
41
55
42
3
43
6
44
119
45
19
46
17
47
27
48
30
49
5
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
0
totalSentences
198
matches
(empty)
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
1
totalVerbs
317
matches
0
"was heading"
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
2
semicolonCount
0
flaggedSentences
2
totalSentences
227
ratio
0.009
matches
0
"The air changed first—less rain, more iron, mildew, engine oil, and something sweet that didn’t belong."
1
"The market erupted around her—shouts, curses, laughter."
100.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1857
adjectiveStacks
0
stackExamples
(empty)
adverbCount
52
adverbRatio
0.028002154011847066
lyAdverbCount
5
lyAdverbRatio
0.0026925148088314485
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
227
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
227
mean
9.04
std
6.39
cv
0.707
sampleLengths
0
16
1
35
2
3
3
11
4
12
5
17
6
4
7
6
8
4
9
2
10
2
11
6
12
8
13
1
14
6
15
2
16
8
17
14
18
5
19
10
20
16
21
17
22
11
23
3
24
4
25
7
26
11
27
5
28
3
29
7
30
18
31
8
32
16
33
5
34
11
35
6
36
6
37
24
38
6
39
7
40
25
41
5
42
10
43
1
44
1
45
19
46
15
47
16
48
5
49
3
56.83%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
11
diversityRatio
0.3700440528634361
totalSentences
227
uniqueOpeners
84
100.00%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
8
totalSentences
179
matches
0
"Of course he did."
1
"Then he darted into an"
2
"Somewhere below, a metal door"
3
"At least forty people in"
4
"More in the shadows between"
5
"Then another sound drifted from"
6
"Even the mockery had dropped"
7
"Somewhere above, London carried on"
ratio
0.045
100.00%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
41
totalSentences
179
matches
0
"She killed the siren before"
1
"She barely felt it."
2
"Her gaze locked on the"
3
"He glanced back once."
4
"He cut across the road"
5
"Her voice cracked through the"
6
"Her coat flared behind her."
7
"They spun, swore, and vanished"
8
"He ran harder."
9
"She gained ground when he"
10
"She caught sight of the"
11
"He kept running."
12
"She turned her head towards"
13
"She filed it, then drove"
14
"Her radio crackled on her"
15
"She thumbed the radio off."
16
"She took the descent in"
17
"Her shoulder brushed damp tile."
18
"Her jaw clenched."
19
"It felt warm."
ratio
0.229
71.73%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
139
totalSentences
179
matches
0
"Rain slapped the windscreen hard"
1
"Detective Harlow Quinn leaned over"
2
"She killed the siren before"
3
"The engine ticked behind her"
4
"Water hit her scalp, rolled"
5
"She barely felt it."
6
"Her gaze locked on the"
7
"He glanced back once."
8
"A flash of fear, then"
9
"He cut across the road"
10
"Her voice cracked through the"
11
"A taxi swerved, tyres hissing"
12
"Quinn vaulted the bonnet of"
13
"Her coat flared behind her."
14
"The leather strap of her"
15
"The suspect reached Frith Street"
16
"They spun, swore, and vanished"
17
"He ran harder."
18
"Quinn’s breath settled into a"
19
"She gained ground when he"
ratio
0.777
27.93%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
1
totalSentences
179
matches
0
"By the time the bright"
ratio
0.006
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
77
technicalSentenceCount
3
matches
0
"The other watched her with a blank face that had practised not reacting."
1
"A woman in a fox-fur coat held up a string of charms that looked suspiciously like finger bones."
2
"A wet scrape, deep and irregular, as if something heavy dragged itself over concrete farther in."
100.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
3
uselessAdditionCount
0
matches
(empty)
87.50%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
2
fancyCount
2
fancyTags
0
"she muttered (mutter)"
1
"Quinn snapped (snap)"
dialogueSentences
32
tagDensity
0.063
leniency
0.125
rawRatio
1
effectiveRatio
0.125
91.1286%