NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-10-27-01M5YFPHC1MN70NHZ290RW38AS
Run Details
Model:
GPT-6.1 Terra (Reasoning, Medium)
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
48.8s
Cost:
$0.018378
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
77.33%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
86.78%
AI-ism word frequency
(details)
100.00%
Cliché density
(details)
100.00%
Emotion telling (show vs. tell)
(details)
100.00%
Filter word density
(details)
100.00%
Gibberish response detection
(details)
100.00%
Markdown formatting overuse
(details)
100.00%
Missing dialogue indicators (quotation marks)
(details)
0.00%
Name drop frequency
(details)
100.00%
Narrator intent-glossing
(details)
100.00%
"Not X but Y" pattern overuse
(details)
100.00%
Overuse of "that" (subordinate clause padding)
(details)
100.00%
Paragraph length variance
(details)
99.72%
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)
46.39%
Sentence opener variety
(details)
82.30%
Adverb-first sentence starts
(details)
89.14%
Pronoun-first sentence starts
(details)
34.07%
Subject-first sentence starts
(details)
30.86%
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.2202%
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 on the
length of the chain, and Rory found Lucien Moreau standing on Eva’s landing with rain on his shoulders and blood on his cuff. For one absurd second, all she could think
was that the
blood would ruin the suit. “Hello, Aurora.”
His voice was as composed
as ever.
His hair, slicked back from
his face, was not.
A pale strand had fallen
across his forehead, and his hand gripped the ivory handle of his cane hard enough to whiten the knuckles.
Rory kept her hand on
the door. “How did you find me?” “Your flat was being watched.” “That wasn’t the question.” “No.”
His mismatched eyes held hers
through the gap. “It wasn’t.” Below them, a delivery scooter rattled past the curry house.
The smell of fried onions
rose through the stairwell.
Somewhere behind Rory, Ptolemy knocked
something small and metallic off Eva’s kitchen counter. Lucien glanced over his shoulder. “May I come in?” “No.”
A flicker of something crossed
his face. Not surprise. He had probably expected that. “Then take this.”
He reached inside his coat
.
Rory shoved the door toward
him.
His cane caught it before
the chain could snap taut. “Paper,”
he said quickly
. “Only paper.”
He drew out a folded
sheet and held it through the opening.
Rory hesitated, then took it
between two fingers. It was thick, expensive stationery, marked with a symbol in dark red ink: three interlocking circles, each split by a vertical line. She recognized it.
She had seen it stamped
on the envelope Lucien had given her three months ago, the night he told her to leave his office and not come back. “What is it?” she asked. “A claim.” “On what?”
His gaze dropped to her
left wrist. Rory pulled the sleeve of her jumper down over the small crescent scar. “You said that was over.” “I was wrong.” “You were
very
convincing at the time.” The door at the bottom of the stairs opened. Voices drifted up, a man and a woman laughing together. Lucien went still, listening. When the
footsteps
continued past the landing below, he let out a quiet breath. Rory looked at his cuff again. Fresh blood had soaked into the charcoal fabric. “Is that yours?” “Some of it.” “Comforting.” “Aurora.”
He shifted his grip on
the cane. “I would not have come here if I had another way to reach you.” “You could have called.” “You blocked my number.” “I wonder why.” A faint, pained smile touched his mouth.
She hated that she remembered
what it
felt like under hers
. Then she heard
footsteps
again, slower this time, ascending from the floor below. Lucien turned toward the stairs. The change in him was immediate: his shoulders settled, his cane angled
slightly
away from his body, and his expression emptied. Rory had seen him like that once before. The man who had cornered them outside the restaurant had left with a broken wrist and a warning Rory had not understood until much later.
She shut the door, unfastened
the chain, and pulled it open. “Inside.” Lucien slipped past her. Rory closed the door and turned all three deadbolts, one after the other. His gaze followed her hand. “Eva’s idea,” she said. “She has good instincts.” “She also has a cat who bites strangers.” Ptolemy appeared from the kitchen, surveyed Lucien, and wound himself around the man’s ankles. “Traitor,” Rory told him. Lucien bent to scratch the tabby beneath the chin. Ptolemy purred with an enthusiasm Rory considered excessive. The flat was even more crowded than when she had
arrived that afternoon
. Eva’s notes occupied the sofa, the coffee table, and most of the floor beside the bookcase. A scroll hung over the arm of a chair like a long, dry tongue. Rory had come to water the plants while Eva was away for two nights, and had stayed because she hadn’t fancied returning to her own empty flat.
Now she was glad she
had. “Sit down,” she said. “I should look at the windows first.” “You should stop dripping on Eva’s notes.”
He looked down at the
red spots forming on a page headed in Eva’s cramped handwriting. “Ah.” Rory swept a stack of books off the end of the sofa, making room. Lucien set his cane beside it and sat, moving with more care than he had shown on the landing.
She fetched a clean tea
towel and the first-aid tin from the kitchen. When she returned, he had taken off his jacket. The sleeve of his white shirt
was sliced
from wrist to elbow. “Who did it?” she asked. “Someone who wanted that paper.” “And you thought I’d enjoy having it instead?” “I thought you should see it before we destroy it.” Rory knelt in front of him and peeled back the ruined sleeve. The cut along his forearm was deep enough to make her
stomach
tighten. “You need a hospital.” “It is already closing.” She looked closer. The edges had drawn together in places, though blood still welled from the center.
She had seen him heal
before, but never quite
got used
to it. “Does it hurt?” “Yes.” “Good.” His mouth twitched. “I deserved that.” “You deserve considerably more than that.” “I know.” She pressed the folded towel to his arm. He hissed, and she felt a brief, unworthy satisfaction. On the table beside them lay the claim, its red symbol catching the lamplight. Rory had spent the last three months trying not to think about that mark. She had first seen it after a delivery to an address that had turned out not to exist, when a woman with silver teeth had seized her wrist and stared at the scar as if it were a signature. Lucien had intervened. He had kept Rory in his office for two days, brought her food, answered some of her questions, and kissed her on the second night with such
restrained
hunger that she had caught his lapels and pulled him closer. On the third morning, he had handed her an envelope bearing the red symbol and told her she was safe. By the following evening, she had learned he had given the people looking for her the address of the Golden Empress. Yu-Fei had been closing up when they arrived. No one had been hurt, but the kitchen door had
been torn
off its hinges, and Rory had spent an hour helping clean black grit out of the rice bins. Lucien had refused to tell her anything useful about why he had done it. He had only said, You were never the person they wanted.
Then he had asked her
to leave. Rory lifted the towel. The bleeding had slowed. “Does this claim say why they came back?” “It says they believe the mark on your wrist gives them a right to you.” “My scar is from falling off my bike when I was eight.” “I know.” “Do they?” “They know now.” He watched her reach for the antiseptic. “It made no difference.” She dabbed the cut. He did not flinch this time, though his jaw tightened. “What did you give them?” she asked. “After they went to the restaurant.” “An address.” She stopped. “Another one?” “One that led them to the person who put your name in their records.” Rory looked up. “Who?” “A man called Dacre. He buys old contracts, changes names on them, and sells them on. Your scar resembled a mark described in one of the contracts. He saw an opportunity.” “How did he know about my scar?” “He paid someone at the restaurant for information about the staff.” Rory sat back on her heels. She thought of the woman with silver teeth, of Yu-Fei standing in the wrecked kitchen with her hands on her hips, furious but steady. Someone had pointed Rory out. Someone who had watched her carry bags to customers and roll up her sleeves to wash her hands. “Why didn’t you tell me?” Lucien looked at the claim rather than at her. “Dacre wanted me to give you to him. I thought that if you knew who he was, you might go looking for him yourself.” “You mean you thought I couldn’t be trusted.” “I thought you were brave, and angry, and that he would use both against you.” “So you sent them to Yu-Fei.” “I sent them to an empty building next door. Dacre had been using it. I expected them to find him there.” “But they got the wrong door.” “Yes.” His voice roughened. “I should have warned you. I should have warned her.” Rory wound a bandage around his arm, pulling it tighter than necessary. He let her. “You could have told me after,” she said. “I could have.” “Instead you told me to go.” “I had made myself useful to Dacre before I understood what he was doing. I thought if you stayed near me, he would find another way to reach you.” Rory tied off the bandage. “You don’t get to make that decision for me.” “I know that now.” “You knew it then. You just didn’t like the answer I might give you.” He met her eyes. She could see his exhaustion now, beneath the immaculate habits and the careful posture. It did not make him less handsome. That was deeply inconvenient. “No,” he said. “I didn’t.” A thump sounded against the front door. Rory was on her feet before the second knock came. Lucien rose too, reaching for his cane. “Stay behind me.” She gave him a look. “Please,” he amended. The knock came again, followed by a
familiar
voice. “Rory? It’s me.” She hurried to the door and checked through the spyhole. Eva stood on the landing with a canvas bag over one shoulder and an umbrella in her hand. Rory undid the deadbolts. “You weren’t coming back until tomorrow.” “I forgot my laptop charger.” Eva stepped inside, took one look at Lucien, and stopped. “Oh.” “It isn’t what it looks like,” Rory said. Eva surveyed the bloodied towel, the bandage, and the claim on the table. “That would depend on what it looks like.” “Trouble,” Lucien said. “Yes,” Eva replied. “That’s what I thought.” She crossed to the table and picked up the claim. Rory watched her friend’s expression sharpen as she examined the symbol. “I’ve been researching these,” Eva said. “Where did you get it?” “From the people who issued it,” Lucien said. “They intend to renew the contract tonight.” Eva turned the sheet over. “They can’t. The claimant hasn’t signed.” Lucien came closer. “Dacre wouldn’t sign it himself. He’s careful about leaving evidence.” “Not Dacre.” Eva pointed to a blank line at the bottom. “The person being claimed.” Rory joined them. “Why would anyone sign that?” “They wouldn’t, if they knew what it was. The older contracts use tricks. A receipt, a guest book, a delivery slip.” Eva glanced at her. “Have you signed anything strange lately?” “I sign delivery slips every day.” “This needs to be the original.” Eva tapped the thick paper. “And there’s no signature here.” Lucien exhaled
slowly
. “They were trying to force her to sign.” “Or trying to get close enough to make it look as if she had.” Eva handed the paper to Rory. “If you destroy this copy before it’s signed, they’ll have to start again. There’s a record somewhere, but without the claim, they have nothing to enforce.” Rory studied the blank line. “Can they make another?” “Probably. We’ll find the record and deal with it.” Eva’s gaze shifted to Lucien. “Together, preferably, with everyone telling everyone else what they know.” “I deserve that too,” he said. “You do.” Eva picked up her bag. “My charger’s in the bedroom. Then I’m going to the shop downstairs for milk, because apparently we’re having a meeting.” When she disappeared down the narrow hallway, Rory looked at the claim. “Fire?” “Ordinary fire should do,” Lucien said. “The ink will burn green. Don’t breathe it in.” “Of course it will.” In the kitchen, she put the paper in the sink and lit one corner with a match. The flame took
slowly
, then ran along the red lines. Green smoke curled upward. Rory opened the window and stepped back, Lucien beside her. The sheet blackened and collapsed.
Only when the last bright
fleck went out did she
realize
how
tightly
she had been holding her breath. From the bedroom came the scrape of a drawer and Eva’s voice, speaking affectionately to Ptolemy. Lucien rested his hand on the counter. “I am sorry, Rory.” He rarely used her name that way. It landed more
softly
than Aurora, and because of that, more dangerously. “I know you are,” she said. “That doesn’t fix it.” “I know.” She turned to face him. “If we do this, you tell me everything. Even when you think I won’t like it.” “Especially then.” “And you apologize to Yu-Fei.” “I did. She threw a ladle at me.” Rory blinked. “When?” “The morning after. She missed.” “She didn’t miss,” Rory said. “If she’d wanted to hit you, you’d know.” His smile appeared properly then, sudden and warm. Rory felt the old pull of it low in her chest. She was still angry with him. She also wanted to touch the loose strand of hair on his forehead and see whether his composure would survive it. He
seemed to
read something in her face, because his smile faded. “I have missed you,” he said. She could have made a joke. She could have reminded him that missing someone was easier than treating them well. Both would have been true. “I missed you too,” she said instead. “I was furious about it.” “I’m glad I wasn’t alone.” The kitchen was small. With him standing there, it felt smaller still. Rory reached for his uninjured hand and turned it palm up. There was a nick across one finger, already healing. “Were you
really
at my flat?” she asked. “Yes. I saw two men across the street. Neither belonged there.” “And you came looking for me.” “I went to the restaurant first. Yu-Fei told me where you were.” “That’s generous of her.” “She told me she would use the ladle again if I caused you trouble.” “She likes that ladle.” “I gathered.” Rory ran her thumb over his knuckles. His fingers closed around hers,
cautiously
enough that she could have pulled away without effort. “I’m not ready to pretend nothing happened,” she said. “I wouldn’t ask you to.” She stepped closer. “I might still kiss you.”
His gaze dropped to her
mouth. “I would be
very
glad if you did.” She did. The kiss began
gently
, almost tentatively, and then his free hand came to her waist. Rory caught his shirt between her fingers, mindful of the bandage, and he drew her closer. He tasted faintly of rain and the mint he always carried. When they parted, his forehead rested against hers for a moment. From the hallway, Eva cleared her throat. Rory stepped back. Eva stood there holding a charger and a squirming Ptolemy. “Milk,” Eva said. “And then explanations. Detailed ones.” “You’ll get them,” Rory said. Eva set the cat down and headed for the door. Ptolemy trotted into the kitchen and sat at Lucien’s feet, looking up expectantly. Lucien bent to stroke him with his good hand. Rory leaned against the counter and watched, her mouth still tingling. There was a record to find, and Dacre to deal with, and a great deal she had yet to decide about the man in Eva’s kitchen. For tonight, though, he had come when she needed warning, and he
was staying
to answer her questions. “Start with Dacre,” she said. Lucien straightened. “Very well.” “And don’t leave anything out.” He drew a chair over from the table and sat where she could see his face. “I won’t.”
created_at
"2026-10-27T10:50:04.555Z"
10/27/2026, 10:50:04 AM
model
"openai/gpt-6.1-terra-20261026"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
2580
moderation_latency
(null)
generation_time
48766
tokens_prompt
788
tokens_completion
4092
native_tokens_prompt
753
native_tokens_completion
3525
native_tokens_completion_images
0
native_tokens_reasoning
103
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.018378
router
(null)
user_agent
"langchainjs-openai/1.0.0 ((node/v24.22.1; linux; x64))"
http_referer
(null)
request_id
"req-1793098204-mgALr1dtqO2RlLlzhmnZ"
session_id
(null)
preset_id
(null)
api_type
"completions"
id
"gen-1793098204-Z2A5xvf5fCddjXHY6KwW"
upstream_id
"resp_03bb3664db3a108e016ae081dca66887d18fd90cf7043bf29a"
provider_responses
0
endpoint_id
"2d2ad10f-098e-4bbf-aa95-11f705b2b9a2"
id
"resp_03bb3664db3a108e016ae081dca66887d18fd90cf7043bf29a"
is_byok
false
latency
288
model_permaslug
"openai/gpt-6.1-terra-20261026"
provider_name
"OpenAI"
status
200
total_cost
0.018378
cache_discount
(null)
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
38
adverbTagCount
2
adverbTags
0
"he said quickly [quickly]"
1
"she said instead [instead]"
dialogueSentences
153
tagDensity
0.248
leniency
0.497
rawRatio
0.053
effectiveRatio
0.026
77.33%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
2647
totalAiIsmAdverbs
12
found
0
adverb
"quickly"
count
1
1
adverb
"very"
count
3
2
adverb
"slightly"
count
1
3
adverb
"slowly"
count
2
4
adverb
"tightly"
count
1
5
adverb
"softly"
count
1
6
adverb
"really"
count
1
7
adverb
"cautiously"
count
1
8
adverb
"gently"
count
1
highlights
0
"quickly"
1
"very"
2
"slightly"
3
"slowly"
4
"tightly"
5
"softly"
6
"really"
7
"cautiously"
8
"gently"
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)
86.78%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
2647
totalAiIsms
7
found
0
word
"flicker"
count
1
1
word
"footsteps"
count
2
2
word
"comforting"
count
1
3
word
"stomach"
count
1
4
word
"restrained"
count
1
5
word
"familiar"
count
1
highlights
0
"flicker"
1
"footsteps"
2
"comforting"
3
"stomach"
4
"restrained"
5
"familiar"
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
190
matches
(empty)
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
1
hedgeCount
1
narrationSentences
190
filterMatches
0
"realize"
hedgeMatches
0
"seemed to"
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
305
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
repeatedSegmentCount
0
maxSentenceWordsSeen
39
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
2647
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
38
unquotedAttributions
0
matches
(empty)
0.00%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
104
wordCount
1752
uniqueNames
11
maxNameDensity
2.4
worstName
"Rory"
maxWindowNameDensity
6
worstWindowName
"Eva"
discoveredNames
Rory
42
Lucien
25
Moreau
1
Eva
23
Ptolemy
6
Golden
1
Empress
1
You
1
Yu-Fei
2
Aurora
1
Dacre
1
persons
0
"Rory"
1
"Lucien"
2
"Moreau"
3
"Eva"
4
"Ptolemy"
5
"Yu-Fei"
places
(empty)
globalScore
0.301
windowScore
0
100.00%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
120
glossingSentenceCount
1
matches
0
"felt like under hers"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
0
per1kWords
0
wordCount
2647
matches
(empty)
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
3
totalSentences
305
matches
0
"was that the"
1
"hated that she"
2
"arrived that afternoon"
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
186
mean
14.23
std
13.04
cv
0.916
sampleLengths
0
28
1
16
2
2
3
40
4
12
5
5
6
4
7
11
8
32
9
9
10
1
11
14
12
8
13
16
14
6
15
42
16
31
17
5
18
2
19
2
20
7
21
18
22
3
23
7
24
37
25
14
26
3
27
3
28
1
29
22
30
4
31
4
32
3
33
18
34
39
35
33
36
11
37
1
38
22
39
4
40
4
41
8
42
14
43
4
44
17
45
76
46
4
47
7
48
7
49
17
99.72%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
3
totalSentences
190
matches
0
"was sliced"
1
"got used"
2
"been torn"
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
1
totalVerbs
334
matches
0
"was staying"
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
0
semicolonCount
0
flaggedSentences
0
totalSentences
305
ratio
0
matches
(empty)
100.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1755
adjectiveStacks
0
stackExamples
(empty)
adverbCount
61
adverbRatio
0.034757834757834755
lyAdverbCount
19
lyAdverbRatio
0.010826210826210826
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
305
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
305
mean
8.68
std
6.51
cv
0.75
sampleLengths
0
28
1
16
2
2
3
7
4
9
5
24
6
7
7
5
8
5
9
4
10
9
11
2
12
10
13
9
14
13
15
5
16
4
17
1
18
7
19
2
20
5
21
8
22
6
23
10
24
4
25
2
26
12
27
8
28
22
29
3
30
28
31
5
32
2
33
2
34
7
35
13
36
5
37
3
38
7
39
9
40
10
41
4
42
14
43
6
44
8
45
3
46
3
47
1
48
8
49
14
46.39%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
11
diversityRatio
0.2786885245901639
totalSentences
305
uniqueOpeners
85
82.30%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
4
totalSentences
162
matches
0
"Somewhere behind Rory, Ptolemy knocked"
1
"Then she heard footsteps again,"
2
"Then he had asked her"
3
"Only when the last bright"
ratio
0.025
89.14%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
53
totalSentences
162
matches
0
"His voice was as composed"
1
"His hair, slicked back from"
2
"His mismatched eyes held hers"
3
"He had probably expected that."
4
"He reached inside his coat"
5
"His cane caught it before"
6
"he said quickly"
7
"He drew out a folded"
8
"It was thick, expensive stationery,"
9
"She recognized it."
10
"She had seen it stamped"
11
"His gaze dropped to her"
12
"He shifted his grip on"
13
"She hated that she remembered"
14
"She shut the door, unfastened"
15
"His gaze followed her hand."
16
"He looked down at the"
17
"She fetched a clean tea"
18
"She looked closer."
19
"She had seen him heal"
ratio
0.327
34.07%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
138
totalSentences
162
matches
0
"The door opened on the"
1
"His voice was as composed"
2
"His hair, slicked back from"
3
"A pale strand had fallen"
4
"Rory kept her hand on"
5
"His mismatched eyes held hers"
6
"The smell of fried onions"
7
"Lucien glanced over his shoulder."
8
"A flicker of something crossed"
9
"He had probably expected that."
10
"He reached inside his coat"
11
"Rory shoved the door toward"
12
"His cane caught it before"
13
"he said quickly"
14
"He drew out a folded"
15
"Rory hesitated, then took it"
16
"It was thick, expensive stationery,"
17
"She recognized it."
18
"She had seen it stamped"
19
"His gaze dropped to her"
ratio
0.852
30.86%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
1
totalSentences
162
matches
0
"Now she was glad she"
ratio
0.006
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
76
technicalSentenceCount
2
matches
0
"The man who had cornered them outside the restaurant had left with a broken wrist and a warning Rory had not understood until much later."
1
"Someone who had watched her carry bags to customers and roll up her sleeves to wash her hands."
100.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
38
uselessAdditionCount
0
matches
(empty)
100.00%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
25
fancyCount
0
fancyTags
(empty)
dialogueSentences
153
tagDensity
0.163
leniency
0.327
rawRatio
0
effectiveRatio
0
88.2202%