NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-02-17-01KHMQHB4PQH8DXSV82C0FDFMZ
Run Details
Model:
o4 Mini
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
30.1s
Cost:
$0.016805
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
86.79%
Adverbs in dialogue tags
(details)
90.61%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
15.47%
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)
92.79%
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)
0.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)
59.38%
Sentence opener variety
(details)
100.00%
Adverb-first sentence starts
(details)
34.77%
Pronoun-first sentence starts
(details)
47.25%
Subject-first sentence starts
(details)
33.56%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
0.00%
Useless dialogue additions
(details)
55.66%
Dialogue tag variety (said vs. fancy)
(details)
80.5421%
Overall
Model input
System
You are an expert novelist with a gift for vivid, immersive prose. You write in tight third-person limited point of view with a strong narrative voice. Your prose is clean, precise, and engaging — you favor strong verbs, concrete details, and natural-sounding dialogue. You will be given a story bible (codex) containing canonical details about characters, locations, items, and lore. Use these details to ground your writing in the established world. Stay consistent with the codex. Write only the prose of the scene. Do not include titles, chapter headings, markdown formatting, or any commentary before or after the scene.
User/Human
<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="4415" name="Lucien Moreau" aliases="Lucien, Luc, the Frenchman" pronouns="he/him" species="Half-Demon" storyRole="Ally"> <eyeColor>heterochromatic — one amber, one black</eyeColor> <hair>slicked-back platinum blond</hair> <height>5'11"</height> <age>32</age> <cane>ivory-handled cane that conceals a thin blade</cane> <dress>tailored charcoal suits</dress> <description>An impeccably dressed fixer and information broker in London's supernatural underworld. He speaks four languages fluently.</description> <backstory>Born in Marseille to a human mother and a demon father from the realm of Avaros.</backstory> </character> <location id="858" name="Eva's Flat" aliases="Eva's place, the flat on Brick Lane" realm="Earth"> <cat>tabby cat named Ptolemy</cat> <security>three deadbolts on the front door</security> <description>A cramped one-bedroom flat above a curry house on Brick Lane, East London. Every surface is covered with books, scrolls, and research notes.</description> </location> </codex> Write a fully fleshed out scene of at least 1000 words in the romance genre. Two people who parted on complicated terms are forced together again when one shows up unannounced at the other's flat. There's history between them — attraction, hurt, and things left unsaid. Write the scene from the moment the door opens. 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.
Model response
Messages
Meta
AI
Aurora Carter’s fingers hovered over
the gilt edges of a half-unfurled scroll as the third knock rattled against the battered oak door. Ptolemy, the flat’s tabby
sentinel
, lifted his striped tail from the pile of research notes and padded down the narrow corridor, ears flat.
Aurora’s heart hammered in a
staccato she barely recognized. Who on earth would knock this late—this insistently—at Eva’s flat, with its three deadbolts and piles of erudite detritus? She set her quill aside, blinked at the twisting script on the parchment.
The room smelled of ink
and hot tea, of old paper and dust. Hands still trembling, she stood, tugged the scroll to the edge of the table. The lamp’s flame
wavered
.
Rain whispered against the small
windowpane.
Rory—Aurora—clenched her free hand to
steady herself.
The scar at her wrist
burned where the
silk
cuff bit into it. Another knock, firmer this time.
Someone was patient enough to
wait her fumbling through bolt one, two, three. She inhaled
sharply
, stalked forward, and unlatched the first lock. Then the second. Then the third.
The door swung inward with
a creak that sounded a demand. He stood in the threshold, motionless, drenched in rain, tailored charcoal suit clinging to narrow shoulders, shoes speckled with droplets. Slicked-back platinum blond hair glistened under the dim corridor light. One eye glowed amber, the other orbited by inky blackness, heterochromatic, unsettling—and achingly
familiar
. Ivory-handled cane concealed by his right hand, blade-hilt
gleaming
. Lucien Moreau. Rory’s breath caught.
She pressed her palm flat
against the frame, her voice caught in her throat.
Lucien tipped his head, the
cane sliding forward, a thread of silver beneath the handle. “I’m sorry,”
he said, voice low, measured
. “I shouldn’t have come unannounced.”
She measured the distance between
them on the threshold. Inches and months and
unspoken
goodbyes. “You—why are you here?”
Her voice rose an octave
at the end. Defensive. Accusatory. Vulnerable.
She hated how vulnerable she
felt.
He held her gaze, one
eye warm, one cold. “It’s important.” Rory’s arms folded across her chest.
She drew in a stiff
breath. “You know this is Eva’s flat. She’s out of town. You can’t just—”
He shifted his weight, slick
suit fabric creasing at the elbow. “I didn’t feel I could wait.”
She swallowed, flash of anger
knitting her brow. “Then wait.” A tense
silence
filled the corridor. Ptolemy, suspicious, rubbed against Lucien’s ankle.
He glanced down at the
cat and smiled once—slow, rueful. “Even Ptolemy recognizes me.” She relaxed a fraction. The cat purred, rolling between Lucien’s heels. His thumb stroked its fur. Rory edged back to let him inside. “Fine,”
she said, twisting the door
wider. “Come in. But one wrong move—” He lifted a hand. Black-suited sleeve made him seem aristocratic, dangerous. “No wrong moves. I promise.” Inside, books teetered on every shelf, scrolls spilling across the low coffee table. Aurora
flicked
on a wall sconce. Yellow light cracked through the shadows.
She folded her arms, back
to the lamp, chestnut curls brushing her shoulders. Lucien paused, surveying the clutter with a detective’s scrutiny. “How long have you been here?” she asked. “Since just now.”
He stepped over a stack
of vellum, cane clicking on the worn rug. “But I’ve been waiting for a chance to explain.” Her
stomach
flipped. “Explain what?” He stopped beneath another sconce. Rain dripped from his coat onto the rug. She caught herself staring at the amber eye, the narrow line of his mouth.
Once, she’d fallen for that
half-smile. Once, she’d believed in him.
Now her mind raced with
memories: the way he’d leaned close in the dark alley behind Yu-Fei Cheung’s Golden Empress, breath warm on her neck. The way he’d vanished before sunrise, leaving unanswered questions. “I’m in trouble,” he said
softly
. “And I—” He paused. Ran a hand through damp hair. Droplets slid down rails of pale skin. “I need you.” Heat coiled in her belly, equal parts anger and something old and tender. “Need me?”
She laughed, sharp
. “You hardly—” He took another step. Ptolemy skipped ahead, then arched his back against Rory’s legs. Lucien’s hand drifted toward his cane, then settled on his coat’s lapel. “I hardly told you the truth,” he corrected. “But I need your help now, and I’ll tell you everything.” She felt her defenses crack. She’d become so practiced at shielding herself—at swearing off trust after Evan. But Lucien was different.
Even his voice held a
dangerous comfort. “Why come here?” she asked, gesturing around the flat. “Why not Silas’s bar? Or Golden Empress?” His gaze
flicked
to the scroll-littered table. “Because you’re here, and I need your mind. Your insight. And…” He inhaled, looked back at her. “I need you.” Silence stretched. Aurora’s
pulse
roared so loud she
was afraid
he’d hear it. She pressed her hand to the scar on her wrist where a childhood accident had branded her. What madness made her
pulse
spare for him? Ptolemy circled her ankles, then flopped down, eyes heavy. Lucien watched her studying the cat. Then he watched her scar. His gaze softened. “That mark saved you once,” he murmured. “Let me help save you now.” Her chest tightened. “You saved me?” She shook her head. “I saved myself.” His lips twitched. “You always do.” Aurora stiffened—he’d praised her intelligence and resourcefulness before. Years of studying law had honed her mind; her heart still ached from choices she’d had to make. Lucien’s praise
felt like both balm and blade
. “Sit,” she said abruptly, nodding to the threadbare sofa. “Tell me what’s happening before my cat decides you’re a treat.” He sank into the cushion, placing the cane across his knees. Ptolemy hopped onto the sofa’s armrest, tail flicking. Rory retreated to her desk chair, folding one leg beneath her. She flipped open a tattered notebook, pen at the ready. Lucien watched her move. Every precise gesture anchored him in a reality beyond schemes and shadows. He cleared his throat. “Yesterday, in Avaros”—his voice dropped to a
whisper
—“someone stole a binding seal. It’s big, Rory. It can tear open doors between realms. And I suspect it’s headed here.” Aurora’s heart stalled. “Avaros? But that’s—” “Demon realm,” he finished. “Not exactly next door.” Her pen stilled. “You think someone’s going to use that seal in London?” “Already tracking its energy signature.” He rubbed his thumb over the cane’s ivory handle. “I need you to research any references to similar seals—history, vulnerabilities, counterbindings. I need your legal mind to piece together loopholes in occult law, loopholes they might exploit.” She leaned forward, adrenaline flaring. Despite every caution, she felt the old thrill—solving puzzles, piecing mysteries, outwitting those who underestimated her. “I can help,” she said. The words tasted dangerous on her tongue. “But you owe me full truth. No more half-secrets.” He met her gaze steadily. “You’ll have it.” Aurora closed her notebook, then reopened it. She scribbled a heading: “Binding Seal: References.” Lucien exhaled,
tension
melting from his shoulders. For a moment, she glimpsed him unmasked: a man forced by duty to betray his own heart, now seeking her aid again. Lightning
flickered
beyond the window. Thunder rattled the panes. Outside, Brick Lane’s curry houses closed for the night; the city hummed with restless magic. Aurora rose and padded to the kitchenette. She set the kettle on the stove, filled it from the tap. Lucien watched the steam coil from her hair, how her lashes brushed her cheeks when she concentrated. When she returned with two chipped mugs, he held out his hand. She hesitated, then let him draw near. She placed a mug on the table between them, then stepped back. He cradled the warm
porcelain
, and his gaze
flickered
to her lips. “Rory,” he said
softly
. The old nickname made her
pulse
stutter. She leaned against the table, crossing her arms again. His nearness was a gauntlet:
comforting
and incendiary all at once. “We’re partners in this,”
she said, voice steady
. “Nothing more.” “Partners,” he repeated, the single word a promise—and a plea. Ptolemy yawned, settled between them on the sofa cushion. Aurora’s eyes softened. She reached a hand out and stroked the cat’s fur. Lucien watched her fingertips graze the tabby’s back. He inched forward, one careful step. “Rory,”
he murmured, voice low as thunder outside
. His hand hovered near hers, fingers brushing the edge of the table—so close. She swallowed, memories
roaring
back: midnight confessions under the bar’s neon sign, brush of skin as he guided her through a hidden alley, the way his hand had
trembled
when he held her first. Her breath caught. The kettle clicked off. She glanced at the stove, then back to him. “Lucien—” He closed the distance, one inch. His hand hovered above hers. Lightning flashed. In that
stark
light, his amber eye burned like a flame, the black eye deep as night. He tipped his head. “I won’t lie again.” Her heart thudded so loud she feared he’d hear it. Time stretched. Ptolemy’s soft purr filled the room. Then he brushed past Lucien, hopped down, and vanished into the shadows. Rory exhaled, a laugh trembling free. Relief—and longing—coursed through her. She knew the danger ahead: realms bleeding together, enemies hunting. But she also knew this: she and Lucien, together, could face it. She uncrossed her arms and extended a hand. “Tell me everything,”
she said, voice soft
. His fingers brushed hers. The brush sparked like fire. He nodded once. “Everything.” Outside, thunder rolled. Inside, the door remained bolted—but their hearts stood open.
created_at
"2026-02-17T02:41:12.958059+00:00"
2/17/2026, 2:41:12 AM
model
"openai/o4-mini-2025-04-16"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
5886
moderation_latency
(null)
generation_time
30003
tokens_prompt
808
tokens_completion
3083
native_tokens_prompt
753
native_tokens_completion
3631
native_tokens_completion_images
0
native_tokens_reasoning
1344
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.0168047
router
(null)
provider_responses
0
id
"resp_00140a4d4de3c377016993d52a39d88195920bc35bb93f1ff9"
status
200
is_byok
false
latency
143
endpoint_id
"bd121898-b27c-4e2c-bc92-278627465a54"
provider_name
"OpenAI"
model_permaslug
"openai/o4-mini-2025-04-16"
api_type
"completions"
id
"gen-1771296042-MifVkBAq3y0Z5n1gCuUv"
upstream_id
"resp_00140a4d4de3c377016993d52a39d88195920bc35bb93f1ff9"
total_cost
0.0168047
cache_discount
(null)
upstream_inference_cost
0
provider_name
"OpenAI"
Evaluation details
Result
Evaluator
Details
Meta Data
86.79%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
22
adverbTagCount
3
adverbTags
0
"he said softly [softly]"
1
"she said abruptly [abruptly]"
2
"he said softly [softly]"
dialogueSentences
53
tagDensity
0.415
leniency
0.83
rawRatio
0.136
effectiveRatio
0.113
90.61%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
1597
totalAiIsmAdverbs
3
found
0
adverb
"sharply"
count
1
1
adverb
"softly"
count
2
highlights
0
"sharply"
1
"softly"
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)
15.47%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
1597
totalAiIsms
27
found
0
word
"sentinel"
count
1
1
word
"wavered"
count
1
2
word
"silk"
count
1
3
word
"familiar"
count
1
4
word
"gleaming"
count
1
5
word
"measured"
count
2
6
word
"unspoken"
count
1
7
word
"weight"
count
1
8
word
"silence"
count
2
9
word
"flicked"
count
2
10
word
"stomach"
count
1
11
word
"raced"
count
1
12
word
"pulse"
count
3
13
word
"whisper"
count
1
14
word
"tension"
count
1
15
word
"flickered"
count
2
16
word
"porcelain"
count
1
17
word
"comforting"
count
1
18
word
"roaring"
count
1
19
word
"trembled"
count
1
20
word
"stark"
count
1
highlights
0
"sentinel"
1
"wavered"
2
"silk"
3
"familiar"
4
"gleaming"
5
"measured"
6
"unspoken"
7
"weight"
8
"silence"
9
"flicked"
10
"stomach"
11
"raced"
12
"pulse"
13
"whisper"
14
"tension"
15
"flickered"
16
"porcelain"
17
"comforting"
18
"roaring"
19
"trembled"
20
"stark"
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
1
narrationSentences
162
matches
0
"was afraid"
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
0
hedgeCount
0
narrationSentences
162
filterMatches
(empty)
hedgeMatches
(empty)
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
192
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
maxSentenceWordsSeen
34
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
1582
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
25
unquotedAttributions
0
matches
(empty)
92.79%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
52
wordCount
1311
uniqueNames
17
maxNameDensity
1.14
worstName
"Lucien"
maxWindowNameDensity
2
worstWindowName
"Lucien"
discoveredNames
Carter
1
Eva
1
Aurora
10
Moreau
1
Defensive
1
Lucien
15
Yu-Fei
1
Cheung
1
Golden
1
Empress
1
Ran
1
Rory
7
Evan
1
Silence
1
Brick
1
Lane
1
Ptolemy
7
persons
0
"Carter"
1
"Eva"
2
"Aurora"
3
"Moreau"
4
"Lucien"
5
"Yu-Fei"
6
"Cheung"
7
"Rory"
8
"Evan"
9
"Silence"
10
"Ptolemy"
places
0
"Brick"
1
"Lane"
globalScore
0.928
windowScore
1
100.00%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
106
glossingSentenceCount
1
matches
0
"felt like both balm and blade"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
0
per1kWords
0
wordCount
1582
matches
(empty)
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
0
totalSentences
192
matches
(empty)
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
54
mean
29.3
std
17.89
cv
0.611
sampleLengths
0
73
1
70
2
45
3
55
4
32
5
12
6
36
7
11
8
25
9
17
10
10
11
26
12
36
13
16
14
47
15
8
16
25
17
5
18
72
19
26
20
20
21
45
22
28
23
16
24
27
25
38
26
36
27
13
28
6
29
34
30
20
31
40
32
48
33
6
34
8
35
13
36
42
37
42
38
8
39
43
40
60
41
43
42
11
43
30
44
10
45
36
46
55
47
17
48
38
49
36
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
0
totalSentences
162
matches
(empty)
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
0
totalVerbs
263
matches
(empty)
0.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
14
semicolonCount
2
flaggedSentences
13
totalSentences
192
ratio
0.068
matches
0
"Who on earth would knock this late—this insistently—at Eva’s flat, with its three deadbolts and piles of erudite detritus?"
1
"Rory—Aurora—clenched her free hand to steady herself."
2
"One eye glowed amber, the other orbited by inky blackness, heterochromatic, unsettling—and achingly familiar."
3
"He glanced down at the cat and smiled once—slow, rueful."
4
"She’d become so practiced at shielding herself—at swearing off trust after Evan."
5
"Aurora stiffened—he’d praised her intelligence and resourcefulness before."
6
"Years of studying law had honed her mind; her heart still ached from choices she’d had to make."
7
"Despite every caution, she felt the old thrill—solving puzzles, piecing mysteries, outwitting those who underestimated her."
8
"Outside, Brick Lane’s curry houses closed for the night; the city hummed with restless magic."
9
"“Partners,” he repeated, the single word a promise—and a plea."
10
"His hand hovered near hers, fingers brushing the edge of the table—so close."
11
"Relief—and longing—coursed through her."
12
"Inside, the door remained bolted—but their hearts stood open."
100.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1333
adjectiveStacks
0
stackExamples
(empty)
adverbCount
47
adverbRatio
0.035258814703675916
lyAdverbCount
9
lyAdverbRatio
0.006751687921980495
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
192
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
192
mean
8.24
std
5.39
cv
0.654
sampleLengths
0
22
1
23
2
9
3
19
4
13
5
13
6
14
7
4
8
6
9
7
10
13
11
5
12
13
13
10
14
3
15
3
16
11
17
20
18
10
19
14
20
9
21
2
22
3
23
14
24
15
25
7
26
5
27
9
28
6
29
12
30
1
31
1
32
1
33
6
34
9
35
2
36
6
37
6
38
13
39
11
40
6
41
8
42
2
43
6
44
6
45
10
46
4
47
4
48
7
49
5
59.38%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
6
diversityRatio
0.375
totalSentences
192
uniqueOpeners
72
100.00%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
7
totalSentences
149
matches
0
"Then the second."
1
"Then the third."
2
"Once, she’d fallen for that"
3
"Once, she’d believed in him."
4
"Even his voice held a"
5
"Then he watched her scar."
6
"Then he brushed past Lucien,"
ratio
0.047
34.77%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
69
totalSentences
149
matches
0
"She set her quill aside,"
1
"She inhaled sharply, stalked forward,"
2
"He stood in the threshold,"
3
"She pressed her palm flat"
4
"he said, voice low, measured"
5
"She measured the distance between"
6
"Her voice rose an octave"
7
"She hated how vulnerable she"
8
"He held her gaze, one"
9
"She drew in a stiff"
10
"He shifted his weight, slick"
11
"She swallowed, flash of anger"
12
"He glanced down at the"
13
"She relaxed a fraction."
14
"His thumb stroked its fur."
15
"she said, twisting the door"
16
"He lifted a hand."
17
"She folded her arms, back"
18
"He stepped over a stack"
19
"Her stomach flipped."
ratio
0.463
47.25%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
123
totalSentences
149
matches
0
"Aurora Carter’s fingers hovered over"
1
"Ptolemy, the flat’s tabby sentinel,"
2
"Aurora’s heart hammered in a"
3
"She set her quill aside,"
4
"The room smelled of ink"
5
"Hands still trembling, she stood,"
6
"The lamp’s flame wavered."
7
"Rain whispered against the small"
8
"Rory—Aurora—clenched her free hand to"
9
"The scar at her wrist"
10
"Another knock, firmer this time."
11
"Someone was patient enough to"
12
"She inhaled sharply, stalked forward,"
13
"The door swung inward with"
14
"He stood in the threshold,"
15
"Rory’s breath caught."
16
"She pressed her palm flat"
17
"Lucien tipped his head, the"
18
"he said, voice low, measured"
19
"She measured the distance between"
ratio
0.826
33.56%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
1
totalSentences
149
matches
0
"Now her mind raced with"
ratio
0.007
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
51
technicalSentenceCount
0
matches
(empty)
0.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
22
uselessAdditionCount
6
matches
0
"he said, voice low, measured"
1
"He stepped, cane clicking on the worn rug"
2
"She laughed, sharp"
3
"she said, voice steady"
4
"he murmured, voice low as thunder outside"
5
"she said, voice soft"
55.66%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
15
fancyCount
5
fancyTags
0
"She laughed (laugh)"
1
"he corrected (correct)"
2
"he murmured (murmur)"
3
"he repeated (repeat)"
4
"he murmured (murmur)"
dialogueSentences
53
tagDensity
0.283
leniency
0.566
rawRatio
0.333
effectiveRatio
0.189
80.5421%