NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-19-01KHT07Q9X6X4EA2AADWTYG60B
Run Details
Model:
Rocinante 12B
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
31.8s
Cost:
$0.001289
Provider:
NextBit
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
86.40%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
61.92%
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)
32.81%
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)
89.45%
Purple prose (modifier overload)
(details)
100.00%
Repeated phrase echo
(details)
100.00%
Sentence length variance
(details)
50.20%
Sentence opener variety
(details)
37.88%
Adverb-first sentence starts
(details)
100.00%
Pronoun-first sentence starts
(details)
0.00%
Subject-first sentence starts
(details)
56.82%
Subordinate conjunction sentence starts
(details)
77.92%
Technical jargon density
(details)
89.29%
Useless dialogue additions
(details)
100.00%
Dialogue tag variety (said vs. fancy)
(details)
82.7559%
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="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> Continue the story using the following instructions: <instructions> 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. </instructions>
Model response
Messages
Meta
AI
Aurora froze, her hand still
poised to knock on Eva's door.
A jumble of emotions swirled
inside her, from
anticipation
to dread.
It had been months since
she'd last seen her old friend.
Months since everything had gone
sideways between them. She drew a deep breath, steeling herself.
She needed Eva's help, so
it was time face the music. Scowling at her own hesitation, Aurora knocked decisively.
The door swung open in
a flash. Perched on the threshold, Eva glared up at Rory, her stance rigid. "What the hell, Carter? It's 3 AM. I expect better on my doorstep."
Rory tried to suppress a
wince at the harsh greeting, but her smile felt wobbly on her face. "I know, I know. I'm sorry, I should have called first. But it couldn't wait."
Eva pursed her lips, her
gaze narrowing but drifting over Rory. "You look like you've been through the wringer."
Rory couldn't stifle a bitter
laugh.
If she was wearing her
exhaustion on her face, that was nothing compared to how ragged she felt inside. "Would you believe '-Hungover in London and Trying Not to Panic Attack?'" Eva quirked one slender brow. "Bad as all that, is it?" Rory nodded mutely.
She swallowed hard and her
voice emerged in a hoarse
whisper
. "I need somewhere to bunker down, Eva. Formally petition for
sanctuary
, if you'll have me." Eva's dark eyes flashed. "Fuck. Alright, get in here."
She turned on her heel
and stomped towards the back of the cramped flat.
Rory followed, an old ache
softly
thumping against her ribs. This place hadn't changed. It still reeked of incense, cats, and... danger.
Eva herself looked much the
same too, her skin the color of polished wood and her dreads a tangle of curls. With a
sense of
priced Championnats, Rory closed the door shut and clicked the three locks.
Eva had already parked herself
in the armchair, one shapely leg crossed over the other. Rory noticed the way the threads of Eva's dress stretched taut across her thighs and across her chest. Rory swallowed hard. "Hello, my darling." Eva pursed her lips, looking up at Rory with perhaps more than a hint of irritation. "Hello, Aurora." Eva leaned forward, her elbows propped on her knees,
as if preparing for a confession
. "It's an awful hour to drop by out of the blue, but..." She trailed off, glancing down. Aurora waited, hating the
weight
of the pause, what it meant. Eva was the first to crack a line, answering Rory's plea for
sanctuary
. "You declared. I tested. All to find this passion hot and growing, Prisoners by other fates disjoined." Rory exhaled hard, throat tight. "Eva, you aren't..." She shook her head. "...exactly what I expected. If I said I never thought of you, I'd be lying. There was always something between us." Eva kept eyeing the rivulet of sweat beading down Rory's neck. Finally, managing a strained smile, she spoke. "You're in luck, Carter. Sanctuary crashes are my day job. We'll get you patched up good as new." Rory exhaled a wry chuckle. "Sorry for the short notice. I'm not usually one for dramatic entrances." Eva raised one skeptical
eyebrow
. "This definitely qualifies. Though I gotta say, I never pegged you for a stuntwoman. You sure you're alright?" Rory's wince of physical discomfort was plain. "I've been in fights that were less of a fight, to be honest. Definitely been in cleaner gullets." "I can see that. What happened to you, Rory?" Rory drew in a slow, careful breath. Her hesitation gave her away, unsure how to even
begin to
explain herself. Eva looked her over, taking in the disheveled state of Rory. She frowned
slightly
, concerned. "Listen, I'll play nice. I'll ignore your heartbreak and your death riddle. But you should rest." Rory bit back a pained moan as she gingerly lowered herself into the armchair. "I have to admit, as tempting as the pity-party sounds, there's a lot on the line for me."
She paused, eyeing Eva solemnly
. "You've got real
potential
." Eva raised an
eyebrow
. "Oh, have I now?"
She paused, looking from Rory
to the bottle in her hand and back again. "Drink?" Rory held up a hand. "No thanks. I'm in a bad way today. Maybe another time."
She paused, seeing the look
on Eva's face. "What about you? You look like you're doing all right." Eva raised her hips in silent confirmation. "Boredom is the only poison I've encountered. I've had almost too much since then. But you?" Rory scrambled to respond in kind. "No, no, work's been great!" Eva leaned forward, young and interested. "Yeah? Good. I'll tell you more."
She gestured to Rory's shifting
appetites. "What do you think? As for myself, this obsession has caught me, meat." Rory plunged forward, desperate to keep something going with Eva. "That work?" Eva smiled up at Rory's body, careful and precise.
She tilted her head, motion
still in her hands. "Not finished." Rory held out her hands
helplessly
. "But I'm..." "Can I be honest? That doesn't sound so bad." Rory frowned. "But you're going to need someone to talk you through it." Eva stared at Rory for a long moment. "You haven't slept a wink, have you?" Rory shook his head. "Not in ages." "Walk me through the worst of what happened to you." Rory took a deep, shuddering breath. "I split with Lucien last night. He caught wind of my -- my moonlight initiative." Eva raised an
eyebrow
. "So that's what had you preoccupied lately?" "And panicking?" Rory concluded. "More than you can possibly imagine. Though, if I'm being honest, it was always a forgone conclusion. It was only a matter of time before he crossed paths with Runt." "You should pick one fight at a time." Eva reached forward, her hand briefly, almost accidentally brushing Rory's wrist. "Any chance you came here to tell me about it?" Rory froze as the name left her mouth, realizing how that sounded. She backpedaled weakly. "I came here for help, sure, but I..." Eva just gazed at her steadily,
as if waiting for Rory to say her piece
. Rory flagged her hands. "I don't normally take up space in this kind of hard-road narrative. I mean, I still know what I've lost. What it is to feel whole first, before I understand what is broken -- and then I know the price of a loss, love, that doesn't last forever." "When you say your moonlit activities led to a break-up, what exactly did you - and Runt - get up to?" Rory shivered, trying to run a hair through her fingers and coming up empty. "We... spirited people away to a safe place off grid. Helped avoid a digital surveillance state." Eva paused, an
eyebrow
raised. "To enable that kind of escape requires a significant network." Rory nodded. "I can get theState to look away." "What does theState give up in exchange?" Biting my lip, I had to think. "I... try not to think about that pa-" Eva sighed, slumping back in her chair. "Fuck. I thought I was done with this. With you." Rory swallowed hard and kept her gaze fixed on the old books piled by Eva's elbows. "I know it seems like I leave a trail of chaos everywhere I go. That I chase trouble like it's a love potion I can't get enough of..." Eva snorted. "Doesn't stop you from drinkin' it down like a cheap shot."
She rose slowly, old bones
creaking, and padded over to lean against Rory's knee, tilting her head to look up at Rory's face. "You're a walking apology for the fact I haven't found a steady away, yeah. But it's not the same thing - not for me." Rory pouted. "I'm not chasing problems. I'm chasing solutions. And maybe sometimes those problems are solutions too." Eva rolled her eyes. "You're not wrong. But you're also not right."
She jabbed a thumb over
her shoulder at the door. "I love you because you won't settle for easy answers. But that doesn't mean you won't waltz out of here into danger's arms again." Rory closed the space between them, her hands moving automatically, soothing, massage. "But my dangers and yours are different." Eva cringed. "Right. Because you're the only one whose heart's entirely in the hunt. The game. The prize."
She leaned back, studying Rory
closely. "You know, there was a time that the only problem in the world was our backs butting heads over something." Rory pursed her lips ruefully, resuming its massage of her chest. "Much as I appreciate the reference, I think I can manage my affections without it." "You don't want to hear what I think about what you've been up to?" "No. Not now, at least. Not until I have more information. More evidence of an outcome." "Fuck. Well, okay. But I reserve the right to give you shit when you get back." "I'd look forward to it." Eva paused for a moment before nodding
sharply
. "Alright. Let's do this. Fair warning though - it's gonna get weird before it gets better." Rory smiled wryly. "I'd expect nothing less from you." Eva smiled and poured out the drink she abandoned, the wine
glinting
in the low light. She took a long sip, the two women gazing over each other. "You think we're good to go?" Eva nodded, handing Rory a glass of wine. "Cheers." "One more thing. Tomorrow we'll go back to the restaurant and put everything back in order. I'll be right beside you. We'll rebuild the web together" "Yeah. You saved my ass. I'll return the favor." She turned, the effort of the conversation visibly wearing on her. Rory reached forward, clasping her hands. "I don't know what it is about you," she said, "but the whole thing was your idea. It's you who cooked it. It's your equation." Eva gazed at Rory suspiciously. "Oh? What equation?" "You know the one. The 'if I can do a thing, I might do them along the way' equation." Eva snickered, tapping her on the nose. "Right, it's all my fault." She snorted. "But you're not wrong. You and your schemes do seem to show up no matter how big or small I need 'em to be. Still, even with an equation as
complex
as that, you know what counts most on the track?" "A steady wager?" Rory winked. "I pay my way." "I knew you'd have the answer." Eva refilled their glasses. "Um. After all, I'd be sorry not to have you at my side. Just listen to the stillness of your heartbeat. Your intimacy." Rory eyes catching her. "I know it all comes down to you, mine." "Good. No matter what comes, we get through it together. No matter the riddles or demons or dangers." Eva's gaze hit Rory's eyeful of a kind, an undeniable understanding. "Things certainly didn't get too easy between us last time we talked. It's on me, so I'll work that field first. Then we talk."
created_at
"2026-02-19T03:48:56.262Z"
2/19/2026, 3:48:56 AM
model
"thedrummer/rocinante-12b"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
1576
moderation_latency
(null)
generation_time
31648
tokens_prompt
1056
tokens_completion
2734
native_tokens_prompt
991
native_tokens_completion
2607
native_tokens_completion_images
(null)
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)
origin
"https://ncbench.com/"
is_byok
false
finish_reason
"stop"
native_finish_reason
"stop"
usage
0.00128948
router
(null)
provider_responses
0
endpoint_id
"94c3af54-1ed5-400c-affb-570e2935d725"
id
"cmpl-71199a3d0926479bbbe7490d7c41a1a1"
is_byok
false
latency
1555
model_permaslug
"thedrummer/rocinante-12b"
provider_name
"NextBit"
status
200
api_type
"completions"
id
"gen-1771472936-9RiJj84xn0Yi1nmdtSA3"
upstream_id
"cmpl-71199a3d0926479bbbe7490d7c41a1a1"
total_cost
0.00128948
cache_discount
(null)
upstream_inference_cost
0
provider_name
"NextBit"
Evaluation details
Result
Evaluator
Details
Meta Data
100.00%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
14
adverbTagCount
0
adverbTags
(empty)
dialogueSentences
84
tagDensity
0.167
leniency
0.333
rawRatio
0
effectiveRatio
0
86.40%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
1838
totalAiIsmAdverbs
5
found
0
adverb
"softly"
count
1
1
adverb
"slightly"
count
1
2
adverb
"helplessly"
count
1
3
adverb
"slowly"
count
1
4
adverb
"sharply"
count
1
highlights
0
"softly"
1
"slightly"
2
"helplessly"
3
"slowly"
4
"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)
61.92%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
1838
totalAiIsms
14
found
0
word
"anticipation"
count
1
1
word
"whisper"
count
1
2
word
"sanctuary"
count
3
3
word
"sense of"
count
1
4
word
"weight"
count
1
5
word
"eyebrow"
count
4
6
word
"potential"
count
1
7
word
"glinting"
count
1
8
word
"complex"
count
1
highlights
0
"anticipation"
1
"whisper"
2
"sanctuary"
3
"sense of"
4
"weight"
5
"eyebrow"
6
"potential"
7
"glinting"
8
"complex"
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
98
matches
(empty)
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
0
hedgeCount
2
narrationSentences
98
filterMatches
(empty)
hedgeMatches
0
"tried to"
1
"begin to"
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
168
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
maxSentenceWordsSeen
48
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
1840
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
13
unquotedAttributions
1
matches
0
"Finally, managing a strained smile, she spoke."
0.00%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
93
wordCount
815
uniqueNames
4
maxNameDensity
6.13
worstName
"Rory"
maxWindowNameDensity
10
worstWindowName
"Rory"
discoveredNames
Eva
39
Aurora
3
Rory
50
Championnats
1
persons
0
"Eva"
1
"Aurora"
2
"Rory"
places
(empty)
globalScore
0
windowScore
0
32.81%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
64
glossingSentenceCount
3
matches
0
"as if preparing for a confession"
1
"as if waiting for Rory to say her piece"
2
"e conversation visibly wearing on her"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
0
per1kWords
0
wordCount
1840
matches
(empty)
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
0
totalSentences
168
matches
(empty)
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
85
mean
21.65
std
11.01
cv
0.509
sampleLengths
0
41
1
26
2
32
3
33
4
19
5
37
6
11
7
29
8
23
9
43
10
16
11
33
12
6
13
18
14
27
15
16
16
13
17
17
18
8
19
25
20
18
21
18
22
17
23
23
24
25
25
9
26
20
27
31
28
41
29
23
30
34
31
23
32
11
33
31
34
12
35
20
36
8
37
22
38
15
39
7
40
10
41
21
42
11
43
34
44
29
45
23
46
15
47
52
48
21
49
30
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
1
totalVerbs
173
matches
0
"was wearing"
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
0
semicolonCount
0
flaggedSentences
0
totalSentences
168
ratio
0
matches
(empty)
89.45%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
815
adjectiveStacks
0
stackExamples
(empty)
adverbCount
37
adverbRatio
0.04539877300613497
lyAdverbCount
22
lyAdverbRatio
0.026993865030674847
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
168
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
168
mean
10.95
std
7.46
cv
0.681
sampleLengths
0
11
1
11
2
11
3
8
4
7
5
11
6
8
7
7
8
12
9
13
10
18
11
15
12
11
13
8
14
6
15
19
16
12
17
5
18
6
19
3
20
11
21
15
22
4
23
19
24
10
25
4
26
7
27
1
28
21
29
16
30
15
31
18
32
3
33
3
34
16
35
2
36
15
37
12
38
5
39
11
40
13
41
17
42
5
43
3
44
4
45
21
46
11
47
7
48
18
49
5
50.20%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
4
diversityRatio
0.31547619047619047
totalSentences
168
uniqueOpeners
53
37.88%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
1
totalSentences
88
matches
0
"Finally, managing a strained smile,"
ratio
0.011
100.00%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
21
totalSentences
88
matches
0
"It had been months since"
1
"She drew a deep breath,"
2
"She needed Eva's help, so"
3
"She swallowed hard and her"
4
"She turned on her heel"
5
"It still reeked of incense,"
6
"She trailed off, glancing down."
7
"She shook her head."
8
"Her hesitation gave her away,"
9
"She frowned slightly, concerned."
10
"She paused, eyeing Eva solemnly"
11
"She paused, looking from Rory"
12
"She paused, seeing the look"
13
"She gestured to Rory's shifting"
14
"She tilted her head, motion"
15
"She backpedaled weakly."
16
"She rose slowly, old bones"
17
"She jabbed a thumb over"
18
"She leaned back, studying Rory"
19
"She took a long sip,"
ratio
0.239
0.00%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
82
totalSentences
88
matches
0
"Aurora froze, her hand still"
1
"A jumble of emotions swirled"
2
"It had been months since"
3
"Months since everything had gone"
4
"She drew a deep breath,"
5
"She needed Eva's help, so"
6
"The door swung open in"
7
"Rory tried to suppress a"
8
"Eva pursed her lips, her"
9
"Rory couldn't stifle a bitter"
10
"Eva quirked one slender brow."
11
"Rory nodded mutely."
12
"She swallowed hard and her"
13
"Eva's dark eyes flashed."
14
"She turned on her heel"
15
"Rory followed, an old ache"
16
"This place hadn't changed."
17
"It still reeked of incense,"
18
"Eva herself looked much the"
19
"Eva had already parked herself"
ratio
0.932
56.82%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
1
totalSentences
88
matches
0
"If she was wearing her"
ratio
0.011
77.92%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
33
technicalSentenceCount
3
matches
0
"If she was wearing her exhaustion on her face, that was nothing compared to how ragged she felt inside."
1
"Eva leaned forward, her elbows propped on her knees, as if preparing for a confession."
2
"Rory closed the space between them, her hands moving automatically, soothing, massage."
89.29%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
14
uselessAdditionCount
1
matches
0
"Eva reached, her hand briefly, almost accidentally brushing Rory's wrist"
100.00%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
2
fancyCount
1
fancyTags
0
"Rory concluded (conclude)"
dialogueSentences
84
tagDensity
0.024
leniency
0.048
rawRatio
0.5
effectiveRatio
0.024
82.7559%