NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-07-09-01KX40ACVFC5KA9X9HSEKDPSZ8
Run Details
Model:
GPT-5.6 Sol
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
1m 7s
Cost:
$0.111375
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
87.23%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
79.93%
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)
66.67%
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)
98.25%
Purple prose (modifier overload)
(details)
100.00%
Repeated phrase echo
(details)
100.00%
Sentence length variance
(details)
47.44%
Sentence opener variety
(details)
100.00%
Adverb-first sentence starts
(details)
62.36%
Pronoun-first sentence starts
(details)
46.21%
Subject-first sentence starts
(details)
49.26%
Subordinate conjunction sentence starts
(details)
84.15%
Technical jargon density
(details)
100.00%
Useless dialogue additions
(details)
100.00%
Dialogue tag variety (said vs. fancy)
(details)
90.7161%
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
The door opened as far
as the chain allowed, and Lucien Moreau looked through the gap as if Aurora had summoned him by thinking too hard about all the ways she hated him.
Rain silvered the shoulders of
his charcoal suit.
His platinum hair, usually slicked
back with insulting precision, had come loose at one temple. One hand rested on the ivory handle of his cane.
The other hung empty at
his side, pale knuckles streaked with blood.
His amber eye fixed on
her first.
The black one followed a
fraction later. “Rory.”
She nearly shut the door
in his face.
His cane slid into the
gap before she could. Not hard. Not threatening.
Just enough ivory and polished
wood to stop her. “That,” she said, “is a
very
good way to lose a cane.” “And this is a
very
poor time for a demonstration of your ingenuity.” “Come back during office hours.” “I believe I am being followed.” Behind her, Ptolemy leapt from a tower of books, dislodging three loose pages and a packet of highlighters.
The tabby landed with an
aggrieved thump.
Downstairs, the curry house extractor
fan groaned through the wall, carrying up the smell of cumin, hot oil, and charred onion.
Aurora kept her hand on
the door. “By whom?” “I did not stop to ask.” “You’re an information broker.” “I am also bleeding on Eva’s landing.” She looked down.
A dark stain spread along
his left side, nearly invisible against the charcoal cloth except where rain diluted the blood and sent it dripping from the hem of his jacket.
He stood straight, but too
straight.
The sort of posture a
person adopted when pride was the only thing holding his ribs together. “You’ve got thirty seconds,” she said. His mouth curved faintly. “Your hospitality remains—” “Twenty-five.”
She closed the door enough
to free the chain, then worked the three deadbolts in quick succession.
By the time she pulled
it open, the landing was empty. Her
pulse
kicked.
Then Lucien stepped out of
the stairwell’s blind angle, caught her around the waist, and drove them both backward into the flat. Aurora’s shoulder struck the wall. His palm covered her mouth. The cane hit the floor between them with a clatter. “Forgive me,”
he breathed against her ear
. Footsteps pounded up the stairs. Every muscle in her body locked. Lucien pressed close, sheltering her behind the door as he kicked it shut.
She smelled rain, blood, and
the dark, expensive spice of his cologne.
His chest rose once against
hers,
sharply
. Beneath her hand, which had landed against his waistcoat, his heartbeat ran fast and uneven. The
footsteps
stopped outside. Lucien’s gaze dropped to hers. Up close, the inhuman black of his left eye had no reflection.
His amber eye held too
much: pain, calculation, and the old heat she had spent six weeks grinding beneath her heel. The doorknob turned. Aurora reached past him and slid the top deadbolt home. Then the second. The third stuck, as it always did in damp weather. Lucien lifted one brow.
She glared at him and
shoved harder. The bolt snapped into place. A shadow darkened the thin strip beneath the door. Ptolemy padded over, whiskers thrust forward, tail upright. No, Aurora mouthed. Ptolemy sniffed the gap and gave a loud, questioning chirrup. Lucien closed his eyes briefly,
as if asking patience of every infernal ancestor he possessed
. A knuckle rapped against the door. “Miss Sharma?” a man called. “Police.” Aurora felt Lucien go still. The voice came again. “We need a word about a disturbance in the street.”
She peeled Lucien’s hand from
her mouth. His fingers were cold. She pointed toward Eva’s bedroom. He bent for his cane, and his face tightened so
quickly
another person might have missed it. Aurora did not.
She caught his wrist before
he could straighten. “Leave it.” His gaze
flicked
to the cane. “If you collapse carrying a concealed sword through my best friend’s flat, I’ll kill you myself.” “Eva’s flat?” “Move.” He moved, though not without retrieving the cane. Of course. Aurora waited until the bedroom door clicked shut, then scrubbed both hands over her face. Her straight black hair had fallen across her eyes. She tucked it behind one ear, checked the hallway for blood, and opened the door with the chain still fixed. A man in a navy raincoat stood on the landing. He had a policeman’s posture and no warrant card in sight. Water beaded on his shaved head. His pupils had narrowed to silver pins. “Evening,” Aurora said. “Miss Sharma?” “No.” A pause. “You live here?” “No.” His attention sharpened. “Who are you?” “The person you woke up.” “It’s half past nine.” “I start early.” His nostrils flared. Something moved beneath the skin of his jaw, too large and too deliberate to be a muscle. Aurora folded her arms, making certain the crescent scar on her left wrist stayed hidden beneath her sleeve. She had learned enough since coming to London to
know that some
things recognised old blood, old wounds, old names. “We’re looking for a man,” he said. “Blond. Dark suit.” “This is Brick Lane. You’ve just described three estate agents and a Swedish DJ.” “He may be injured.” “Then try A and E.” His silver pupils contracted further. “May I come in?” “No.” The thing beneath his jaw shifted again. Aurora smiled. Not
warmly
. “Do you have a warrant?” “No.” “Then you may stand there until the curry house closes and they hose you into the gutter.” For a moment, she thought he would force the door. Her hand tightened around its edge. The chain was decorative, the deadbolts useless while it stood open, and Lucien was in no condition to fight. She had a ceramic lamp within reach and a brass letter opener beneath the pile of takeaway menus. The man inhaled deeply. His eyes slid past her into the flat. Ptolemy
chose that moment
to thread between her ankles and hiss with every tooth he owned. The man recoiled. It was small, barely more than a twitch, but Aurora saw it. She bent and scooped up the cat. Ptolemy objected, digging claws into her jumper. “Sorry,” she said. “He doesn’t like police.” The tabby stared over her arm with flat green malice. The man backed away. “If you see anyone suspicious—” “I’ll avoid eye contact.” His lips peeled from his teeth.
Too many of them, packed
narrow and close.
Then he turned and descended
the stairs. Aurora waited until the outer door slammed below. She shut Eva’s door, dropped the chain, and locked all three deadbolts. Ptolemy sprang from her arms and stalked away, dignity wounded beyond repair. “Estate agents?” Lucien asked from behind her. She turned. He stood in the bedroom doorway, one shoulder braced against the frame. His jacket was open now, revealing a crimson-soaked shirt beneath his waistcoat. The loosened strand of hair hung over his brow. He looked less like London’s most polished fixer and more like a man who had
been dragged
backward through hell. Given his father’s origins, that might have been literal. “You’ve looked better,” she said. “So have your lies.” “He left.” “He will return.” “Then you can explain why he’s chasing you while I stitch up whatever part of you is leaking.” “I had forgotten your bedside manner.” “No, you hadn’t.” The words landed between them. His expression changed by degrees. The faint mockery went first, then the practiced composure behind it. What remained was the look he had worn the last time she saw him, in a rain-black alley in Soho, when he told her leaving was the only kindness he had left to offer. He had walked away before she could decide whether to slap him or kiss him. She still had not decided. Aurora crossed to the kitchen table and swept a stack of annotated scrolls onto the least cluttered chair. “Sit.” “I would prefer—” “Sit, Lucien.” He lowered himself with care. The cane remained beneath his palm, blade hidden, threat implied. Aurora fetched Eva’s first-aid tin from above the fridge, a bottle of vodka from behind three grimoires, and the cleanest tea towel she could find. When she came back, Lucien had removed his jacket. His waistcoat followed. His shirt clung wetly to his left side. “You’ll need to take that off.” One corner of his mouth lifted. “You might at least buy me dinner.” “I delivered dinner for six hours. I’m not buying it too.” She set the tin down harder than necessary. He worked the buttons one-handed. His fingers faltered at the fourth. Aurora slapped his hand away and finished for him. She refused to notice the
familiar
breadth of his chest beneath the blood, the pale scars crossing his ribs, or the way his breath caught when her knuckles brushed his skin.
Once, in a room with
velvet
curtains and no clocks, she had
traced
one of those scars with her mouth.
Once, he had said her
name as if it meant
sanctuary
.
Then he had disappeared before
dawn. She peeled the shirt away from his side. The wound was narrow and black around the edges, as if something hot had punctured him just below the ribs. Veins of darkness feathered outward through his skin. “That isn’t a knife wound.” “No.” “What was it?” “A sanctified bolt.” She stared at him. “Someone shot a half-demon with a blessed crossbow?” “When you phrase it that way, it does sound theatrical.” “It sounds effective.” “It was.” She soaked the tea towel with vodka and pressed it to the wound. Lucien hissed, his hand closing over her wrist. His grip landed directly over the crescent scar. Heat flared under his palm—
not pain, but awareness so acute it felt like one
. His gaze dropped to where he held her. Slowly, he loosened his fingers. “I’m sorry,” he said. “For grabbing me?” “For many things.” Aurora pulled her wrist free. “Convenient time to mention it.” “I did not come here expecting forgiveness.” “You didn’t come here expecting me at all.” “No.” The answer should not have hurt. She reached for gauze. “Eva’s in Prague.” “I know.” Her hands stopped. Lucien watched her with that mismatched gaze, one eye warm as brandy, the other an abyss. He had always been difficult to read. She had once mistaken difficulty for depth, then depth for honesty. “You knew,” she said. “Yes.” “So you came to find me.” “Yes.” Outside, tyres whispered over wet pavement. The extractor fan below rattled into
silence
, leaving the flat abruptly intimate.
Even Ptolemy had disappeared among
the books. Aurora wound gauze around Lucien’s torso, pulling it tight enough to make him wince. “Why?” “The creature at the door works for a broker named Cassian Vale. Vale has obtained something he believes belongs to him.” “And does it?” “No.” “What is it?” Lucien looked at her left wrist. Cold slipped through her. She drew her sleeve down. “Try again.” “He has a ledger of bloodlines connected to the old crossings between Earth and Avaros. Human families who carried keys without knowing it. The Carters are listed.” For one absurd second, she thought of her father in Cardiff, polishing his courtroom shoes while the radio muttered about rain. Her mother marking exercise books at the kitchen table. Ordinary things. Safe things. “What does that have to do with you leaving?” “Everything.” “No.” She tied off the bandage. “You don’t get to compress six weeks of
silence
into one dramatic word.” “Rory—” “You knew someone was after my family?” “I knew someone might be. I did not know who.” “So you vanished.” “I drew them away.” “You could have told me.” “And you would have done what? Stayed hidden?” “I might have.” He gave her a look. “All right, no. But that was my choice to make.” “Yes.” His voice had gone quiet. “It was.” That stopped her more effectively than an argument. Lucien looked down at his bloodied shirt, turning one mother-of-pearl button between his fingers. “I have rehearsed a dozen explanations. In all of them, I am clever enough to protect you without frightening you, honest enough to deserve your trust, and selfless enough not to mind if you hate me afterward.” A humorless smile touched his mouth. “Unfortunately, I remain myself.” “And what is that?” “A man who knew that if I saw you again, I would not be able to leave.” Aurora forgot the gauze in her hands. He raised his head. There it was again—that unbearable directness he rationed so
carefully
. It stripped the polish from him. No fixer, no broker, no elegant half-demon who could bargain in four languages and kill with the blade in his cane.
Just Lucien, pale from blood
loss, sitting shirtless at Eva’s crowded kitchen table and looking at Aurora as though she were the wound. She set the gauze down. “You already left.” “I know.” “You made me think I’d imagined it.” “What?” “Us.” His breath stalled. She hated the tremor in her voice, so she sharpened it. “You kissed me. You slept beside me. You told me things I know you’ve never told anyone, and then you vanished with a note that said, ‘This is necessary.’ Necessary. As if I were a meeting you had to cancel.” “I wrote seven pages before that.” “And?” “I burned them.” “Of course you did.” “They were not safe.” “Neither are you. Yet here you are.” A sudden impact shook the front door. Both of them turned. The top deadbolt groaned in its bracket. Lucien reached for his cane. Aurora caught it first. “You can barely sit upright.” “I can kill him sitting down.” “Charming.” Another blow rattled the frame. Books toppled from a shelf. Ptolemy shot from beneath the sofa and vanished into the bedroom. Aurora drew the concealed blade from the cane. It came free with a
whisper
, thin and bright, engraved along its length with symbols that hurt to look at directly. Lucien stared at her hand around the ivory grip. “You continue to surprise me.” “I’ve always wanted to do that.” “Rory.” The door shuddered again. Wood splintered around the middle bolt. She looked at him. “If it comes through,” he said, “the throat will not stop it. Aim beneath the jaw and drive upward.” “Noted.” “And if we survive—” “When.” His expression softened. “When we survive, I will tell you everything.” Aurora stepped closer and put the blade against his chest, flat beneath his collarbone. “If that is another beautifully phrased lie, I’ll test this on you.” “It is not.” “You don’t get to leave without a word.” “I won’t.” “You don’t get to decide what risks I take.” “No.” “You don’t get to kiss me just because you’re bleeding and emotionally compromised.” His amber eye warmed. “A devastating restriction.” The black veins around his wound had begun to recede, but his face remained too pale. He was hurt, hunted, and infuriating. He had brought danger to Eva’s door. He had also come because her family’s name sat in some infernal ledger and because, despite every clever instinct he possessed, he could not stay away. The doorframe cracked. Aurora caught his jaw with her free hand and kissed him. For half a heartbeat, Lucien did not move.
Then his fingers slid into
her hair, and the kiss deepened with a hunger that made six weeks collapse. Hurt went through it. Anger. Relief. His mouth tasted of rain and vodka, and when she leaned into him, he made a low sound that tightened something beneath her ribs. She broke away before the next blow landed. “That,” he said, breathing hard, “appears inconsistent with your restriction.” “I said you didn’t get to.” His thumb brushed her cheek. “And you?” “I’m still deciding.” The third deadbolt tore loose. Aurora turned toward the door, Lucien’s blade steady in her hand. Behind her, he rose with a quiet curse and took his place at her shoulder. Not in front of her. At her shoulder. The ruined door bowed inward. Silver eyes gleamed through the widening crack. Lucien’s fingers found her scarred wrist, not restraining this time, only touching. “When this is over,” he murmured, “the seven pages.” “You remember them?” “Every word.” Aurora tightened her grip on the ivory handle. “Good,” she said. “You can start with why it took a crossbow bolt to make you honest.” Then the door burst open.
created_at
"2026-07-09T17:55:28.25Z"
7/9/2026, 5:55:28 PM
model
"openai/gpt-5.6-sol-20260709"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
609
moderation_latency
(null)
generation_time
66495
tokens_prompt
808
tokens_completion
4610
native_tokens_prompt
753
native_tokens_completion
3587
native_tokens_completion_images
0
native_tokens_reasoning
0
native_tokens_cached
0
num_media_prompt
(null)
num_input_audio_prompt
(null)
num_media_completion
0
num_search_results
(null)
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.111375
router
(null)
provider_responses
0
endpoint_id
"a54c5de0-89bf-4ad7-a212-cf977eed918a"
id
"resp_0a77217769092d29016a4fe0905658819699791ff08e22dd95"
is_byok
false
latency
230
model_permaslug
"openai/gpt-5.6-sol-20260709"
provider_name
"OpenAI"
status
200
user_agent
"langchainjs-openai/1.0.0 ((node/v24.18.0; linux; x64))"
http_referer
(null)
request_id
"req-1783619728-g6GUgpE93poMZ0hHVIxH"
session_id
(null)
preset_id
(null)
api_type
"completions"
id
"gen-1783619728-lJNq0Ed0ViFfor2tJwYD"
upstream_id
"resp_0a77217769092d29016a4fe0905658819699791ff08e22dd95"
total_cost
0.111375
cache_discount
(null)
upstream_inference_cost
0
provider_name
"OpenAI"
response_cache_source_id
(null)
data_region
"global"
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
144
tagDensity
0.125
leniency
0.25
rawRatio
0
effectiveRatio
0
87.23%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
2740
totalAiIsmAdverbs
7
found
0
adverb
"very"
count
2
1
adverb
"sharply"
count
1
2
adverb
"quickly"
count
1
3
adverb
"warmly"
count
1
4
adverb
"slowly"
count
1
5
adverb
"carefully"
count
1
highlights
0
"very"
1
"sharply"
2
"quickly"
3
"warmly"
4
"slowly"
5
"carefully"
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)
79.93%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
2740
totalAiIsms
11
found
0
word
"pulse"
count
1
1
word
"footsteps"
count
2
2
word
"flicked"
count
1
3
word
"familiar"
count
1
4
word
"velvet"
count
1
5
word
"traced"
count
1
6
word
"sanctuary"
count
1
7
word
"silence"
count
2
8
word
"whisper"
count
1
highlights
0
"pulse"
1
"footsteps"
2
"flicked"
3
"familiar"
4
"velvet"
5
"traced"
6
"sanctuary"
7
"silence"
8
"whisper"
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
0
narrationSentences
225
matches
(empty)
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
0
hedgeCount
0
narrationSentences
225
filterMatches
(empty)
hedgeMatches
(empty)
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
351
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
repeatedSegmentCount
0
maxSentenceWordsSeen
43
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
2738
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
24
unquotedAttributions
1
matches
0
"No, Aurora mouthed."
66.67%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
67
wordCount
1967
uniqueNames
9
maxNameDensity
1.32
worstName
"Aurora"
maxWindowNameDensity
3
worstWindowName
"Lucien"
discoveredNames
Lucien
22
Moreau
1
Aurora
26
Ptolemy
8
Footsteps
1
Eva
5
London
2
Soho
1
Cardiff
1
persons
0
"Lucien"
1
"Moreau"
2
"Aurora"
3
"Ptolemy"
4
"Footsteps"
5
"Eva"
places
0
"London"
1
"Soho"
2
"Cardiff"
globalScore
0.839
windowScore
0.667
100.00%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
139
glossingSentenceCount
2
matches
0
"as if asking patience of every infernal ancestor he possessed"
1
"felt like one"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
1
per1kWords
0.365
wordCount
2738
matches
0
"not pain, but awareness so acute it felt like one"
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
2
totalSentences
351
matches
0
"know that some"
1
"chose that moment"
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
232
mean
11.8
std
13.57
cv
1.15
sampleLengths
0
33
1
45
2
14
3
1
4
8
5
22
6
12
7
13
8
5
9
6
10
46
11
9
12
6
13
4
14
7
15
56
16
6
17
7
18
1
19
28
20
3
21
22
22
20
23
7
24
5
25
53
26
4
27
38
28
3
29
23
30
4
31
12
32
17
33
3
34
10
35
15
36
6
37
6
38
5
39
14
40
33
41
3
42
10
43
6
44
16
45
2
46
1
47
10
48
44
49
34
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
1
totalSentences
225
matches
0
"been dragged"
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
0
totalVerbs
363
matches
(empty)
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
2
semicolonCount
0
flaggedSentences
2
totalSentences
351
ratio
0.006
matches
0
"Heat flared under his palm—not pain, but awareness so acute it felt like one."
1
"There it was again—that unbearable directness he rationed so carefully."
98.25%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1976
adjectiveStacks
0
stackExamples
(empty)
adverbCount
83
adverbRatio
0.04200404858299595
lyAdverbCount
20
lyAdverbRatio
0.010121457489878543
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
351
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
351
mean
7.8
std
6.48
cv
0.83
sampleLengths
0
33
1
8
2
15
3
10
4
12
5
7
6
7
7
1
8
8
9
9
10
2
11
2
12
9
13
12
14
13
15
5
16
6
17
18
18
7
19
21
20
7
21
2
22
6
23
4
24
7
25
3
26
30
27
6
28
17
29
6
30
4
31
3
32
1
33
17
34
11
35
3
36
22
37
5
38
5
39
10
40
7
41
5
42
6
43
13
44
12
45
7
46
15
47
4
48
5
49
12
47.44%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
9
diversityRatio
0.2564102564102564
totalSentences
351
uniqueOpeners
90
100.00%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
12
totalSentences
203
matches
0
"Just enough ivory and polished"
1
"Then Lucien stepped out of"
2
"Then the second."
3
"Too many of them, packed"
4
"Then he turned and descended"
5
"Once, in a room with"
6
"Once, he had said her"
7
"Then he had disappeared before"
8
"Slowly, he loosened his fingers."
9
"Just Lucien, pale from blood"
10
"Then his fingers slid into"
11
"Then the door burst open."
ratio
0.059
62.36%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
80
totalSentences
203
matches
0
"His platinum hair, usually slicked"
1
"His amber eye fixed on"
2
"She nearly shut the door"
3
"His cane slid into the"
4
"She looked down."
5
"He stood straight, but too"
6
"His mouth curved faintly."
7
"She closed the door enough"
8
"Her pulse kicked."
9
"His palm covered her mouth."
10
"he breathed against her ear"
11
"She smelled rain, blood, and"
12
"His chest rose once against"
13
"His amber eye held too"
14
"She glared at him and"
15
"She peeled Lucien’s hand from"
16
"His fingers were cold."
17
"She pointed toward Eva’s bedroom."
18
"He bent for his cane,"
19
"She caught his wrist before"
ratio
0.394
46.21%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
168
totalSentences
203
matches
0
"The door opened as far"
1
"Rain silvered the shoulders of"
2
"His platinum hair, usually slicked"
3
"The other hung empty at"
4
"His amber eye fixed on"
5
"The black one followed a"
6
"She nearly shut the door"
7
"His cane slid into the"
8
"The tabby landed with an"
9
"Downstairs, the curry house extractor"
10
"Aurora kept her hand on"
11
"She looked down."
12
"A dark stain spread along"
13
"He stood straight, but too"
14
"The sort of posture a"
15
"His mouth curved faintly."
16
"She closed the door enough"
17
"Her pulse kicked."
18
"Aurora’s shoulder struck the wall."
19
"His palm covered her mouth."
ratio
0.828
49.26%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
2
totalSentences
203
matches
0
"By the time she pulled"
1
"Even Ptolemy had disappeared among"
ratio
0.01
84.15%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
73
technicalSentenceCount
6
matches
0
"Beneath her hand, which had landed against his waistcoat, his heartbeat ran fast and uneven."
1
"Once, he had said her name as if it meant sanctuary."
2
"The wound was narrow and black around the edges, as if something hot had punctured him just below the ribs."
3
"No fixer, no broker, no elegant half-demon who could bargain in four languages and kill with the blade in his cane."
4
"Just Lucien, pale from blood loss, sitting shirtless at Eva’s crowded kitchen table and looking at Aurora as though she were the wound."
5
"His mouth tasted of rain and vodka, and when she leaned into him, he made a low sound that tightened something beneath her ribs."
100.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
18
uselessAdditionCount
0
matches
(empty)
100.00%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
15
fancyCount
2
fancyTags
0
"he breathed (breathe)"
1
"he murmured (murmur)"
dialogueSentences
144
tagDensity
0.104
leniency
0.208
rawRatio
0.133
effectiveRatio
0.028
90.7161%