NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-17-01KHMQP6Z9DQ8YE83J0TX6C99A
Run Details
Model:
GPT-4.1 Mini
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
13.6s
Cost:
$0.002682
Provider:
OpenAI
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
Aurora closed the door behind her with a quiet click, the
weight
of another long day folding over her like a familiar shroud. She kicked off her boots and leaned against the wall, eyes catching the cluttered chaos of Eva’s flat—a battered copy of *Faust*, a stack of cracked leather-bound journals, and Ptolemy flicking his tail
lazily
atop a mound of dusty tomes. The flat smelled like spiced curry mixed with old paper and something faintly metallic, lingering from a vague spell Eva had last week muttered under her breath. She was about to move toward the kitchen to warm something up when the sharp, deliberate knock at the door froze her in place. One knock—three sharp taps—not the rhythm of anyone she expected, but too purposeful to be a misstep. Her heart picked up, a sudden tightness in her chest she hadn't felt in a long time. Aurora’s fingers brushed the small crescent-shaped scar on her wrist beneath the sleeve of her worn leather jacket, a subconscious anchor to her grit. She walked toward the door, eyes narrowing, every instinct screaming wary caution. Three deadbolts, all in place. The knock came again—same pattern, insistence edged with a kind of command. She hesitated, breath steadying, then unbolted the locks one by one, sliding the bolts aside. The door creaked open—just a crack—to reveal a figure framed by the dim glow of the corridor light. A flash of platinum blond hair, slicked back impeccably, and eyes that pulled her attention with the
stark
anomaly of amber and onyx. “Lucien,” she breathed, voice tight, each syllable brittle and laced with history. He stepped inside without waiting for an invitation, the faint scent of tobacco and expensive aftershave curling around him like a promised danger. Dressed as always in charcoal gray, tailored to a whispering perfection that betrayed his
otherworldly
roots, he moved with a fluid confidence that
unsettled
her more than she liked to admit. “I trust I didn’t startle you,” he said
lightly
, his heterochromatic gaze flickering with something
unreadable
. “It’s been a while.” Aurora folded her arms protectively over her chest, leaning back against the doorframe. “Nearly a year,” she said, trying to sound indifferent but failing to mask the tremor underneath. “Do you have a reason to be here unannounced, or are you just fond of disturbing my peace?” A ghost of a smile pulled at the corners of Lucien’s thin lips. “I think there are some things better said in person—unforeseen meetings included.” Her throat tightened. The last unforeseen meetings between them had been disasters, punctuation marks of broken promises and unvoiced truths. “You’re not welcome here. You know that.” He stepped further inside,
reluctantly
respecting the closed distance but not retreating. “Am I? I always thought I was.” Ptolemy, the tabby, slunk between their legs, brushing against Lucien’s dark trousers, tail flicking with quiet indifference. Aurora’s gaze softened imperceptibly at the small protest from the cat. “Why are you here, Lucien?” she demanded, voice low. “If you’re here to reopen things best left closed, you’ll have to leave.” Lucien sighed, a sound like
silk
unraveling
. He reached into the breast pocket of his jacket and produced a folded piece of parchment. “That’s not why I came,” he said, holding the paper out. “This arrived today. From Avaros. Things are… shifting.” Aurora hesitated, stealing a quick glance at the fragile scrap, knowing better than to trust demons’ words. “And you thought ‘Rory’ could help?” “Intuition,” he replied, eyes catching the light and flashing amber. “And trust. I hoped you might still afford me that much.” A bitter laugh escaped her. “Trust isn’t something I give
lightly
, Lucien. Especially not after what happened.” He gave her that sardonic smile again, the one that hints at guilt but doesn’t admit it. “I’m aware. I don’t expect forgiveness. Just a chance to make things right.” Her gaze dropped to the scar on her wrist, a silent reminder of bruises deeper than skin. The memory of Evan’s cruelty surfaced, the suffocating escape to London, the fragile lifeline she’d
tried to
protect. Lucien had been part of that fragile rescue—and part of the storm that followed. The attraction between them had burned too hot, too fast, leaving ash in its wake. “You could have reached out before,” she said, eyes flickering up
sharply
. “Instead you vanished.” “I thought it was best,” he said quietly. “But I was wrong.” For a moment, the flat fell silent except for the distant hum of Brick Lane’s nightlife. Aurora’s heart beat unevenly, torn between the warmth of old desire and the sting of old wounds. Ptolemy jumped onto the windowsill, stretching
languidly
, as if claiming neutral ground between them. Aurora looked back at Lucien, at the stubborn hope in his mismatched eyes. “Sit down,” she said abruptly, retreating toward the small, threadbare couch. She wasn’t sure where this would go, but she wasn’t ready to shut the door
completely
—not yet. Lucien followed, his cane tapping
softly
against the hardwood floor. As he settled beside her, the tight distance between them sparked with
unspoken
tension. His amber eye caught hers, searching, waiting. “Talk to me,” she whispered, voice a little hoarse. “What’s coming from Avaros? And why does it matter to me?” He unfolded the parchment
carefully
, tracing the symbols
etched
in ink that
shimmered
faintly beneath the dim light. “There’s a shift in the demonic courts—powers rising that might slip through the cracks here in Earth’s realm. I need someone grounded, someone with your… unique perspective.” Aurora’s mind raced. She was no longer the naive girl who’d chased dreams of law and order. Her world had expanded in ways both terrifying and exhilarating. And Lucien—half demon, half
enigma
—demanded a part of her she wasn’t sure she wanted to give. “Why me?” she asked, turning the question over
slowly
. “Because you see the world clearly. You think two steps ahead and never trust surfaces,” he said, voice almost a murmur. “Because you’re not afraid to do what others won’t.” She let out a slow breath, the line between enemy and ally blurred once more under the
weight
of
unspoken
history. The pull between them was undeniable—something fierce and fragile, like glass ready to shatter. “Fine,” she said at last. “But on one condition.” He raised an eyebrow, interested. “No more secrets,” she said. “No more running away.” He met her with steady eyes, one black, one gold. “Agreed.” The fragile truce str
etched
between them, shimmering with possibility and pain. Outside, the city pulsed on, oblivious to the tentative promise kindling in the cramped flat above the curry house on Brick Lane.
created_at
"2026-02-17T02:43:35.789288+00:00"
2/17/2026, 2:43:35 AM
model
"openai/gpt-4.1-mini-2025-04-14"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
422
moderation_latency
(null)
generation_time
13467
tokens_prompt
808
tokens_completion
1820
native_tokens_prompt
754
native_tokens_completion
1488
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)
origin
"https://ncbench.com/"
is_byok
false
finish_reason
"stop"
native_finish_reason
"completed"
usage
0.0026824
router
(null)
provider_responses
0
id
"resp_0f5aeead177a8a1c016993d5c9c848819087edf5ebbea0112f"
status
200
is_byok
false
latency
124
endpoint_id
"872eccb7-9c85-45fc-974a-ff7c8e2407e6"
provider_name
"OpenAI"
model_permaslug
"openai/gpt-4.1-mini-2025-04-14"
api_type
"completions"
id
"gen-1771296201-TqUdJA5SIZviB0xivAbq"
upstream_id
"resp_0f5aeead177a8a1c016993d5c9c848819087edf5ebbea0112f"
total_cost
0.0026824
cache_discount
(null)
upstream_inference_cost
0
provider_name
"OpenAI"
Evaluation details
Result
Evaluator
Details
Meta Data
14.2857%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
14
adverbTagCount
5
adverbTags
0
"he said lightly, his heterochromatic gaze flickering with something unreadable [lightly]"
1
"she said, eyes flickering up sharply [sharply]"
2
"he said quietly [quietly]"
3
"she said abruptly, retreating toward the small, threadbare couch [abruptly]"
4
"he said, voice almost a murmur [almost]"
10.5546%
AI-ism adverb frequency
Target: <1% AI-ism adverbs (57 tracked)
wordCount
1118
totalAiIsmAdverbs
10
found
0
adverb
"carefully"
count
1
1
adverb
"completely"
count
1
2
adverb
"languidly"
count
1
3
adverb
"lazily"
count
1
4
adverb
"lightly"
count
2
5
adverb
"reluctantly"
count
1
6
adverb
"sharply"
count
1
7
adverb
"slowly"
count
1
8
adverb
"softly"
count
1
highlights
0
"carefully"
1
"completely"
2
"languidly"
3
"lazily"
4
"lightly"
5
"reluctantly"
6
"sharply"
7
"slowly"
8
"softly"
100.0000%
AI-ism character names
Target: 0 AI-default names (17 tracked, −20% each)
codexExemptions
(empty)
found
(empty)
100.0000%
AI-ism location names
Target: 0 AI-default location names (33 tracked, −20% each)
codexExemptions
(empty)
found
(empty)
0.0000%
AI-ism word frequency
Target: <1% AI-ism words (140 tracked)
wordCount
1118
totalAiIsms
13
found
0
word
"enigma"
count
1
1
word
"shimmered"
count
1
2
word
"otherworldly"
count
1
3
word
"silk"
count
1
4
word
"unspoken"
count
2
5
word
"unreadable"
count
1
6
word
"unsettled"
count
1
7
word
"stark"
count
1
8
word
"weight"
count
2
9
word
"etched"
count
1
10
word
"unraveling"
count
1
highlights
0
"enigma"
1
"shimmered"
2
"otherworldly"
3
"silk"
4
"unspoken"
5
"unreadable"
6
"unsettled"
7
"stark"
8
"weight"
9
"etched"
10
"unraveling"
100.0000%
Cliche density
Target: ≤1 cliche(s) per 800-word window
totalCliches
0
maxInWindow
0
found
(empty)
highlights
(empty)
100.0000%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
0
narrationSentences
64
matches
(empty)
100.0000%
Filter word density
Target: ≤12% sentences with filter/hedge words
filterCount
0
hedgeCount
1
narrationSentences
64
filterMatches
(empty)
hedgeMatches
0
"tried to"
100.0000%
Overuse of "that" (subordinate clause padding)
Target: ≤10% sentences with "that" clauses
thatCount
0
totalSentences
83
matches
(empty)
100.0000%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
36
mean
30.64
std
18.33
cv
0.598
sampleLengths
0
90
1
58
2
53
3
56
4
12
5
54
6
20
7
47
8
25
9
27
10
19
11
28
12
22
13
42
14
23
15
21
16
17
17
30
18
64
19
15
20
12
21
33
22
27
23
28
24
31
25
20
26
45
27
43
28
9
29
30
30
35
31
9
32
5
33
9
34
11
35
33
100.0000%
Passive voice overuse
Target: ≤5% passive sentences
passiveCount
0
totalSentences
64
matches
(empty)
100.0000%
Past progressive (was/were + -ing) overuse
Target: ≤10% past progressive verbs
pastProgressiveCount
0
totalVerbs
147
matches
(empty)
83.1998%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
884
adjectiveStacks
2
stackExamples
0
"cracked leather-bound journals,"
1
"small crescent-shaped scar"
adverbCount
38
adverbRatio
0.042986425339366516
lyAdverbCount
20
lyAdverbRatio
0.02262443438914027
100.0000%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
83
echoCount
0
echoWords
(empty)
100.0000%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
83
mean
13.29
std
6.9
cv
0.519
sampleLengths
0
23
1
40
2
27
3
24
4
17
5
17
6
24
7
12
8
5
9
12
10
15
11
18
12
23
13
12
14
23
15
31
16
16
17
4
18
13
19
16
20
18
21
13
22
12
23
3
24
17
25
7
26
12
27
7
28
17
29
11
30
9
31
13
32
7
33
16
34
11
35
8
36
17
37
6
38
10
39
11
40
5
41
12
42
17
43
13
44
17
45
18
46
14
47
15
48
12
49
3
73.8956%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
2
diversityRatio
0.4578313253012048
totalSentences
83
uniqueOpeners
38
0.0000%
Dialogue tag variety (said vs. fancy)
Target: ≤30% fancy dialogue tags
totalTags
14
fancyCount
11
fancyTags
0
"she breathed, voice tight, each syllable brittle and laced with history (breathe, voice lace)"
1
"he said lightly, his heterochromatic gaze flickering with something unreadable (say lightly, flicker)"
2
"she said, trying to sound indifferent but failing to mask the tremor underneath (say, try sound fail mask)"
3
"demanded (demand)"
4
"he said, holding the paper out (say, hold)"
5
"he replied, eyes catching the light and flashing amber (reply, catch flash)"
6
"she said, eyes flickering up sharply (say, flicker)"
7
"he said quietly (say quietly)"
8
"she said abruptly, retreating toward the small, threadbare couch (say abruptly, retreat)"
9
"she whispered, voice a little hoarse (whisper, voice)"
10
"he said, voice almost a murmur (say, voice almost)"
75.4080%