NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-03-18-01KM07JME66WZPJDPAQS74YKZE
Run Details
Model:
GPT-5.4 Mini (Reasoning, Low)
Test:
Bad Writing Habits
Scenario:
Literary fiction: old friends reunite
Duration:
14.8s
Cost:
$0.013562
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
92.82%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
78.46%
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)
0.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)
94.00%
Purple prose (modifier overload)
(details)
100.00%
Repeated phrase echo
(details)
100.00%
Sentence length variance
(details)
42.98%
Sentence opener variety
(details)
73.53%
Adverb-first sentence starts
(details)
100.00%
Pronoun-first sentence starts
(details)
22.50%
Subject-first sentence starts
(details)
0.00%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
69.44%
Useless dialogue additions
(details)
100.00%
Dialogue tag variety (said vs. fancy)
(details)
85.7909%
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="4412" name="Aurora Carter" aliases="Rory, Laila, Aurora, Carter, Malphora" pronouns="she/her" species="Human" storyRole="Protagonist"> <eyeColor>bright blue</eyeColor> <hair>straight shoulder-length black</hair> <height>5'6"</height> <age>25</age> <scar>small crescent-shaped scar on her left wrist from a childhood accident</scar> <description>Aurora, referred to by her friends as Rory, is cool-headed, intelligent, and known for quick out-of-the-box thinking.</description> <backstory>Born in Cardiff to an Irish barrister father (Brendan Carter) and Welsh teacher mother (Jennifer Carter née Ellis), Rory reluctantly pursued Pre-Law at Cardiff University. She fled to London at the behest of her childhood friend Eva after leaving an abusive ex named Evan. By day, Rory works part-time as a delivery person for Yu-Fei Cheung's Golden Empress restaurant. She lives in a flat above Silas' bar.</backstory> </character> <character id="4413" name="Silas Blackwood" aliases="Silas, Si, the Spymaster" pronouns="he/him" species="Human" storyRole="Mentor"> <eyeColor>hazel</eyeColor> <hair>grey-streaked auburn</hair> <height>6'1"</height> <age>58</age> <beard>neatly trimmed, matching his grey-streaked auburn hair</beard> <limp>slight limp in his left leg from an old knee injury</limp> <signetRing>silver signet ring, always worn on his right hand</signetRing> <description>Silas is a retired intelligence operative turned bar owner. He carries himself with quiet authority.</description> <backstory>Former MI6 field agent who retired after a botched operation in Prague left him with a permanent knee injury. He opened "The Raven's Nest" bar in Soho as a front for his network of contacts.</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> </codex> Continue the story using the following instructions: <instructions> Write a fully fleshed out scene of at least 1000 words in the literary fiction genre. Two old friends who haven't seen each other in years run into each other unexpectedly at a bar. One of them has changed significantly. Through their conversation and the tension between who they were and who they've become, reveal the weight of time and unspoken regret. 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
The green neon above The
Raven’s Nest buzzed against the damp Soho dusk, throwing a sickly stripe over the pavement.
Rory ducked beneath it with
a stack of delivery tubs pressed to her ribs, her phone wedged under her chin, Yu-Fei’s voice still ringing in her ear. “Don’t let them cool, Aurora. That lot paid enough to eat them warm.”
Rory shifted the bags higher
and eased the bar door open with her shoulder. The
warmth
hit first. Old brass, beer, citrus cleaner, fried onions from the kitchen.
The place wore its usual
face: low amber lamps, black-and-white photographs, maps curling at the corners, and the roomful of voices that rose and fell like a tide under the music. “Back again, Rory?”
a man near the till
called. She angled her head. “You lot keep feeding me, I keep coming back.”
Silas stood at the far
end of the bar, one hand resting on the polished wood, the silver signet ring on his right hand flashing when he shifted a glass.
His limp barely showed until
he crossed the room, but Rory always caught it.
He gave her a quick
once-over, then
flicked
his gaze to the bags. “You brought enough to shame the kitchen,” he muttered. “Your regulars ordered like they hadn’t eaten in a week.” “Some of them hadn’t.”
Rory snorted and set the
delivery tubs down on the counter. “Yu-Fei said to tell you she’d start charging you for storage if you kept using her dining room as a waiting bay.” Silas’s mouth twitched. “She’d enjoy that. Means she gets to bark at me.” He took the top tub, then paused, eyes shifting past Rory’s shoulder. Not at her. Through her.
The change in him landed
before she turned.
The room had gone strangely
thin.
Someone had stepped in behind
her, and the air
seemed to
have made room without asking her permission.
Rory turned with the second
tub still in her hands. At first she didn’t know the woman.
Then recognition hit in two
hard blows, one after the other: the line of the mouth, the shape of the eyes, the tilt of the chin she had once seen lit by Cardiff rain and cheap fairy lights.
The rest had been stripped
and rebuilt.
The woman wore a charcoal
coat cut close to the body, hair pulled into a clean knot at the nape of her neck. No flyaway fringe. No chipped polish. No battered tote bag with a cracked strap and a keychain shaped like a red fox.
Her earrings were small gold
hoops.
Her nails were bare and
immaculate.
She had the kind of
face people trusted in meetings. Rory’s fingers tightened on the plastic tub until the lid creaked. “Megan?” The woman’s gaze snapped to hers, sharp and bright and gone still all at once. “No one’s called me that in years.” Rory let out a laugh that came out wrong, half breath, half disbelief. “Jesus.” Megan looked her over in return, her eyes sliding from Rory’s black hair, damp at the ends from the drizzle, to the delivery jacket, to the crescent scar on her left wrist where the sleeve had ridden up. “You haven’t changed enough,” Megan said. Rory barked another laugh. “That was rude.” “It was honest.” Silas set the glass down. “You two want me to leave you to it?” Rory glanced at him, then back at Megan. “You know her?” Silas’s gaze settled on Megan with a fraction of caution. “I know the shape of a few ghosts.” Megan’s mouth twitched, but it didn’t become a smile. “That sounds like something you’d say.” Silas only lifted one shoulder. “And yet, here we were.” Rory stared between them. “You’re both talking like this is normal.” “It isn’t,” Megan said. “No,” Rory said, still looking at her. “It bloody isn’t.” For a second nobody moved. The bar noise rolled on around them, someone laughing too loudly near the back, glasses clinking, a pool cue thudding against felt. Rory felt the
weight
of the tubs in her hands and the heat building under her collar. Megan broke first. “Can we sit?” Rory looked at the nearest booth. A dark leather corner beneath one of the old maps.
She gave a short jerk
of her chin and led the way, setting the tubs on the table hard enough to make the cutlery jump. Megan slid in opposite her. The coat opened just enough for Rory to catch the edge of a white shirt, pressed flat. No grime. No rolled sleeves. No old denim jacket with paint on the cuffs. Megan folded her hands on the table, one thumb pressing the other, and Rory saw the faint ridge of a healed cut across her knuckle. “You look expensive,” Rory said. Megan’s
eyes narrowed
. “You look like you fought a hedge.” “Delivery work does that to a person.” Silas brought two waters over without asking.
He set one in front
of Rory, one in front of Megan. “You didn’t come in for dinner,” he said. “No,” Megan replied. “No,” Rory repeated. “That’s the part where I’d
really
like someone to explain what’s going on.” Silas leaned one elbow against the booth. “That’s between old friends, I think.” Rory shot him a look. “Since when did you become the voice of restraint?” “Since I learned it was useful.”
He straightened and moved back
towards the bar, though Rory knew he
wasn’t actually leaving
.
He’d hear every word if
he wanted to.
Probably read their pulse from
across the room. Rory wrapped both hands around the water bottle and looked at Megan. “You vanished.” Megan’s shoulders held steady. “You left.” Rory stared at her. “I moved to London. You know that. I wrote.” “You sent three messages in six years.” “Three?” Rory’s voice cracked on the last word, anger slipping through before she could cork it. “You made me count?” Megan’s gaze held hers. “I answered one.” “That’s not an answer.” “It was at the time.” Rory let the
silence
sit between them, thick and alive.
She remembered a kitchen in
Cardiff, too small for the two of them and the kettle that never quite switched off, rain tapping the window while they bent over application forms and cheap instant noodles. Megan with her hair shoved into a scrunchie, flour on her cheek because she’d stolen half the cake mix before baking it. Megan laughing so hard she’d bent double when Rory had
tried to
fake a Welsh accent for a joke and butchered it
completely
. Megan looked too polished now for those memories. Too tailored. Too clean.
It made Rory angry in
a place she hadn’t expected. “You answered once,” Rory said, lower now, “to tell me not to come to your mum’s funeral.” Megan’s face changed at that.
It was small, but Rory
saw it. A
flicker
at the mouth. The lids lowering over her eyes like shutters. “You shouldn’t have come.” “I did come.” “I saw the flowers.” Rory blinked. “You were there?” Megan’s jaw tightened. “At the back.” “Then you could’ve said something.” “And ruin your heroic gesture? You always did love an audience.” Rory laughed then, but it had no humour in it. “Christ. That’s what you’ve got? That’s your greeting after seven years?” Megan’s fingers finally shifted.
She touched the bottle, turned
it once, then let go. “I didn’t know what else to use.” “You could’ve started with hello.” “Hello,”
Megan said, and the word landed flat between them
. Rory looked at her properly then, at the neat coat, the clipped hair, the almost severe stillness in her posture. “What happened to you?” Megan gave a tiny exhale through her nose. “You ask that like you didn’t know people changed.” “I know they change. I just didn’t expect… this.” “Disappointing?” “Don’t start.” “You started it.” Rory leaned back and crossed her arms. “Fine. You look like you’ve got a board meeting in the City and a knife hidden in your boot.” That got a real reaction. Megan’s mouth pressed thin, though
not quite into a smile
. “You were always quicker than you looked.” “Thanks.” “It wasn’t a compliment.” “I know.” The booth creaked as Rory shifted.
She could feel the old
hurt under the anger, the same one that had sat in her chest for years like a stone she’d stopped noticing until somebody pressed on it. “You disappeared after Cardiff,” Rory said. “No warning. No address. One day we were making plans to share a flat in London and the next you were gone.” Megan’s gaze dropped to the table. “My father had other plans.” Rory’s voice went softer despite herself. “He was the reason, wasn’t he?” Megan didn’t answer straight away. She reached for the water, twisted the cap, then set it down untouched. “He had friends,” she said. “The kind who asked questions when they shouldn’t. He decided I’d be safer somewhere else.” “Safer,”
Rory echoed, disbelief curdling in her voice
. “So you just went.” “I had to.” “And you couldn’t tell me?” “No.” The single word had no softness in it. No apology either. Rory looked away first, at the maps on the wall. Old routes. Old borders. Lines drawn by hands long dead.
She found that she hated
how much the room fit this conversation. Everything in it was a record of things that had once moved and now hung still. “You could’ve let me know you were alive,” she said. Megan’s eyes stayed on her. “You were the one who left Cardiff in the first place.” Rory’s throat tightened. “Because I had to.” Silence. It stretched. Then Megan said, “He hit you again.” Rory went still. The room
seemed to
tilt by a degree. She didn’t ask who. She didn’t have to. Megan’s eyes had gone hard, but not cruel. “I saw the messages. You were careful, but not careful enough. That bastard followed you farther than you knew.” Rory’s fingers loosened from her sleeves. The scar on her wrist caught the light when she moved. “You knew?” “I guessed.” “And you never called?” Megan’s mouth opened, then shut again. She looked away for the first time. Rory let out a slow breath and laughed once, a dry sound that scraped the back of her throat. “Brilliant. So that’s what this is. You were avoiding me because of him?” “Partly.” “Partly.” Megan’s shoulders rose and fell. “You always asked for the whole truth and hated it when it came in pieces.” “Because pieces are useless.” “They aren’t useless when they’re all you’ve got.” Rory stared at her. There it was. Not the old girl she’d remembered, the one who stole chips from her plate and quoted bad films and kicked off her shoes the second they got home. This version had edges filed down and rebuilt by whatever she’d survived. She carried herself like someone used to keeping doors shut. Rory
hated that she
wanted to know more and hated more that she understood, in the raw centre of herself, what
being made
careful could cost. “You came in here tonight,” Rory said, “and what? You wanted a drink? A fight? Closure? Pick one.” Megan’s eyes flashed. “I came because Silas called.” Rory turned
sharply
toward the bar. Silas, standing with a cloth in one hand, lifted his brows in mild apology that looked nothing like remorse. “I said I thought I’d seen a face she might know. I didn’t say she’d have a heart attack.” Rory looked back at Megan. “You spoke to him before you spoke to me?” “I was arranging to meet someone here.” “Someone.” Megan’s chin tipped up a fraction. “That’s all you need for now.” Rory gave a short, incredulous laugh. “Listen to you. ‘That’s all you need for now.’ You sound like him.” Megan flinched, just a little, and Rory saw it land. The buzz of the bar crept back in around them. A bottle broke somewhere near the far end. Someone cursed. The kitchen door swung open and shut. Silas moved behind the counter, his reflection doubling in the mirror behind the spirits. Megan reached into her coat pocket and placed a folded piece of paper on the table. Smooth, cream-coloured stock. Expensive enough to annoy Rory on principle. Rory didn’t touch it. “What’s that?” “An address.” “For what?” Megan’s eyes held hers, and for the first time the polish cracked enough for Rory to see the strain underneath it, the long-held line of something tight and unfinished. “For the reason I came back,” she said.
created_at
"2026-03-18T10:24:04.054Z"
3/18/2026, 10:24:04 AM
model
"openai/gpt-5.4-mini-20260317"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
1190
moderation_latency
(null)
generation_time
14645
tokens_prompt
1094
tokens_completion
3375
native_tokens_prompt
982
native_tokens_completion
2850
native_tokens_completion_images
0
native_tokens_reasoning
108
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.0135615
router
(null)
provider_responses
0
endpoint_id
"9ee065b2-3d1c-43bc-bdd7-28af3b148282"
id
"resp_0f4ece31f34350100169ba7d441dac8194a4d5184e15ecb47e"
is_byok
false
latency
206
model_permaslug
"openai/gpt-5.4-mini-20260317"
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-1773829444-662MfDkeMWs4otNfBqpA"
upstream_id
"resp_0f4ece31f34350100169ba7d441dac8194a4d5184e15ecb47e"
total_cost
0.0135615
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
18
adverbTagCount
0
adverbTags
(empty)
dialogueSentences
103
tagDensity
0.175
leniency
0.35
rawRatio
0
effectiveRatio
0
92.82%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
2089
totalAiIsmAdverbs
3
found
0
adverb
"really"
count
1
1
adverb
"completely"
count
1
2
adverb
"sharply"
count
1
highlights
0
"really"
1
"completely"
2
"sharply"
100.00%
AI-ism character names
Target: 0 AI-default names (16 tracked, −20% each)
codexExemptions
0
"Blackwood"
found
(empty)
100.00%
AI-ism location names
Target: 0 AI-default location names (33 tracked, −20% each)
codexExemptions
(empty)
found
(empty)
78.46%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
2089
totalAiIsms
9
found
0
word
"warmth"
count
1
1
word
"flicked"
count
1
2
word
"weight"
count
1
3
word
"pulse"
count
1
4
word
"silence"
count
2
5
word
"flicker"
count
1
6
word
"could feel"
count
1
7
word
"echoed"
count
1
highlights
0
"warmth"
1
"flicked"
2
"weight"
3
"pulse"
4
"silence"
5
"flicker"
6
"could feel"
7
"echoed"
100.00%
Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches
1
maxInWindow
1
found
0
label
"eyes widened/narrowed"
count
1
highlights
0
"eyes narrowed"
100.00%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
0
narrationSentences
158
matches
(empty)
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
0
hedgeCount
3
narrationSentences
158
filterMatches
(empty)
hedgeMatches
0
"seemed to"
1
"tried to"
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
242
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
maxSentenceWordsSeen
38
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
2089
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
37
unquotedAttributions
0
matches
(empty)
0.00%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
109
wordCount
1465
uniqueNames
10
maxNameDensity
3.62
worstName
"Rory"
maxWindowNameDensity
5.5
worstWindowName
"Rory"
discoveredNames
Raven
1
Nest
1
Soho
1
Yu-Fei
1
Rory
53
Cardiff
2
Megan
37
Silas
9
Welsh
1
Old
3
persons
0
"Raven"
1
"Nest"
2
"Yu-Fei"
3
"Rory"
4
"Megan"
5
"Silas"
places
0
"Soho"
1
"Cardiff"
globalScore
0
windowScore
0
100.00%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
96
glossingSentenceCount
1
matches
0
"not quite into a smile"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
0
per1kWords
0
wordCount
2089
matches
(empty)
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
2
totalSentences
242
matches
0
"found that she"
1
"hated that she"
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
134
mean
15.59
std
15.39
cv
0.987
sampleLengths
0
47
1
13
2
59
3
9
4
13
5
57
6
9
7
10
8
4
9
33
10
13
11
25
12
6
13
18
14
10
15
7
16
45
17
67
18
11
19
1
20
15
21
7
22
14
23
38
24
6
25
7
26
3
27
14
28
11
29
18
30
15
31
10
32
11
33
4
34
10
35
44
36
6
37
41
38
61
39
5
40
10
41
7
42
19
43
8
44
3
45
16
46
13
47
14
48
6
49
31
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
2
totalSentences
158
matches
0
"been stripped"
1
"being made"
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
1
totalVerbs
253
matches
0
"wasn’t actually leaving"
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
0
semicolonCount
0
flaggedSentences
0
totalSentences
242
ratio
0
matches
(empty)
94.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1471
adjectiveStacks
1
stackExamples
0
"Smooth, cream-coloured stock."
adverbCount
57
adverbRatio
0.03874915023793338
lyAdverbCount
11
lyAdverbRatio
0.007477906186267845
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
242
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
242
mean
8.63
std
7.05
cv
0.817
sampleLengths
0
20
1
27
2
13
3
14
4
4
5
10
6
31
7
9
8
4
9
9
10
30
11
14
12
13
13
9
14
10
15
4
16
11
17
22
18
3
19
10
20
12
21
3
22
2
23
8
24
6
25
18
26
10
27
7
28
38
29
7
30
23
31
3
32
3
33
16
34
6
35
6
36
10
37
11
38
1
39
15
40
7
41
13
42
1
43
38
44
6
45
4
46
3
47
3
48
5
49
9
42.98%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
17
diversityRatio
0.23140495867768596
totalSentences
242
uniqueOpeners
56
73.53%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
3
totalSentences
136
matches
0
"Then recognition hit in two"
1
"Probably read their pulse from"
2
"Then Megan said,"
ratio
0.022
100.00%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
22
totalSentences
136
matches
0
"She angled her head."
1
"His limp barely showed until"
2
"He gave her a quick"
3
"He took the top tub,"
4
"Her earrings were small gold"
5
"Her nails were bare and"
6
"She had the kind of"
7
"She gave a short jerk"
8
"He set one in front"
9
"He straightened and moved back"
10
"He’d hear every word if"
11
"She remembered a kitchen in"
12
"It made Rory angry in"
13
"It was small, but Rory"
14
"She touched the bottle, turned"
15
"She could feel the old"
16
"She reached for the water,"
17
"She found that she hated"
18
"She didn’t ask who."
19
"She didn’t have to."
ratio
0.162
22.50%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
119
totalSentences
136
matches
0
"The green neon above The"
1
"Rory ducked beneath it with"
2
"Rory shifted the bags higher"
3
"The warmth hit first."
4
"The place wore its usual"
5
"a man near the till"
6
"She angled her head."
7
"Silas stood at the far"
8
"His limp barely showed until"
9
"He gave her a quick"
10
"Rory snorted and set the"
11
"Silas’s mouth twitched."
12
"He took the top tub,"
13
"The change in him landed"
14
"The room had gone strangely"
15
"Someone had stepped in behind"
16
"Rory turned with the second"
17
"The rest had been stripped"
18
"The woman wore a charcoal"
19
"Her earrings were small gold"
ratio
0.875
0.00%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
0
totalSentences
136
matches
(empty)
ratio
0
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
56
technicalSentenceCount
1
matches
0
"Silas, standing with a cloth in one hand, lifted his brows in mild apology that looked nothing like remorse."
69.44%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
18
uselessAdditionCount
2
matches
0
"Megan said, and the word landed flat between them"
1
"Rory echoed, disbelief curdling in her voice"
100.00%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
16
fancyCount
2
fancyTags
0
"he muttered (mutter)"
1
"Rory repeated (repeat)"
dialogueSentences
103
tagDensity
0.155
leniency
0.311
rawRatio
0.125
effectiveRatio
0.039
85.7909%