NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-17-01KHMQHTP5K7SN5G8SN23CS4WC
Run Details
Model:
GPT-4.1
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
23.3s
Cost:
$0.017380
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
The knock was soft but insistent—two deliberate raps, spaced
perfectly
apart. Aurora Carter froze mid-pace, heart clutching high in her chest. On the battered table, Eva’s mug kept sending up patient curls of steam, unsipped. Rory’s own hands hovered, uncertain, as her head swung to the door. Three deadbolts, each one as reassuring as a bedtime story—nobody gets in unless you say. Unless you want. But tonight, the hollow scrape of knuckles through parted silence brought something else: an itch beneath her skin that was more memory than warning. She motioned Ptolemy off the armchair as she slipped into the perpetual shadow between kitchen and entry, the cat protesting with a tail flick. Bare feet on splinter-cool floorboards, palm to the second-story windowsill, Aurora drew herself up to her full five-six, out of habit. Another knock. That unhurried cadence. Her mouth went dry. She closed the distance, fingers brushing the scar on her left wrist. One look through the eyehole would confirm a voice she hadn’t heard in a year. Or maybe it wouldn’t, and all this charge in the air would dissipate and leave her
feel
ing stupid. The hall bulb illuminated slippery rain slanting across the outside stair. Nobody waited in the corridor—not a neighbor, not a courier in a windbreaker. She eyed the lowest bolt as if it could warn her, then unclasped it. Then the second, and finally, the ancient deadbolt at the top. She opened the door. Lucien Moreau stood just inside the sulfur glow. Platinum hair immaculate despite the East London drizzle. His tailored charcoal suit showed no sign he'd just braved an entire city of wet pavements and choked gutters—the old lesson Rory still hadn't mastered. His right hand held the familiar ivory-handled cane, fingers resting with the sort of infuriating stillness that suggested he’d never once misplaced his composure in his life. “Bonsoir, Aurora,” he said. She was still halfway behind the door. She pressed her shoulder to the frame as if bracing for wind. “Lucien. You’re… early for Armageddon, aren’t you?” She flinched inwardly—why always the joke, when it counted? His gaze, heterochromatic and steady, moved over her—amber and black, both sharp enough to skin a lie. “No apocalypse I’ve been notified of. Although I could make some calls,” he said, so quiet and dry she nearly missed the smile pressing at his mouth. She let the door hang wider, not quite an invitation. “Eva’s not here. She’s in Cambridge for the conference. You just missed her, two hours ago.” His eyes
flicked
past her, as if reading the shadowed little flat in three seconds: books mapped in constellations across every surface, cramped walls and yellow ceiling paint, two mugs cooling side by side. Maybe he noticed her shoes beside the radiator, the threadbare duffel under Eva’s foldout desk. He’d always
had that talent
—for seeing places as they
really
were, people too. “Then I suppose my timing is regrettable.” He stayed on the threshold, rain oozing from his umbrella. No trace of apology in his voice—he didn’t do apology, not when it counted, not when the wound to her pride still scraped raw in her memory. But he didn’t leave, either. Rory folded her arms, jaw tightening. “So why are you here? This isn’t your patch. I haven’t been near the markets, if that’s what you’re worried about.” His gaze locked on hers, infinitely patient. A slow, deep breath. “I came for you.” A pause—the
echo
of something almost shy, then smothered. “If that’s permitted.” She let her arms drop. “It’s not your style, Lucien. Turning up without warning.” He quirked one eyebrow, an elegant movement. “On the contrary, mon cœur. Spur-of-the-moment decisions are the privilege of people who do not fear surprises.” He inclined his head, considering her with a faint smile. “Or perhaps of people who’ve already lost what mattered.” That landed. Rory’s face went hot—anger, shame—and she looked away, scratching at the edge of her sleeve. She didn’t need another apology, couldn’t survive another polite evasion. All the things left unsaid between them bobbed to the surface: the night she walked out of his flat in Notting Hill, the shouting, the deliberate absence of calls. She took a step back. He took that as leave and closed his umbrella, sliding it into the old tin bin by the door. Ptolemy bounded out from beneath the table, pausing to sniff his shoes, tail whisking. Lucien regarded the cat with a suppressed smile—a breach in the armor. “Ptolemy hasn’t clawed anyone this week,” Rory said, using the cat’s name like a buffer. “Je prends le risque,” Lucien replied, eyes
glinting
. He stepped over the threshold. The ancient floorboards gave a mild protest beneath his
weight
. He removed his overcoat and hung it on the peg, moving as if he’d never forgotten how small this space was, how the back of Eva’s door needed a gentle nudge to catch. She wanted to say something devastating, like Do you need money? or Who’s covering you?—something to keep him at arm’s length. Instead, she heard herself say, “You could have called.” He took in the scatter of open books, old Latin and Sanskrit text, Eva’s looping notes. His lips
flickered
. “You’d have ignored it.” That stung. “Then why bother?” He set the cane down beside the door. “Because for once, I would rather risk humiliation than silence.” The walls, already close, pressed in tighter. In the golden kitchen wash, the mugs steamed faintly. He went to the table, long-fingered hands poised above the chair, but didn’t sit. “You look well, Rory.” She bristled, letting her hair fall like a shield across her cheek. “You don’t get to say that. You don’t know.” He lifted both hands, as if surrendering. “No. I don’t know.” A pause. “I want to, though.” There it was: unguarded. Lucien—never unguarded, not in languages, not in suits, not in the deals he struck. She stared at him, waiting for the clever deflection, the turn of phrase that would let her
feel
in control. It didn’t come. “You left,” she said, voice trembling despite herself. “One day you were there, and the next—you acted like we were a job. Like you could just delegate me to someone else. I had to find out from Eva that you’d gone back to Marseille.” He touched the spot above his heart, and for a moment, the gesture was almost credulous. “Do you want the truth? I was afraid.” She unfolded her arms,
fists clenched
. “Of what? Me?” “Of how I felt around you,” he said, and his tone was gentle, devastatingly so. “You see too much. I am not—" He trailed off, glancing at the closed blinds, the stuttering candle stub on Eva’s altar. "I am not easy. Not real, the way you want.” “That’s not your decision,” she said, quick and hard. His lips parted, speechless for a beat. “No. But I made it as if it was.” He laughed once, thin as wire. “Can you
forgive that? Or
have I spent my welcome entirely?” He let himself collapse into the nearest chair, elegant even in defeat. His hand drifted to the blade-studded cane once, unconsciously. Shadows swept the windows, glass breaking the thunder of traffic outside. Rory found herself standing behind the table, breathing shallow—somewhere between relic and rupture. Ptolemy leapt onto the table, padding a wary circle before curling boldly beside Lucien’s outstretched hand. Lucien stroked his fur, distracted. She gripped the other chair, steadying herself. “I don’t know yet,” she said. “About any of it.” He nodded, eyes searching hers—so earnest she half-wanted to throw a mug at his head, just to break the moment. But the words kept coming. “I’m not the same as I was last year, Lucien. And neither are you.” “Perhaps we rebuilt, each our own way,” he allowed. “You can’t just—walk back into my life like nothing happened.” He was nearly smiling. “I assure you, Rory, that was never my intent.” Outside, the rain lashed harder against the sash windows. Inside, the little room filled with something thick and electric, balanced between hope and reckoning. Rory reached out at last, touching the mug nearest her—Eva’s, not her own, lukewarm but solid to the touch. She slid it toward him. “If you want to try telling the truth,” she said, “start with why you stayed away so long.” He closed his hand around the mug, warming his fingers. For the first time, he looked unsure of the answer. But for once, he sat there—shoulders lowered, gaze unguarded—making no move toward the door. Between them, that silence hung, not as a threat, but as a tentative invitation.
created_at
"2026-02-17T02:41:21.623606+00:00"
2/17/2026, 2:41:21 AM
model
"openai/gpt-4.1-2025-04-14"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
325
moderation_latency
(null)
generation_time
23108
tokens_prompt
808
tokens_completion
2303
native_tokens_prompt
754
native_tokens_completion
1984
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.01738
router
(null)
provider_responses
0
id
"resp_0ff25c565267eba2016993d53a296c81968802a0d4cc7a28fd"
status
200
is_byok
false
latency
116
endpoint_id
"c235abe8-11cc-42d3-95ad-72f4d198287a"
provider_name
"OpenAI"
model_permaslug
"openai/gpt-4.1-2025-04-14"
api_type
"completions"
id
"gen-1771296058-FiNl0SjX0VplqUwmY8WY"
upstream_id
"resp_0ff25c565267eba2016993d53a296c81968802a0d4cc7a28fd"
total_cost
0.01738
cache_discount
(null)
upstream_inference_cost
0
provider_name
"OpenAI"
Evaluation details
Result
Evaluator
Details
Meta Data
50.0000%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
12
adverbTagCount
3
adverbTags
0
"he said, so quiet and dry she nearly missed the smile pressing at his mouth [so nearly]"
1
"Instead, she heard herself say, [Instead,]"
2
"he said, and his tone was gentle, devastatingly so [devastatingly so]"
86.4038%
AI-ism adverb frequency
Target: <1% AI-ism adverbs (57 tracked)
wordCount
1471
totalAiIsmAdverbs
2
found
0
adverb
"perfectly"
count
1
1
adverb
"really"
count
1
highlights
0
"perfectly"
1
"really"
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)
66.0095%
AI-ism word frequency
Target: <1% AI-ism words (140 tracked)
wordCount
1471
totalAiIsms
5
found
0
word
"flickered"
count
1
1
word
"flicked"
count
1
2
word
"glinting"
count
1
3
word
"weight"
count
1
4
word
"echo"
count
1
highlights
0
"flickered"
1
"flicked"
2
"glinting"
3
"weight"
4
"echo"
100.0000%
Cliche density
Target: ≤1 cliche(s) per 800-word window
totalCliches
1
maxInWindow
1
found
0
label
"jaw/fists clenched"
count
1
highlights
0
"fists clenched"
100.0000%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
0
narrationSentences
103
matches
(empty)
100.0000%
Filter word density
Target: ≤12% sentences with filter/hedge words
filterCount
1
hedgeCount
0
narrationSentences
103
filterMatches
0
"feel"
hedgeMatches
(empty)
100.0000%
Overuse of "that" (subordinate clause padding)
Target: ≤10% sentences with "that" clauses
thatCount
2
totalSentences
123
matches
0
"had that talent"
1
"forgive that? Or"
100.0000%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
46
mean
31.3
std
18.13
cv
0.579
sampleLengths
0
65
1
69
2
54
3
53
4
68
5
4
6
35
7
44
8
26
9
62
10
44
11
5
12
27
13
27
14
14
15
43
16
56
17
50
18
15
19
8
20
48
21
30
22
23
23
5
24
18
25
34
26
21
27
17
28
41
29
44
30
24
31
9
32
47
33
9
34
33
35
45
36
21
37
17
38
39
39
9
40
10
41
13
42
24
43
42
44
20
45
28
100.0000%
Passive voice overuse
Target: ≤5% passive sentences
passiveCount
0
totalSentences
103
matches
(empty)
100.0000%
Past progressive (was/were + -ing) overuse
Target: ≤10% past progressive verbs
pastProgressiveCount
0
totalVerbs
196
matches
(empty)
94.0000%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1147
adjectiveStacks
1
stackExamples
0
"familiar ivory-handled cane,"
adverbCount
45
adverbRatio
0.03923278116826504
lyAdverbCount
11
lyAdverbRatio
0.00959023539668701
100.0000%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
123
echoCount
0
echoWords
(empty)
100.0000%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
123
mean
11.71
std
7.18
cv
0.613
sampleLengths
0
11
1
10
2
14
3
12
4
15
5
3
6
24
7
24
8
21
9
2
10
3
11
4
12
12
13
15
14
18
15
11
16
13
17
14
18
11
19
4
20
8
21
8
22
25
23
27
24
4
25
7
26
12
27
16
28
17
29
27
30
10
31
16
32
34
33
15
34
13
35
17
36
27
37
5
38
6
39
21
40
7
41
4
42
13
43
3
44
5
45
9
46
7
47
27
48
9
49
2
61.2466%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
3
diversityRatio
0.3821138211382114
totalSentences
123
uniqueOpeners
47
8.3333%
Dialogue tag variety (said vs. fancy)
Target: ≤30% fancy dialogue tags
totalTags
12
fancyCount
8
fancyTags
0
"he said, so quiet and dry she nearly missed the smile pressing at his mouth (say, nearly miss press)"
1
"Rory said, using the cat’s name like a buffer (say, use like)"
2
"Lucien replied, eyes glinting (reply, glint)"
3
"Instead, she heard herself say, (heard herself say)"
4
"she said, voice trembling despite herself (say, voice)"
5
"he said, and his tone was gentle, devastatingly so (say, be)"
6
"laughed (laugh)"
7
"he allowed (allow)"
86.2349%