NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-17-01KHMQRWZ0W40N8HAZP06QTP4X
Run Details
Model:
GPT-4.1
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
32.5s
Cost:
$0.017108
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 Carter balanced the takeaway bag against her hip, fumbling three keys in gloved fingers, teeth pressed into her lower lip as she glared at Eva's front door. Cold East London drizzle had slicked her hair flat, the dark strands clinging to her jaw. Only one more delivery—Eva’s favourite, korma extra coriander, one miserable block from the bar—and then home to silence upstairs, where nobody needed her or called her by her real name. She jiggled the lock, the middle key sticking, same as every Thursday. From the other side, Ptolemy’s scratchy yowl. The sound curled against her ribs, softening the edge of her exhaustion. “Hang on, mate,” she muttered. “Almost there.” The door swung open. Aurora stepped in, bracing for familiar chaos—books underfoot, the smell of paper and curry, Eva’s jubilant laugh from the couch. What she found instead was silence, and Lucien Moreau leaning against the far wall. He wore one of his charcoal suits, sleeves sharp at the wrist, platinum hair severe and unsmudged despite the storm outside. The ivory head of his cane flashed dully in the single lamplight. One amber eye and one black found hers immediately, both unblinking, weighing every inch of her. His mouth curved, but not to smile. “You’re early,” Lucien said, each consonant so precise it could slice open a lie. For a beat, all Aurora managed was to twist the takeaway bag tighter, heart pounding louder than the flats’ ancient radiators. “I live in the building,” she said, colder than she meant. “Eva rang. She said she’d be back late. Didn’t mention—” She stopped. Didn’t mention you. Lucien closed the notebook dangling from his left hand, tapping the cover against his palm in thought. He was taller than the ceiling
seemed to
allow, shadow flooding out behind him, effortless authority bleeding into all the cramped corners she’d thought were safe. “I am merely borrowing her hospitality until she returns,” he replied. “May I?” He slipped the bag
gently
from her grasp. His fingers brushed her wrist—her left, where the old crescent scar pulsed with sudden heat. He didn’t linger. “Aurora Carter.” He tried her whole name in his mouth, low, fond, the ‘r’s coiling. “Still running errands for restaurants? Or is it only for Eva’s benefit?” Aurora shut the door behind her, pausing to shoot the deadbolts—all three, automatic, muscle memory. She pulled off her jacket, rain-soaked and heavy as regret, ignoring Ptolemy swirling between her ankles. “Why are you
really
here?” She set the sack on the nearest book-piled table, posture wound tight. She met his eyes and forced herself not to look away. “Eva doesn’t like surprises.” “I am not here to surprise her.” He set down his cane with exaggerated care, as if to calm a jumpy animal. “It is you I wished to see.” The room was impossibly small with him in it; books, scrolls, half-written magical formulae barricaded every surface, the close scent of ink and incense rising to meet him. His presence, always electric, now radiated a low-grade simmer she remembered too well. How
quickly
her own body responded—to the angle of his jaw, the precise angle at which he balanced on the balls of his feet, ready, as though expecting an attack or an invitation. “That isn’t funny,” she said. “Not after last time.” He
seemed to
consider this, amber eye
unreadable
. “No. It is not meant to be.” Silence. Aurora shrugged off her gloves, flexed her cold fingers. She searched for a safe topic, found none. The last time she’d seen Lucien was a month ago, in a shadowed Lammas Street alley, with broken clockwork shrieking in the gutter and her hands shaking too much to light a cigarette. She had seen the silent suggestion in his eyes—Come with me, it will be safer where I am—but she’d run instead, refusing
sanctuary
, refusing the way he made her
feel
seen. He had let her go. She had told herself there was no price. Ptolemy nosed hopefully at the takeaway. Lucien knelt—a smooth movement, knife-slick—and fed the cat a torn-off strip of naan, murmuring to him in French. Aurora stared, unwillingly amused. Ptolemy, traitorous, purred louder. Finally, Lucien stood, brushing flour from his cuffs. He met Aurora’s gaze with a thoughtful tilt of the head. The air between them felt crowded with memory. “Why did you
really
come?” Aurora asked, putting every brick back up, all sharp angles to keep the truth inside. He stepped closer, nothing hurried, only a slow circling as if stalking a possibility. “I heard a rumor,” he said, French accent blurring the edges of his words, “that you had stopped running. That you had chosen to make a home, however small, however temporary.” She snorted, but the laugh caught in her throat. “Brick Lane? You call this home?” His lips
flickered
. “Home is not a place. Or you would have found one by now, non?” For a moment the hurt bled through—subtle, almost artful. “I missed you, Aurora. You do not answer my calls.” “Maybe I had nothing worth saying.” She crossed her arms against her chest, heart clawing at her ribs. “Maybe I was busy.” He smiled, but the smile did not reach his eyes. “You are angry with me.” She searched for the words. “I’m tired, Lucien. Of secrets. Of never knowing if you mean half of what you say.” He regarded her then—
truly
regarded her, as if what she said mattered. Lucien’s voice softened, midnight mellow. “I am sorry for the times I have left you guessing. Demon blood does not make for tidy affection.” He took a risk, offering his hand the way he never had before, the way she’d wanted him to do once, in a kitchen lit by fridge bulb and thunder. Aurora stared at his palm, the long elegant fingers scarred in patterns she’d never deciphered, then at his face, searching for cruelty, calculation—finding only resignation, and a vulnerable hope he would surely deny. “You want to talk?” she managed, the words brittle in her mouth. “After a month?” “I wish to explain,” he admitted. “If you permit me.” She hesitated. The apartment felt close, book-thick air standing between them as barrier and invitation. Somewhere below, the curry house exhaust
was coughing
up fried spices. She took his hand, cautious, half certain she’d regret it. His skin was warmer than she remembered. He closed the distance, cautious, as if she might bolt. She could smell his cologne—cedar and something faintly metallic. His grip was strong but without force. “The night on Lammas Street,” he said quietly, “I did not ask you to come with me so I would own you. I asked because I could not bear watching you hurt alone.” He lifted her hand, thumb tracing the crescent scar on her wrist. His voice lost its practiced elegance, slipping raw. “You deserve more than running.” The softness caught her off-guard. “You never said any of this,” she breathed. “One minute you’re everywhere—I can’t catch my breath. The next, you’re gone.” “My fear, not yours,” he admitted. “An old habit. You—frighten me, Aurora. Because I want things with you my kind cannot keep.” His words landed, trembling, more honest than all the clever posturing before. Aurora might have laughed, if laughter hadn’t threatened tears. “I frighten you,” she
echoed
. “That’s rich.” “You do,” Lucien whispered, close enough now that the room
seemed to
fold inward around just the space between them. He cupped her face, fingertips gentle as rain. “If you send me away, I will go. But I must try once to tell you—I have missed you. Every hour, every unkind silence.” She heard the words as if spoken into bone. For too long she’d lived with half a life, with longings pressed flat, denied air. Maybe this time, she didn’t have to flinch from what she wanted. Maybe this once, she could take it. Aurora pressed her scarred wrist to his chest, over the measured thrum of something not quite human, not quite safe. “I’m tired,” she whispered, “of hiding. Are you?” “Oui,” he said, the word
velvet
, a promise. So when she tilted her mouth to his, she found warmth, and inexplicable belonging. His reply was starlit and slow, as if he meant to memorize her with every breath. The books and world, the pain and past—all of it suspended, carried by the strong, trembling anchor of his embrace. Ptolemy butted their shins, unimpressed by human drama. The curry scent faded, replaced by the scent of rain, and the old comfort of finding—at last, and for now—a space where neither of them had to pretend.
created_at
"2026-02-17T02:45:23.266672+00:00"
2/17/2026, 2:45:23 AM
model
"openai/gpt-4.1-2025-04-14"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
787
moderation_latency
(null)
generation_time
32463
tokens_prompt
808
tokens_completion
2265
native_tokens_prompt
754
native_tokens_completion
1950
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.017108
router
(null)
provider_responses
0
id
"resp_009a448d61abd7dd016993d621d3108194b089a5ea968a149e"
status
200
is_byok
false
latency
125
endpoint_id
"c235abe8-11cc-42d3-95ad-72f4d198287a"
provider_name
"OpenAI"
model_permaslug
"openai/gpt-4.1-2025-04-14"
api_type
"completions"
id
"gen-1771296289-ItC19u2zOY3WwSsRk88D"
upstream_id
"resp_009a448d61abd7dd016993d621d3108194b089a5ea968a149e"
total_cost
0.017108
cache_discount
(null)
upstream_inference_cost
0
provider_name
"OpenAI"
Evaluation details
Result
Evaluator
Details
Meta Data
66.6667%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
15
adverbTagCount
3
adverbTags
0
"Lucien said, each consonant so precise it could slice open a lie [so]"
1
"he said quietly, He lifted her hand, thumb tracing the crescent scar on her wrist [quietly]"
2
"Lucien whispered, close enough now that the room seemed to fold inward around just the space between them [close enough just]"
65.8703%
AI-ism adverb frequency
Target: <1% AI-ism adverbs (57 tracked)
wordCount
1465
totalAiIsmAdverbs
5
found
0
adverb
"gently"
count
1
1
adverb
"quickly"
count
1
2
adverb
"really"
count
2
3
adverb
"truly"
count
1
highlights
0
"gently"
1
"quickly"
2
"really"
3
"truly"
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)
65.8703%
AI-ism word frequency
Target: <1% AI-ism words (140 tracked)
wordCount
1465
totalAiIsms
5
found
0
word
"sanctuary"
count
1
1
word
"flickered"
count
1
2
word
"velvet"
count
1
3
word
"unreadable"
count
1
4
word
"echoed"
count
1
highlights
0
"sanctuary"
1
"flickered"
2
"velvet"
3
"unreadable"
4
"echoed"
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
95
matches
(empty)
100.0000%
Filter word density
Target: ≤12% sentences with filter/hedge words
filterCount
1
hedgeCount
3
narrationSentences
95
filterMatches
0
"feel"
hedgeMatches
0
"seemed to"
100.0000%
Overuse of "that" (subordinate clause padding)
Target: ≤10% sentences with "that" clauses
thatCount
0
totalSentences
114
matches
(empty)
100.0000%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
38
mean
37.82
std
23.07
cv
0.61
sampleLengths
0
86
1
26
2
38
3
56
4
14
5
47
6
82
7
27
8
63
9
29
10
74
11
9
12
15
13
95
14
32
15
27
16
20
17
45
18
15
19
36
20
22
21
15
22
21
23
36
24
63
25
15
26
10
27
43
28
84
29
25
30
22
31
28
32
52
33
43
34
28
35
8
36
50
37
36
100.0000%
Passive voice overuse
Target: ≤5% passive sentences
passiveCount
0
totalSentences
95
matches
(empty)
100.0000%
Past progressive (was/were + -ing) overuse
Target: ≤10% past progressive verbs
pastProgressiveCount
1
totalVerbs
206
matches
0
"was coughing"
88.0000%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1146
adjectiveStacks
2
stackExamples
0
"nearest book-piled table,"
1
"close, book-thick air"
adverbCount
40
adverbRatio
0.034904013961605584
lyAdverbCount
16
lyAdverbRatio
0.013961605584642234
100.0000%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
114
echoCount
0
echoWords
(empty)
100.0000%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
114
mean
12.61
std
8.41
cv
0.668
sampleLengths
0
28
1
16
2
30
3
12
4
7
5
12
6
5
7
2
8
4
9
20
10
14
11
21
12
12
13
16
14
7
15
14
16
21
17
11
18
12
19
3
20
17
21
26
22
11
23
10
24
15
25
3
26
15
27
12
28
15
29
16
30
17
31
11
32
4
33
22
34
7
35
28
36
13
37
33
38
5
39
4
40
8
41
7
42
1
43
9
44
8
45
33
46
31
47
5
48
8
49
6
55.2632%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
2
diversityRatio
0.34210526315789475
totalSentences
114
uniqueOpeners
39
0.0000%
Dialogue tag variety (said vs. fancy)
Target: ≤30% fancy dialogue tags
totalTags
15
fancyCount
11
fancyTags
0
"she muttered (mutter)"
1
"Lucien said, each consonant so precise it could slice open a lie (say, slice open)"
2
"she said, colder than she meant (say, mean)"
3
"he said, French accent blurring the edges of his words (say, blur)"
4
"he admitted (admit)"
5
"he said quietly, He lifted her hand, thumb tracing the crescent scar on her wrist (say quietly, lift trace)"
6
"she breathed (breathe)"
7
"he admitted (admit)"
8
"she echoed (echo)"
9
"Lucien whispered, close enough now that the room seemed to fold inward around just the space between them (whisper, seem fold)"
10
"she whispered (whisper)"
84.8041%