NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-17-01KHMQMV1HBRW3K7YHFCPEVVWA
Run Details
Model:
GPT-4.1
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
23.7s
Cost:
$0.016012
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 at the door wasn’t loud—a measured, insistent rhythm that threaded through the muffled hum of Brick Lane after midnight. Aurora froze where she stood in Eva’s postage-stamp kitchen, a chipped mug of chamomile suspended halfway to her lips. Ptolemy, all green eyes and twitching whiskers, appeared in the archway, tail crooked questioningly. Her mind cartwheeled through possibilities: Eva, gone for a pharmacy run and maybe locked out. The upstairs neighbor, finally fed up with the state of their underfloor soundproofing. Or something sharper, darker, that
fluttered
in the air like live current. Rory set the mug down, wiped her hands on the hem of her T-shirt. Her heart was already stuttering. People don’t knock at this hour unless they’re desperate—or dangerous. She padded to the door, careful not to disturb the scatter of open books or trip over a bundle of manuscripts Eva had left behind. Three deadbolts: she unfastened all of them with ritual care, pausing on the last. A breath. Then she pulled it open. Lucien Moreau stood on the narrow landing, backlit by the jaundiced glow of the stairwell, umbrella tucked, hatless, shoulders squared in a tailored charcoal suit that did nothing to disguise the coil of tension running through his body. No one else wore suits at this hour, not around here. The air smelled faintly of rain—maybe it had just started. She couldn’t look directly at his eyes. Not at first. They’d always unmoored her: one amber, one obsidian, set in an expression schooled to indifference. Rory leaned one stiff shoulder against the doorframe, matching his posture, arms folded, blocking the threshold. “You’re supposed to call first.” A ghost of a smile
flickered
at his lips, then vanished. “I could have, but we both know you wouldn’t have answered. Besides” —he glanced past her, taking in the sea of books and the cat, who now leapt delicately onto the windowsill— “it’s a matter best handled in person.” “Of course it is.” She kept her tone flat, eyes unblinking. The last time she’d seen him was three months ago, in the heart of winter, her breath frosting between them in a Soho alley. Then it had been shouting, old hurts tearing loose, things she couldn’t take back even as she said them. He’d left first. She’d thrown his umbrella after him and regretted it instantly. Now he was here, looking impossibly composed. Underneath the polish, she read exhaustion—a paleness at his temples, a tremor in the hand resting on his ivory-handled cane. Another splinter driving in: concern, unwelcome, lodged just under her ribcage. She didn’t move. “Eva isn’t home. And before you try—no, she didn’t leave your dossier, or your contacts list, or that bloody silver key here.” He inclined his head, a silent acknowledgment. “I’m not here for Eva.” His voice—
carefully
modulated, with that soft drag of Marseille in it—curled around her like smoke. “Then what?” Her voice was sharp enough to slice. The pause between them went brittle. In the stillness, the distant hiss of tires on wet stone, the whir of the curry house’s venting system below. Lucien’s gaze dropped to her hands—her left wrist, exposed, crescent scar pale as moonlight. Rory felt her face flush. She steadied herself, fingers drumming against her bicep. “Well?” He waited a beat longer, then did something unexpected. He reached up, as if to press fingertips to his own forehead, then—changed course, fixed the knot of his tie instead. “I need your help, Aurora.” He’d slipped into using her full name. Not Rory, never Rory when it was serious. It triggered something old and battered between her lungs. “You’ve got people for that,” she said. The sneer felt false even to her own ears. “Slick in from the shadows, tip your hat, get what you need. Why come here?” His smile came raw this time. “There are certain talents I can’t buy, and certain trust I can’t outsource.” He appraised her, gaze lingering on the scar, and she realized he hadn’t moved—didn’t even
seem to
breathe. “May I come in?” Rory stared hard at the old parquet, resisting the urge to shiver. Maybe she should slam the door. Maybe she should tell him to take his secrets and his broken promises and vanish. But she didn’t. She stepped back, just far enough to clear the jamb. “Don’t touch the ancient Greek translations on the kitchen counter,” she said. “Eva will have my head.” Lucien entered, moving with the restrained grace of a predator in a cage—not limping, but sparing the leg, cane always an extension of himself. He paused, studying the bent reading lamp, the balled-up jumper tossed over the radiator, Ptolemy’s inscrutable stare. He set his umbrella and cane against the wall by the door, gloves tucked inside his coat. In the closer light, the lines around his eyes were starker. “You’re alone.” She bristled, chin tilted. “Should I not be?” He said nothing for a moment, only traced her with that odd, two-tone gaze. “No, it’s just—” He bit the sentence off and exhaled. “Merde. This is harder than I’d imagined.” A
flicker
of real concern. She wanted to rage against it, shove him back outside with his diplomacy and his impossible gentleness—she wanted to let it in, too. “Lucien,” she said quietly, “just say it.” He looked down, lips twisting. “I’d rather not entangle you, but I haven’t another choice. There’s a package arriving tomorrow morning. There are…people who would like me dead before I take possession. I trust you to be there. You’re smart enough not to get killed.” A bitter taste shot up behind her teeth. “Flattery after three months of radio silence?” The heavy silence expanded, pressing in. Then, quietly: “I never meant for things to end like that.” Lucien’s voice didn’t waver, but something in it unraveled. “I tried to keep you clear of all this. Of me.” He looked up. “But I missed you, Aurora. That’s the truth of it. I miss you even now, standing here, ten feet away.” She felt it then, the old ache—prickling through her sternum, where grief lived beside something mercifully unnamed. “Missing me is easy. Staying is harder.” He laughed, once—soundless, humorless. “You forget, I’m
very
good at hard things.” She
started to
turn away, fighting the pull of him, the urge to step into those arms, to pick at the scar between them with apologies and what-could-have-beens. “Tea?” she said, grasping for an ordinary gesture. “I don’t have brandy, unless you count the dregs of Eva’s bootleg bottle.” He watched her, wary hope
flicker
ing. “Tea is perfect.” She busied herself with the kettle, fingers seeking something to do. Ptolemy wound himself around her ankles, as if aware of the tension thickening the room. Rory kept her back to Lucien, pouring boiling water over old leaves, watching the swirl of steam. Behind her, his
footsteps
creaked closer—then stopped just shy of intimacy. She could feel him there, as if he’d reached out and cupped the air between them. “Was it all terrible, Rory? Us?” She clutched the mug. Her throat wouldn’t work right. “No. It was never that simple.” The clock ticked; outside, rain bled down the glass, scattering neon reflections. She brought him his tea, held it out in both hands. Their fingers brushed—deliberate, not accidental. She looked up finally, into the mismatched eyes that had been her undoing. For a second, he did nothing. Then Lucien closed both hands over hers, tea growing cold between them, and the truth pressed out of her in a whisper. “I missed you too.” He shook, just a little, and she
saw that neither
of them
were barricaded
anymore. The books, the cat, the wet city night—all faded to the thrum that was only them, suspended in the half-light of Eva’s overcrowded flat, longing
unraveling
slowly
between their hands.
created_at
"2026-02-17T02:43:01.415612+00:00"
2/17/2026, 2:43:01 AM
model
"openai/gpt-4.1-2025-04-14"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
327
moderation_latency
(null)
generation_time
23583
tokens_prompt
808
tokens_completion
2094
native_tokens_prompt
754
native_tokens_completion
1813
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.016012
router
(null)
provider_responses
0
id
"resp_03fa6fda13a35650016993d59ccaf48195a4d2e1723c2e587f"
status
200
is_byok
false
latency
119
endpoint_id
"c235abe8-11cc-42d3-95ad-72f4d198287a"
provider_name
"OpenAI"
model_permaslug
"openai/gpt-4.1-2025-04-14"
api_type
"completions"
id
"gen-1771296156-Ot3MvFqZTzf3PvW4DVLm"
upstream_id
"resp_03fa6fda13a35650016993d59ccaf48195a4d2e1723c2e587f"
total_cost
0.016012
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
4
adverbTagCount
1
adverbTags
0
"she said quietly [quietly]"
77.4606%
AI-ism adverb frequency
Target: <1% AI-ism adverbs (57 tracked)
wordCount
1331
totalAiIsmAdverbs
3
found
0
adverb
"carefully"
count
1
1
adverb
"slowly"
count
1
2
adverb
"very"
count
1
highlights
0
"carefully"
1
"slowly"
2
"very"
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)
62.4343%
AI-ism word frequency
Target: <1% AI-ism words (140 tracked)
wordCount
1331
totalAiIsms
5
found
0
word
"flickered"
count
1
1
word
"flicker"
count
1
2
word
"fluttered"
count
1
3
word
"footsteps"
count
1
4
word
"unraveling"
count
1
highlights
0
"flickered"
1
"flicker"
2
"fluttered"
3
"footsteps"
4
"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
89
matches
(empty)
100.0000%
Filter word density
Target: ≤12% sentences with filter/hedge words
filterCount
0
hedgeCount
2
narrationSentences
89
filterMatches
(empty)
hedgeMatches
0
"seem to"
1
"started to"
100.0000%
Overuse of "that" (subordinate clause padding)
Target: ≤10% sentences with "that" clauses
thatCount
1
totalSentences
109
matches
0
"saw that neither"
100.0000%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
39
mean
33.49
std
18.35
cv
0.548
sampleLengths
0
54
1
69
2
46
3
84
4
21
5
50
6
67
7
38
8
25
9
27
10
9
11
40
12
14
13
35
14
24
15
31
16
41
17
46
18
17
19
41
20
30
21
8
22
31
23
35
24
45
25
15
26
60
27
24
28
12
29
49
30
9
31
43
32
11
33
22
34
15
35
41
36
28
37
4
38
45
100.0000%
Passive voice overuse
Target: ≤5% passive sentences
passiveCount
1
totalSentences
89
matches
0
"were barricaded"
100.0000%
Past progressive (was/were + -ing) overuse
Target: ≤10% past progressive verbs
pastProgressiveCount
0
totalVerbs
197
matches
(empty)
94.5519%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1060
adjectiveStacks
0
stackExamples
(empty)
adverbCount
49
adverbRatio
0.04622641509433962
lyAdverbCount
15
lyAdverbRatio
0.014150943396226415
100.0000%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
109
echoCount
0
echoWords
(empty)
100.0000%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
109
mean
11.98
std
7.99
cv
0.667
sampleLengths
0
21
1
19
2
14
3
15
4
13
5
12
6
14
7
5
8
10
9
25
10
14
11
2
12
5
13
38
14
11
15
10
16
7
17
3
18
15
19
16
20
5
21
11
22
39
23
11
24
24
25
19
26
3
27
10
28
7
29
20
30
11
31
3
32
22
33
7
34
20
35
9
36
6
37
20
38
14
39
5
40
8
41
1
42
9
43
21
44
5
45
7
46
8
47
9
48
7
49
9
61.4679%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
3
diversityRatio
0.3853211009174312
totalSentences
109
uniqueOpeners
42
100.0000%
Dialogue tag variety (said vs. fancy)
Target: ≤30% fancy dialogue tags
totalTags
4
fancyCount
1
fancyTags
0
"she said quietly (say quietly)"
90.9362%