NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-09-23-01M36NZVJPZEJ73RCSKVFGK0HN
Run Details
Model:
GPT-6 Luna
Test:
Bad Writing Habits
Scenario:
Fantasy: entering an ancient ruin
Duration:
35.3s
Cost:
$0.001234
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
97.30%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
72.99%
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)
46.55%
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)
54.22%
Sentence opener variety
(details)
45.66%
Adverb-first sentence starts
(details)
100.00%
Pronoun-first sentence starts
(details)
31.92%
Subject-first sentence starts
(details)
0.00%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
100.00%
Useless dialogue additions
(details)
100.00%
Dialogue tag variety (said vs. fancy)
(details)
88.2880%
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
The oak stones stood in
a ring among the bracken, each trunk as wide as a cottage, their bark furred with silver moss.
Aurora Carter stopped before the
gap between two of them. Beyond it, Richmond Park held its
familiar
winter shape: bare trees, damp grass, a grey sky snagged on branches. Inside the ring, wildflowers covered the ground.
Rory touched the Heartstone beneath
her jumper.
Its silver chain had snagged
against her collar, and the crimson stone pressed warm against her skin. “Does it always do that?” Eva asked. “Only when we’re near something it likes.” Eva’s eyebrows rose. “Comforting.”
Nyx stood beside the nearest
oak, their shadowed outline blotting out the bark behind them.
A pair of violet eyes
hovered in the dusk beneath the branches. “The threshold is open,” they murmured.
Their voice drifted like wind
through a keyhole. “It has noticed us.” “Could it have waited until we were ready?”
Eva rubbed her hands together
. “I’m cold enough without ancient trees watching me.” “They were here before cold,” Rory said. “Then they can lend me a coat.”
Rory drew the Fae blade
from its sheath.
Moonsilver caught the thin daylight
and held it, pale and cold along the leaf-shaped edge. She kept the dagger low, though her fingers tightened around its grip.
A shadow moved beyond the
stones.
A woman stepped from the
clearing. Silver hair fell to her waist, bright as frost against the dark green of her cloak.
She left no mark in
the flowers. “Three came seeking the path,” Isolde said. “Two bring questions. One brings a knife. Which shall the grove answer?” “Can it answer the question of how to get back out?” Eva asked.
Isolde’s pale eyes turned to
her. “A door opens both ways. A mouth does not.” Eva glanced at Rory. “That sounded like a yes.” “It sounded like a warning.”
Isolde studied the Heartstone where
it showed above Rory’s collar.
The gem gave another soft
pulse
. “Your red seed stirs,”
the seer said
. “A gate has drawn near, or the gate has drawn you.” “Which one?” Rory asked. “Both.” “Useful.” “Truth need not be useful to be true.” Isolde moved aside from the entrance. The flowers bowed away from her feet, then sprang upright after she passed. Rory looked once over her shoulder. The park seemed ordinary, but the sky beyond the oaks had lost its grey.
It shone a clear, deep
blue, scattered with stars that did not belong to any London night she knew. She crossed the threshold. The air changed against her face.
It carried the smell of
crushed leaves, rain on stone, and something sweet enough to sting the back of her throat. Behind her, Eva sucked in a breath. “Was that the wind?” “There’s no wind,” Rory said. The flowers
trembled
around their ankles.
Their heads turned as the
group passed, following them in a slow, silent ripple. Nyx glided through the gap last.
Their body thinned between the
stones, stretched into a strip of darkness, then gathered itself whole on the other side. For a heartbeat, the oaks glowed from within, their trunks threaded with lines of gold.
Then the light sank beneath
the bark. “Don’t touch the trees,” Isolde said. Eva pulled her hand back from a branch. “I wasn’t going to.” “You were.” “I was thinking about it.” “Thoughts have roots.” Eva tucked her hands into her coat pockets. The path ahead ran between stands of hazel and blackthorn. Their branches twisted together overhead, but no leaves blocked the sky.
It had turned the colour
of a bruise at the horizon, purple fading into a luminous green. A white moon hung low, huge and close enough to show ridges across its face. Rory
measured
the path by the trees, searching for a bend or a marker she could remember. The trunks had no fixed sides. As they passed, their bark shifted in patterns: a row of open eyes, then the weave of a basket, then a map of rivers with no names. “Do you see that?” Eva whispered. “Which part?” “The branches.” Rory looked up. “They’re moving.” The boughs leaned over the path,
not with the wind but toward the group
. A spray of blackthorn flowers unfurled above Eva’s head. Each bloom had a small silver bell at its centre. One bell rang. The note travelled through Rory’s teeth.
She caught the nearest trunk
to steady herself.
Its bark felt warm, almost
soft, and something beneath it answered her touch with a slow thud. She yanked her hand away. “Heartwood,” Isolde said. “Trees shouldn’t have heartbeats.” “Nor should stones.” The Heartstone warmed against Rory’s chest. She pulled it free. In the strange light, the crimson gem glowed faintly, its inner colour turning and gathering like a coal beneath ash. Nyx leaned close.
Their violet eyes narrowed on
it. “Something below is calling.” “Below what?” Eva asked. The path dipped between two banks of roots. Beyond them lay a shallow stream, black as ink. A narrow bridge crossed it, fashioned from pale branches bound together with thin red cords. Rory paused at the bank. “That wasn’t here from the path.” “It was,” Isolde said. “You did not have the angle to see it.” “I don’t think that’s how angles work.” The seer’s mouth curved, but she didn’t answer. On the far side of the stream, stone steps descended into a hollow.
They were too broad for
a human staircase and worn smooth in the middle, though no moss grew between them. At the bottom, a low arch stood half-buried beneath roots. Symbols covered its face. Rory recognised none of them, but the Heartstone
pulsed
harder with each beat. Eva peered into the water. “I can’t see the bottom.” “Don’t look for it,” Isolde said. Eva snapped her head up. “Why?” “Because it looks back.” The stream gave a soft plink. A ripple widened from the centre, but no stone had fallen. Something pale slid beneath the surface, moving against the current. Eva backed away from the edge. “Bridge first,” Rory said. “One at a time.”
She stepped onto the pale
branches.
They flexed beneath her boots
and made a dry creak. The red cords tightened, drawing the branches closer together. Halfway across, she heard a voice rise from the water. It spoke her name. Not “Aurora.” Not “Rory.” It used a voice she had not heard in years, pitched low and
familiar
enough to turn her hands numb. Rory kept walking. The voice called again, asking her to come closer. Beneath the bridge, the dark water shivered. A hand surfaced, white fingers curling around a cord. Rory lifted the Fae blade. The hand recoiled. It slid beneath the stream, leaving a thin wake that broke against the bank. “Quickly,” she called. Eva crossed without looking down, jaw locked. Nyx passed over the bridge without touching it, their lower body thinning into smoke. Isolde followed, light as a falling leaf. The grove changed on the far bank. Hazel gave way to trees with smooth white trunks and leaves like panes of blue glass. Their branches made a faint chiming sound whenever they touched. The ground sloped toward a clearing where the air
shimmered
in a curtain from earth to sky. It
looked like heat above a road, except the
light bent in sharp, impossible angles. Through it Rory glimpsed a second grove, then a landscape of red cliffs beneath an amber sky. The Heartstone burned hot enough to hurt. Rory pressed it into her palm. “Is that a tear in the Veil?” “Not the Veil you know,” Nyx said. “This place sits between borders. It makes its own.” “Can it open into Hel?” “Every border can open,” Isolde said. “A blade finds cloth. A wound finds blood.” Rory kept her eyes on the distortion. “And the amber place?” “Not for you.” The answer came too fast. “Can you tell me what it is?” “I can tell you its colour.” “Is it Dymas?” Isolde looked at the distant landscape. “Its sky is warm amber.” Eva gave a short, disbelieving laugh. “That’s not a no.” “No,” Isolde agreed. A small shape darted through the blue-leafed trees. Rory turned, blade raised. It had been no bigger than a fox, but its body looked woven from roots and feathers. It perched on a branch, its face hidden beneath a crown of pale petals. A dozen tiny eyes gleamed along its chest. Eva stepped closer. “What is it?” The creature opened a beak like a cracked seedpod. A sound spilled out: a child’s laugh, followed by the clatter of dishes and a burst of music. Then it leapt. It didn’t fall. Its body broke into a flock of blue leaves, each one fluttering upward against the branches. The leaves vanished among the glass foliage. Eva lowered her hand. “I hate that I liked it.” “Wonder is a hook,” Isolde said. “The grove baits with what you wish to keep.” “I didn’t wish to keep a bird made of tree bits.” “Not the bird.” The clearing waited ahead. Rory
could feel
the pull of the distortion through her ribs, steady as a tide tugging at her feet. She glanced back. The path behind them had narrowed, the white trunks crowded close, their glass leaves chiming faster. “Does the path move?” she asked. “Paths are made of choices,” Isolde replied. “That’s not an answer.” “It is the only one the grove will allow.” Rory took the first step into the clearing. The grass under her boot flattened, then rose around it in a ring of tiny blue flowers. Eva followed, gripping the strap of her bag. Nyx moved at Rory’s shoulder, their shadow stretching across the grass in the wrong direction. At the centre, a standing stone lay on its side. Its surface had
been polished
smooth. A shallow hollow in its centre held rainwater, though the sky above them showed no clouds. Rory leaned over it. The water reflected her face, then Eva’s, then Nyx’s violet eyes. The reflection kept moving after Nyx had turned away. Rory straightened. “We should go.” The shimmering boundary rippled. Across it, the amber landscape sharpened. Red cliffs stood beneath a sky like heated glass. A column of dark smoke climbed from somewhere beyond them. For an instant, Rory heard music on the other side: strings, drums, the bright roar of a crowded hall. The Heartstone’s glow flared. Nyx shifted in front of her. “The gate has heard you.” “I didn’t call it.” “Names are not the only calls.” The surface of the boundary bowed inward. Fine lines spread through it, silver and bright, like cracks in ice. Isolde’s hand closed around Rory’s wrist. Her fingers were cold. “Choose what you carry across, Aurora Carter. The rest will choose you.” Rory looked down at their joined hands, at the crescent scar on her left wrist, pale under the seer’s grip. The boundary
trembled
. Eva reached for Rory’s other arm. “Is that your way of saying we’re going through?” “No,” Isolde said. “It is my way of saying the grove has already begun to decide.”
created_at
"2026-09-23T08:26:51.357Z"
9/23/2026, 8:26:51 AM
model
"openai/gpt-6-luna-20260922"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
3776
moderation_latency
(null)
generation_time
35256
tokens_prompt
1763
tokens_completion
2871
native_tokens_prompt
1706
native_tokens_completion
2434
native_tokens_completion_images
0
native_tokens_reasoning
0
native_tokens_cached
1703
num_media_prompt
(null)
num_input_audio_prompt
(null)
num_media_completion
0
num_search_results
(null)
num_fetches
(null)
web_search_engine
(null)
origin
"https://ncbench.com/"
is_byok
false
finish_reason
"stop"
native_finish_reason
"completed"
service_tier
"default"
usage
0.00123433
router
(null)
user_agent
"langchainjs-openai/1.0.0 ((node/v24.20.0; linux; x64))"
http_referer
(null)
request_id
"req-1790152011-Jb7GOFRseMmAR8uivpKE"
session_id
(null)
preset_id
(null)
api_type
"completions"
id
"gen-1790152011-iNvrrelkQoU28jrJJWVB"
upstream_id
"resp_008529b466cc6d6a016ab38d4b71bc87d184e07010618cee97"
provider_responses
0
endpoint_id
"05e94e02-b9c2-4bbb-ba55-4082ee9ad687"
id
"resp_008529b466cc6d6a016ab38d4b71bc87d184e07010618cee97"
is_byok
false
latency
2231
model_permaslug
"openai/gpt-6-luna-20260922"
provider_name
"OpenAI"
status
200
total_cost
0.00123433
cache_discount
0.00015327
upstream_inference_cost
0
provider_name
"OpenAI"
response_cache_source_id
(null)
data_region
"global"
workspace_id
"97e315e5-d303-487d-83c1-83180e8a13d4"
Evaluation details
Result
Evaluator
Details
Meta Data
100.00%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
25
adverbTagCount
0
adverbTags
(empty)
dialogueSentences
81
tagDensity
0.309
leniency
0.617
rawRatio
0
effectiveRatio
0
97.30%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
1851
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)
72.99%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
1851
totalAiIsms
10
found
0
word
"familiar"
count
2
1
word
"comforting"
count
1
2
word
"pulse"
count
1
3
word
"trembled"
count
2
4
word
"measured"
count
1
5
word
"pulsed"
count
1
6
word
"shimmered"
count
1
7
word
"could feel"
count
1
highlights
0
"familiar"
1
"comforting"
2
"pulse"
3
"trembled"
4
"measured"
5
"pulsed"
6
"shimmered"
7
"could feel"
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
169
matches
(empty)
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
0
hedgeCount
0
narrationSentences
169
filterMatches
(empty)
hedgeMatches
(empty)
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
225
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
repeatedSegmentCount
0
maxSentenceWordsSeen
27
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
1851
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
23
unquotedAttributions
0
matches
(empty)
46.55%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
88
wordCount
1450
uniqueNames
10
maxNameDensity
2.07
worstName
"Rory"
maxWindowNameDensity
3.5
worstWindowName
"Rory"
discoveredNames
Carter
1
Richmond
1
Park
1
Heartstone
6
Eva
21
Rory
30
Fae
2
Isolde
16
London
1
Nyx
9
persons
0
"Carter"
1
"Heartstone"
2
"Eva"
3
"Rory"
4
"Isolde"
5
"Nyx"
places
0
"Richmond"
1
"Park"
2
"London"
globalScore
0.466
windowScore
0.5
100.00%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
115
glossingSentenceCount
2
matches
0
"seemed ordinary but the sky beyond the oaks had lost its grey"
1
"looked like heat above a road, except the"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
1
per1kWords
0.54
wordCount
1851
matches
0
"not with the wind but toward the group"
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
0
totalSentences
225
matches
(empty)
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
123
mean
15.05
std
14.65
cv
0.973
sampleLengths
0
52
1
7
2
24
3
7
4
7
5
4
6
27
7
18
8
21
9
7
10
7
11
35
12
6
13
29
14
19
15
13
16
15
17
9
18
5
19
16
20
18
21
4
22
1
23
1
24
8
25
19
26
39
27
4
28
34
29
4
30
5
31
20
32
48
33
6
34
12
35
2
36
5
37
3
38
8
39
53
40
50
41
6
42
2
43
2
44
5
45
33
46
3
47
31
48
5
49
3
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
1
totalSentences
169
matches
0
"been polished"
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
0
totalVerbs
246
matches
(empty)
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
0
semicolonCount
0
flaggedSentences
0
totalSentences
225
ratio
0
matches
(empty)
100.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1453
adjectiveStacks
0
stackExamples
(empty)
adverbCount
39
adverbRatio
0.026841018582243633
lyAdverbCount
1
lyAdverbRatio
0.0006882312456985547
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
225
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
225
mean
8.23
std
5.02
cv
0.61
sampleLengths
0
23
1
10
2
19
3
7
4
7
5
17
6
7
7
7
8
3
9
1
10
15
11
12
12
6
13
8
14
4
15
13
16
8
17
7
18
7
19
8
20
15
21
12
22
6
23
6
24
16
25
7
26
7
27
12
28
13
29
6
30
9
31
4
32
5
33
5
34
10
35
6
36
7
37
11
38
4
39
1
40
1
41
8
42
6
43
13
44
6
45
14
46
19
47
4
48
6
49
21
54.22%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
3
diversityRatio
0.3333333333333333
totalSentences
225
uniqueOpeners
75
45.66%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
2
totalSentences
146
matches
0
"Then the light sank beneath"
1
"Then it leapt."
ratio
0.014
100.00%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
30
totalSentences
146
matches
0
"Its silver chain had snagged"
1
"Their voice drifted like wind"
2
"She kept the dagger low,"
3
"She left no mark in"
4
"It shone a clear, deep"
5
"She crossed the threshold."
6
"It carried the smell of"
7
"Their heads turned as the"
8
"Their body thinned between the"
9
"Their branches twisted together overhead,"
10
"It had turned the colour"
11
"She caught the nearest trunk"
12
"Its bark felt warm, almost"
13
"She yanked her hand away."
14
"She pulled it free."
15
"Their violet eyes narrowed on"
16
"They were too broad for"
17
"She stepped onto the pale"
18
"They flexed beneath her boots"
19
"It spoke her name."
ratio
0.205
31.92%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
125
totalSentences
146
matches
0
"The oak stones stood in"
1
"Aurora Carter stopped before the"
2
"Rory touched the Heartstone beneath"
3
"Its silver chain had snagged"
4
"Eva’s eyebrows rose."
5
"Nyx stood beside the nearest"
6
"A pair of violet eyes"
7
"Their voice drifted like wind"
8
"Eva rubbed her hands together"
9
"Rory drew the Fae blade"
10
"Moonsilver caught the thin daylight"
11
"She kept the dagger low,"
12
"A shadow moved beyond the"
13
"A woman stepped from the"
14
"She left no mark in"
15
"Isolde’s pale eyes turned to"
16
"Eva glanced at Rory."
17
"Isolde studied the Heartstone where"
18
"The gem gave another soft"
19
"the seer said"
ratio
0.856
0.00%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
0
totalSentences
146
matches
(empty)
ratio
0
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
58
technicalSentenceCount
2
matches
0
"It shone a clear, deep blue, scattered with stars that did not belong to any London night she knew."
1
"It slid beneath the stream, leaving a thin wake that broke against the bank."
100.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
25
uselessAdditionCount
0
matches
(empty)
100.00%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
23
fancyCount
3
fancyTags
0
"they murmured (murmur)"
1
"Eva whispered (whisper)"
2
"Isolde agreed (agree)"
dialogueSentences
81
tagDensity
0.284
leniency
0.568
rawRatio
0.13
effectiveRatio
0.074
88.2880%