NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-19-01KHT10P8098JFV932NPGQJKP3
Run Details
Model:
GPT-4.1
Test:
Bad Writing Habits
Scenario:
Fantasy: entering an ancient ruin
Duration:
58.4s
Cost:
$0.017166
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
85.44%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
9.02%
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)
85.90%
Narrator intent-glossing
(details)
51.08%
"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)
94.00%
Purple prose (modifier overload)
(details)
100.00%
Repeated phrase echo
(details)
100.00%
Sentence length variance
(details)
79.60%
Sentence opener variety
(details)
36.23%
Adverb-first sentence starts
(details)
100.00%
Pronoun-first sentence starts
(details)
36.09%
Subject-first sentence starts
(details)
100.00%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
0.00%
Useless dialogue additions
(details)
50.00%
Dialogue tag variety (said vs. fancy)
(details)
78.1343%
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="4418" name="Nyx" aliases="Nyx, the Shadow, Nightwhisper" pronouns="they/them" species="Shade" storyRole="Wild Card"> <eyeColor>faintly glowing violet</eyeColor> <height>approximately 6'2" in solid form</height> <age>ageless</age> <form>humanoid silhouette of living shadow, can shift between solid and incorporeal</form> <voice>sounds like a whisper carried on the wind</voice> <description>A being of living shadow, existing between the mortal plane and the spaces between realms.</description> <backstory>Nyx was once a human sorcerer named Aldric who became trapped between realms during a failed summoning ritual in 1643. They now exist as a Shade, bound to the mortal plane but able to slip between shadows.</backstory> </character> <character id="4424" name="Isolde Varga" aliases="Isolde, the Seer" pronouns="she/her" species="Half-Fae" storyRole="Oracle"> <eyeColor>pale lavender</eyeColor> <hair>silver, reaching her waist</hair> <height>5'5"</height> <age>300 years old</age> <appearance>ethereal, ageless</appearance> <speech>speaks in riddles</speech> <footprints>leaves no footprints when she walks</footprints> <compulsion>cannot lie (Fae compulsion) but can mislead</compulsion> <description>A Half-Fae seer exiled from the Fae Courts for sharing visions with mortals.</description> <backstory>She now lives in a hidden grove in Richmond Park, offering cryptic prophecies to those who seek her out.</backstory> </character> <location id="853" name="Dymas (Gluttony)" aliases="Dymas, gluttony, Dymasian" realm="Hel" sin="Gluttony"> <ruler>Prince Belphegor</ruler> <skyColor>warm amber</skyColor> <description>A place of excess and indulgence. Sprawling vineyards, orchards, and gardens provide exotic ingredients for master chefs — often helbound souls contracted from Earth. Grand feasts and culinary competitions are common.</description> </location> <location id="861" name="The Fae Grove" aliases="Isolde's grove, Richmond grove, the Grove" realm="Earth (Fae-touched)"> <parkLocation>Richmond Park</parkLocation> <standingStones>ancient oak standing stones mark the boundary</standingStones> <timeBehavior>time moves differently — an hour inside can be minutes or days outside</timeBehavior> <flora>wildflowers bloom year-round</flora> <description>A hidden clearing that exists in a pocket between Earth and the Fae realm.</description> </location> <item id="2001" name="Heartstone Pendant" aliases="the pendant, Heartstone" type="Artifact" origin="Dymas"> <gemstoneColor>deep crimson</gemstoneColor> <chainMaterial>silver chain</chainMaterial> <size>roughly the size of a thumbnail</size> <behavior>pulses faintly with warmth when near a Hel portal</behavior> <glow>faint inner glow</glow> <description>Given to Aurora by an unknown benefactor.</description> </item> <item id="2006" name="Fae-Forged Blade" aliases="the Fae blade, Isolde's gift" type="Weapon" origin="The Fae Courts"> <material>moonsilver</material> <shape>slender, leaf-shaped dagger</shape> <temperature>always cold to the touch</temperature> <glow>faintly luminescent in moonlight</glow> <power>can cut through magical wards; particularly effective against demons</power> <givenTo>given to Aurora by Isolde as a gift</givenTo> <description>A weapon of the Fae Courts, rare and highly coveted.</description> </item> <lore id="7001" name="The Veil" aliases="the Veil, the Barrier, the Boundary" category="Cosmology"> <solsticeEffect>weakens during the winter solstice, strengthens during the summer solstice</solsticeEffect> <appearance>faint shimmering distortion visible only to those with supernatural sight</appearance> <monitoring>rift points (tears in the Veil) are monitored by the Wardens</monitoring> <description>The Veil is the metaphysical barrier separating Earth from Hel and the Fae Realms.</description> </lore> </codex> Continue the story using the following instructions: <instructions> Write a fully fleshed out scene of at least 1000 words in the fantasy genre. A small group enters an ancient, otherworldly place for the first time. The environment is alien and wondrous. Describe their exploration — what they see, hear, and feel as they move deeper. Include moments of discovery, unease, and wonder. Let the world-building emerge through the characters' experience rather than exposition. Use the codex entries above as your world reference for characters, setting, and lore. Only include the prose of the scene without any markdown or commentary. </instructions>
Model response
Messages
Meta
AI
Branches tangled into a living
arch above Aurora’s head, heavy with blooms no London garden ever dared grow, let alone in December.
She hesitated, one foot inside
the ring of ancient oaks, though dew
chilled
through the trainers she’d ruined running parcels across Hammersmith.
Sunlight, cool and silver as
watered
silk
, filtered sideways through the timber columns.
Every birdcall seemed spun from
crystal
, every drift of wind smelled more honeyed than the last. “Isolde’s grove,”
Nyx whispered, shape flickering between
solid and sheer as they glided past the stones. Their violet eyes
pulsed
faintly, snaring light that shouldn’t exist.
Shadows behind them spilled deeper
than the shaded trunks would account for. “This place hungers for secrets.”
Aurora followed, jacket snagging on
ivy, each movement stirring a rain of golden motes from flower heads overhead.
Her heart beat harder—nerves, not
awe, or
something between
. No matter what Eva claimed, nothing this beautiful meant safety.
A thin sigh slid through
the grass. Behind her, Eva inched forward, jaw stubborn, making no secret of how the place
unsettled
her. “We don’t have to trust her, Rory. Soon as you say—”
A flutter—petals spiralled down, then
rose again of their own accord, swirling in a slow vortex. Something in the air shifted; time pinched, then stretched.
The world outside—Richmond’s hum and
the bark of distant traffic—vanished as though locked past glass.
Aurora shivered, blinking at the
standing stones.
They rose from ferns in
defiance of carving tools, bark scoured smooth by centuries, spiralled through with thin silver veins.
Each stone twisted toward the
next, closing the circle tight around them. Eva pressed closer, voice low. “Did…did we just lose a signal?”
She jabbed her mobile, frown
deepening when the screen
flickered
, then died.
Nyx gave a sound that
might have been a laugh, if a laugh could wear frost. “Nothing mortal works here. You enter the Grove, your world waits to exhale and leaves you suspended between seconds.”
Their shape stretched taller, shadows
sliding around knees, flickering in answer to a wind none of them felt. Aurora drew a breath—sweetness on her tongue, richer than honey,
tinged
sharp with bramble. “How far does it go?” “The boundary ends only when Isolde’s patience does,” Nyx replied, placing one insubstantial hand against an oak’s surface.
Their shadow bled into the
pale wood, vanished, reformed at their side. “Keep to the path, if you mean to return changed but alive.” Path. Aurora glanced down. Petals and moss, spring-green despite the season, formed a track winding from the stones deeper into a thicket of silver-barked trees. Wildflowers pressed in—columbine, star-shaped and blue, unfamiliar yellow blooms bristling with sweet scent. Underfoot, roots curled but yielded
softly
, like fur under pressure. Eva gazed upward, lips parted. “The sky isn’t moving,”
she said, voice half-wonder, half-fear
. Aurora looked. Beyond the branches, the sky glowed pearlescent, clouds pinned motionless, painted rather than real. Light
shimmered
, bent through unseen prisms, pooling in still shapes. A hum cut through, barely there; Aurora pressed her knuckles to her chest. The Heartstone pendant—always warm, now nearly hot—answered that silent vibration. She kept walking. For every dozen paces, something shifted—petal hues, tree shapes, the chirr of invisible insects rising and falling as if in conversation. Faint giggles skipped between the branches,
echoing
without source. Eva stopped, spinning in place, teeth bared in something too sharp for a smile. “This could go bad in a hundred ways, you know?” “We’re not here to play with faeries,”
Aurora replied, words falling flat in the thick air
. “We need what she knows.” An owl blinked from a branch, eyes
spectral
gold, head swiveling as they passed. A fox, pale as milk, darted between roots, vanishing as
quickly
as it appeared. The longer Aurora looked, the more the world
shimmered
at the edges, colours brighter and shadows blacker than life. Gravity drifted—sometimes, her steps skimmed the ground, shoes trailing dew that bled silver.
Her fingers brushed a low
bloom. Petals folded—then an eye blinked open between the leaves, sly and violet, then sealed itself out of existence. Nyx drew up short. “She waits.” The path terminated at a pool so still it gnawed at the eye,
perfect
as a polished mirror. Silvered lilies drifted in geometric patterns. At the far bank, a figure stood cloaked in silver hair, eyes cold lavender, skin refusing the rules of shadow and light. Isolde did not move. She seemed only incidentally present, gaze fixed on a knot of air above the water. Petticoats of spider
silk
and willow leaves whispered around her, their colour shifting with every blink. Eva bristled, but not in challenge—she drew back,
tension
turning her profile jagged. Nyx dipped their head, voice fluttering through the brush. “Seer. Between moon and dawn, seekers slip through—” “Words that tumble hold no
weight
,” Isolde countered, every syllable pitched to land in Aurora’s mind like cold rain. “Who asks, who bargains, who trades?” Aurora’s throat dried.
She stepped forward, the Heartstone
thumping at her throat. “Aurora Carter. I’m seeking knowledge. About the Veil. About rifts opening—” Isolde’s gaze
flicked
, briefly, to Aurora’s wrist—finding the scar—and then to her throat. “Iron-bound, but the wild feeds on your bones.”
She inclined her head
. “The answer you crave dissolves on tongue and teeth. Are you prepared to pay?” A ripple moved through the grass. The world
trembled
, spun
slightly
faster. Eva snapped, “We didn’t come to offer souls, if that’s what you mean.” Isolde’s smile surfaced, slow and nerve-pricking. “Souls are currency, for those who have not spent them already. The price need not be blood, nor breath. A memory. A name once spoken. A day never lived. What will you offer in trade for the taste of future storms?” Aurora swallowed. The back of her neck
chilled
as if an unseen hand pressed there. She considered—mother’s laugh. The
echo
of her father’s call. Last night’s dream, already fading.
If she gave, what else
might slide free from her grasp?
She fingered the Heartstone, its
heat flaring under her thumb. “Tell me what you know about the Heartstone. About Dymas. About why everything is shifting—why the Veil is weakening now.” No tremor slipped into the request. Each word fell clean, necessity hardening the edges. Isolde’s
eyes narrowed
—
not with anger, but calculation
.
Her feet left no mark
in mud as she circled the pool, reflection trailing behind instead of beneath. Breathing with the hush of midnight wind, she bent, scooped water, watched it drain through moon-pale fingers. “In Dymas, hunger reigns. Beneath the amber sky, your Heartstone grew around a promise broken and remade. When the Veil thins, appetite walks. To ask why is to trace rivers back to ocean. To know how—ah, that spares only branches, never the root.”
She reached for Aurora, fingers
hovering above the pendant. “Let me see, and I will bind with truth: one question answered, the cost a memory of safety.” Aurora hesitated. Eva inhaled too
sharply
,
fists clenched
. “Don’t,” Eva hissed. “You don’t need to be anyone’s
pawn
.” Aurora ignored her, shifting forward for Isolde’s inspection. “Do it.” Isolde’s hands hovered, cool magic radiating. The world flashed white—once, twice—before the burning in Aurora’s chest stilled. For a heartbeat, she stood at the threshold of elsewhere. The vision crashed in: a place of sunlight poured thick as syrup, feast-tables buckling under impossible fruit, laughter gorging itself across gardens where shadows prowled the paths. A sky the colour of melted gold. The Heartstone’s
pulse
hammered, and Aurora’s mouth filled with the taste of berries, rot, iron. Then she was back. Everything
echoed
too loud. She blinked, awareness snapped taut. Isolde offered the
echo
of a smile. “Now the map unwinds.” Nyx shifted, half-shadow, eyes lit candles in their featureless face. Eva reached out, steadying Aurora when her knees threatened to give. “What did she take, Rory? Do you remember?” Aurora—heart
racing
, memories sifting like flour—realised something missing, just out of sight.
Not pain, but a hollow place
where comfort once lived. She held the Heartstone tight, gaze fixed on Isolde’s
otherworldly
eyes. “Tell us what comes next.”
created_at
"2026-02-19T04:02:34.376Z"
2/19/2026, 4:02:34 AM
model
"openai/gpt-4.1-2025-04-14"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
527
moderation_latency
(null)
generation_time
58382
tokens_prompt
1816
tokens_completion
2267
native_tokens_prompt
1707
native_tokens_completion
1911
native_tokens_completion_images
0
native_tokens_reasoning
0
native_tokens_cached
1024
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.017166
router
(null)
provider_responses
0
endpoint_id
"c235abe8-11cc-42d3-95ad-72f4d198287a"
id
"resp_0258cf0949781cf80169968b5a7af88197a0a1186153e4faeb"
is_byok
false
latency
145
model_permaslug
"openai/gpt-4.1-2025-04-14"
provider_name
"OpenAI"
status
200
api_type
"completions"
id
"gen-1771473754-acMsX6O6zDrpjmOWAjur"
upstream_id
"resp_0258cf0949781cf80169968b5a7af88197a0a1186153e4faeb"
total_cost
0.017166
cache_discount
0.001536
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
12
adverbTagCount
0
adverbTags
(empty)
dialogueSentences
30
tagDensity
0.4
leniency
0.8
rawRatio
0
effectiveRatio
0
85.44%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
1374
totalAiIsmAdverbs
4
found
0
adverb
"softly"
count
1
1
adverb
"quickly"
count
1
2
adverb
"slightly"
count
1
3
adverb
"sharply"
count
1
highlights
0
"softly"
1
"quickly"
2
"slightly"
3
"sharply"
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)
9.02%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
1374
totalAiIsms
25
found
0
word
"chilled"
count
2
1
word
"silk"
count
2
2
word
"crystal"
count
1
3
word
"pulsed"
count
1
4
word
"unsettled"
count
1
5
word
"flickered"
count
1
6
word
"tinged"
count
1
7
word
"shimmered"
count
2
8
word
"echoing"
count
1
9
word
"spectral"
count
1
10
word
"perfect"
count
1
11
word
"tension"
count
1
12
word
"weight"
count
1
13
word
"flicked"
count
1
14
word
"trembled"
count
1
15
word
"echo"
count
2
16
word
"pawn"
count
1
17
word
"pulse"
count
1
18
word
"echoed"
count
1
19
word
"racing"
count
1
20
word
"otherworldly"
count
1
highlights
0
"chilled"
1
"silk"
2
"crystal"
3
"pulsed"
4
"unsettled"
5
"flickered"
6
"tinged"
7
"shimmered"
8
"echoing"
9
"spectral"
10
"perfect"
11
"tension"
12
"weight"
13
"flicked"
14
"trembled"
15
"echo"
16
"pawn"
17
"pulse"
18
"echoed"
19
"racing"
20
"otherworldly"
66.67%
Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches
2
maxInWindow
2
found
0
label
"eyes widened/narrowed"
count
1
1
label
"jaw/fists clenched"
count
1
highlights
0
"eyes narrowed"
1
"fists clenched"
100.00%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
1
narrationSentences
98
matches
0
"t with anger"
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
0
hedgeCount
0
narrationSentences
98
filterMatches
(empty)
hedgeMatches
(empty)
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
116
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
maxSentenceWordsSeen
53
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
1343
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
7
unquotedAttributions
0
matches
(empty)
50.00%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
54
wordCount
1034
uniqueNames
9
maxNameDensity
1.93
worstName
"Aurora"
maxWindowNameDensity
3.5
worstWindowName
"Aurora"
discoveredNames
Aurora
20
London
1
December
1
Hammersmith
1
Eva
10
Richmond
1
Nyx
6
Heartstone
5
Isolde
9
persons
0
"Aurora"
1
"Eva"
2
"Nyx"
3
"Heartstone"
4
"Isolde"
places
0
"London"
1
"December"
2
"Hammersmith"
3
"Richmond"
globalScore
0.533
windowScore
0.5
85.90%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
78
glossingSentenceCount
2
matches
0
"seemed spun from crystal, every drift of wind smelled more honeyed than the last"
1
"something between"
51.08%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
2
per1kWords
1.489
wordCount
1343
matches
0
"not with anger, but calculation"
1
"Not pain, but a hollow place"
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
0
totalSentences
116
matches
(empty)
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
48
mean
27.98
std
17.32
cv
0.619
sampleLengths
0
73
1
43
2
37
3
34
4
40
5
39
6
23
7
53
8
19
9
42
10
48
11
14
12
26
13
23
14
3
15
44
16
10
17
21
18
60
19
24
20
6
21
46
22
35
23
13
24
17
25
25
26
23
27
39
28
12
29
13
30
47
31
40
32
10
33
34
34
42
35
70
36
8
37
10
38
10
39
27
40
49
41
13
42
11
43
10
44
19
45
22
46
11
47
5
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
0
totalSentences
98
matches
(empty)
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
0
totalVerbs
203
matches
(empty)
0.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
20
semicolonCount
2
flaggedSentences
17
totalSentences
116
ratio
0.147
matches
0
"Her heart beat harder—nerves, not awe, or something between."
1
"A flutter—petals spiralled down, then rose again of their own accord, swirling in a slow vortex."
2
"Something in the air shifted; time pinched, then stretched."
3
"The world outside—Richmond’s hum and the bark of distant traffic—vanished as though locked past glass."
4
"Aurora drew a breath—sweetness on her tongue, richer than honey, tinged sharp with bramble."
5
"Wildflowers pressed in—columbine, star-shaped and blue, unfamiliar yellow blooms bristling with sweet scent."
6
"A hum cut through, barely there; Aurora pressed her knuckles to her chest."
7
"The Heartstone pendant—always warm, now nearly hot—answered that silent vibration."
8
"For every dozen paces, something shifted—petal hues, tree shapes, the chirr of invisible insects rising and falling as if in conversation."
9
"Gravity drifted—sometimes, her steps skimmed the ground, shoes trailing dew that bled silver."
10
"Petals folded—then an eye blinked open between the leaves, sly and violet, then sealed itself out of existence."
11
"Eva bristled, but not in challenge—she drew back, tension turning her profile jagged."
12
"Isolde’s gaze flicked, briefly, to Aurora’s wrist—finding the scar—and then to her throat."
13
"She considered—mother’s laugh."
14
"Isolde’s eyes narrowed—not with anger, but calculation."
15
"The world flashed white—once, twice—before the burning in Aurora’s chest stilled."
16
"Aurora—heart racing, memories sifting like flour—realised something missing, just out of sight."
94.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1063
adjectiveStacks
1
stackExamples
0
"blue, unfamiliar yellow blooms"
adverbCount
40
adverbRatio
0.03762935089369708
lyAdverbCount
12
lyAdverbRatio
0.011288805268109126
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
116
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
116
mean
11.58
std
7.72
cv
0.667
sampleLengths
0
22
1
22
2
13
3
16
4
16
5
10
6
12
7
5
8
18
9
9
10
10
11
7
12
16
13
11
14
16
15
9
16
15
17
7
18
20
19
12
20
5
21
18
22
16
23
37
24
14
25
5
26
18
27
12
28
12
29
1
30
3
31
21
32
13
33
10
34
5
35
9
36
2
37
14
38
10
39
13
40
10
41
3
42
21
43
9
44
14
45
10
46
16
47
5
48
14
49
14
79.60%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
1
diversityRatio
0.4827586206896552
totalSentences
116
uniqueOpeners
56
36.23%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
1
totalSentences
92
matches
0
"Then she was back."
ratio
0.011
100.00%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
19
totalSentences
92
matches
0
"She hesitated, one foot inside"
1
"Their violet eyes pulsed faintly,"
2
"Her heart beat harder—nerves, not"
3
"They rose from ferns in"
4
"She jabbed her mobile, frown"
5
"Their shape stretched taller, shadows"
6
"Their shadow bled into the"
7
"she said, voice half-wonder, half-fear"
8
"She kept walking."
9
"Her fingers brushed a low"
10
"She seemed only incidentally present,"
11
"She stepped forward, the Heartstone"
12
"She inclined her head"
13
"She considered—mother’s laugh."
14
"She fingered the Heartstone, its"
15
"Her feet left no mark"
16
"She reached for Aurora, fingers"
17
"She blinked, awareness snapped taut."
18
"She held the Heartstone tight,"
ratio
0.207
36.09%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
78
totalSentences
92
matches
0
"Branches tangled into a living"
1
"She hesitated, one foot inside"
2
"Sunlight, cool and silver as"
3
"Every birdcall seemed spun from"
4
"Nyx whispered, shape flickering between"
5
"Their violet eyes pulsed faintly,"
6
"Shadows behind them spilled deeper"
7
"Aurora followed, jacket snagging on"
8
"Her heart beat harder—nerves, not"
9
"A thin sigh slid through"
10
"A flutter—petals spiralled down, then"
11
"Something in the air shifted;"
12
"The world outside—Richmond’s hum and"
13
"Aurora shivered, blinking at the"
14
"They rose from ferns in"
15
"Each stone twisted toward the"
16
"Eva pressed closer, voice low."
17
"She jabbed her mobile, frown"
18
"Nyx gave a sound that"
19
"Their shape stretched taller, shadows"
ratio
0.848
100.00%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
2
totalSentences
92
matches
0
"No matter what Eva claimed,"
1
"If she gave, what else"
ratio
0.022
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
51
technicalSentenceCount
3
matches
0
"The world outside—Richmond’s hum and the bark of distant traffic—vanished as though locked past glass."
1
"For every dozen paces, something shifted—petal hues, tree shapes, the chirr of invisible insects rising and falling as if in conversation."
2
"Gravity drifted—sometimes, her steps skimmed the ground, shoes trailing dew that bled silver."
0.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
12
uselessAdditionCount
3
matches
0
"she said, voice half-wonder, half-fear"
1
"Aurora replied, words falling flat in the thick air"
2
"She reached, fingers hovering above the pendant"
50.00%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
6
fancyCount
3
fancyTags
0
"Nyx whispered (whisper)"
1
"Eva snapped (snap)"
2
"Eva hissed (hiss)"
dialogueSentences
30
tagDensity
0.2
leniency
0.4
rawRatio
0.5
effectiveRatio
0.2
78.1343%