NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-17-01KHMQQERB3XX5HNF5JASTDCHP
Run Details
Model:
o4 Mini High
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
51.0s
Cost:
$0.028126
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 door clicked open under her thumb. In the narrow threshold of her flat—perched above Silas’ bar, its spilled-beer tang drifting up through the floorboards—stood Lucien Moreau. His polished Oxfords scraped against the worn welcome mat, charcoal suit pressed to perfection, platinum-blond hair
gleaming
beneath the dim hallway light. Aurora’s heart hesitated, blood pounding so loudly she was certain he could hear it. One amber eye and one inky-black regarded her evenly, as though measuring every inch of her in a single, unhurried breath. She froze, the bag of takeout slipping from her grip, cardboard tumbling. A half-demon in human skin, yes, but first and always the man who’d vanished without a word. He’d left her with empty nights and questions that
throbbed
like her scarred wrist whenever she saw a shadow move too
quickly
. Lucien shifted the cane in his hand, ivory handle catching the light. “Aurora,” he said, voice low and smooth, riding a faint French lilt. “I need to talk to you.” Her throat seared. “You need to talk to me?” She picked the bag back up as if it might protect her, crushed under her unforgiving grip. “You need to talk? After disappearing for months?” A
flicker
passed across his face—regret, she thought, though she would never admit it out loud. He stepped forward half a pace, and the hallway felt smaller, charged. “I couldn’t risk dragging you into something… dangerous.” She pulled back, leaning against the doorframe. The scratch of wood against her slender shoulder, the hum of Silas’ bar below punctuating every heartbeat. “Dangerous? You vanished. No call, no message. Just… gone.” His
jaw clenched
; a single muscle jumped at the angle of his cheek. “I thought I was protecting you.” “Oh.” Her laugh tasted bitter. She remembered nights curled around her phone, waiting. “By leaving me with nothing but suspicion?” Lucien’s amber eye softened. “I’m sorry.” An apology, finally. Her pulse
fluttered
between anger and relief—two birds trapped in her chest. “Sorry doesn’t fix months of silence.” He cradled the cane’s handle in both hands, the blade hidden but never forgotten. “I know. I’ll spend the rest of my life trying to show you.” Her breath hitched at the promise in his voice. Years of careful distance fell away in a single moment, and she wondered how she’d
managed to
stand so tall when the threat of losing him felt as familiar as the small, crescent-shaped scar on her left wrist. She flexed her hand reflexively, skin pulling taut over the old indentation. He noticed. His gaze drifted to the glimpse of pale flesh where her sleeve had ridden up. “Your scar,” he said
softly
, “I never stopped thinking about it.” She snapped her sleeve down, exhaling too
sharply
. “Is that all you’ve been thinking about?” His black eye—sharp as a crow’s wing—haloed with a
flicker
of pain. “No.” He ran a hand through his hair, platinum strands falling loose at his temples. “I’ve made a mess of things. I’m here to clean it up. But first, may I come in?” Aurora’s fingers curled around the doorframe. The hallway light cast his sharp features in relief—high cheekbones, a sloping throat, and the faint sheen of tension in his skin. Behind him, the narrow corridor stretched empty, oblivious to their shared history. She wanted to slam the door, wanted to push him away, but every fiber of her wanted to know why he’d come back. “Fine,” she snapped, stepping aside. He entered with the grace of someone accustomed to
velvet
rooms and whispered confidences, though this living room
was lit
by a single lamp, its shade stained and soft. He removed his overcoat and draped it over the back of a battered armchair, revealing the crisp lines of his tailored jacket. The flat smelled of old wood and curry—remnants of a night when she had ordered too much takeout and forgotten to call someone she wished was here. Aurora guided him into the center of the room. Bookshelves sagged under law textbooks and thick volumes on criminal procedure—remnants of her abandoned pre-law dreams. A single box of takeout, long cold, sat on the coffee table. She motioned toward the couch, an invitation or a challenge she couldn’t decide. Lucien sank onto the edge of the cushion, the fabric sighing under his
weight
. He placed the cane between his knees. “You look… tired.” She crossed her arms. “I’m always tired. London, part-time shifts at the Golden Empress, babysitting Silas’s tipsy regulars when he’s slammed. You have no idea.” He studied her bright-blue eyes—so much fierceness in those eyes—and reached out, resting his fingertips over her forearm. The brush of his skin set her nerves alight. She jerked away, but he held his ground. “Please,” he said, voice rougher now. “Let me make it right.” She stared at his hand lingering in the air, the gentle curve of his fingers. She thought of the nights she’d thrown herself into work to forget the hollow ache of his absence, to drown it in spicy noodles and overtime. “How?” she asked, voice barely above a breath. He exhaled, as if shedding a
weight
she hadn’t known he carried. “I tracked you here because you’re in danger.” Her heart
lurched
. Danger. The word slithered down her spine. She swallowed, tasting sweat. “What kind of danger?” He rose, pacing toward the window overlooking the neon bar signs below. His silhouette stretched tall, the suit jacket hugging his shoulders. “My world… rubs against yours more than I thought. There are people hunting me, Aurora. I feared they’d trace me to you. I should have told you sooner, but I wasn’t sure you’d believe me.” She stepped forward, propelled by a mix of outrage and worry. “Why wouldn’t I believe you?” He turned, gaze sweeping the cramped room, the scattered books she’d used to barricade her past. “Because I wasn’t there.” He took a breath. “I’m half-demon. I thought keeping you in the dark would keep you safe. Instead, I left you alone.” Silence stretched between them. Music drifted up from the bar below, a Beatles cover sung off-key. Aurora’s breath slowed, her anger shifting into something rawer. “You chose to leave,” she whispered. He nodded, pain sharpened in his eyes. “I did. And I’m sorry.” She closed the distance, words tangling in her throat. He smelled of rain on cobblestones, old leather, and something elusive she recognized from the moment they met. She reached out, tracing the line of his jaw with a trembling finger. He leaned into the touch, tilting his head just so. His amber eye glowed
softly
in the half-light. “I missed you,” she admitted, voice catching. He dropped to one knee before her, cane sliding from sight. He pressed her hand against his cheek, thumb brushing the faint pulse at her wrist. “I missed you every day.” She stared down at him, heart pounding like a drum. All the walls she’d built around her heart shuddered. When he rose, he took her free hand, lifting it to his lips. His kiss was gentle, a promise and a plea. Her breath caught. The scar on her wrist pressed against his palm as he folded her fingers around his. She felt the cool ivory of his cane beneath her other hand, the barrier between them slipping away. “I don’t know if we can—” she began, voice tight. “But I do,” he interrupted, his voice all fervor. “I
know that I
belong here, now, with you. If you’ll let me.” She closed her eyes, leaning into the warmth of his suit jacket, the steady thrum of his heartbeat under her palm. The bar noise faded. The flat, with its clutter of books and cold noodles, felt like home. She lifted her other hand, brushing it over his cheek, noting the fine line of a scar she’d never noticed before. “Show me,” she whispered. He pressed his forehead to hers. “I will.” Outside, the neon glow of London blinked on. Inside, she let the door swing closed behind them, and for the first time in a long time, she believed in new beginnings.
created_at
"2026-02-17T02:44:53.892384+00:00"
2/17/2026, 2:44:53 AM
model
"openai/o4-mini-high-2025-04-16"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
9401
moderation_latency
(null)
generation_time
50892
tokens_prompt
808
tokens_completion
2803
native_tokens_prompt
753
native_tokens_completion
6204
native_tokens_completion_images
0
native_tokens_reasoning
4352
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.0281259
router
(null)
provider_responses
0
id
"resp_03a61d1e2a9b6fcc016993d5f28cb08197a17f63730e01860f"
status
200
is_byok
false
latency
162
endpoint_id
"60020533-2fb2-4aa1-9454-181029fd52de"
provider_name
"OpenAI"
model_permaslug
"openai/o4-mini-high-2025-04-16"
api_type
"completions"
id
"gen-1771296242-N7XE4aN7dh2pHJH0gz6N"
upstream_id
"resp_03a61d1e2a9b6fcc016993d5f28cb08197a17f63730e01860f"
total_cost
0.0281259
cache_discount
(null)
upstream_inference_cost
0
provider_name
"OpenAI"
Evaluation details
Result
Evaluator
Details
Meta Data
59.2593%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
9
adverbTagCount
2
adverbTags
0
"he said softly [softly]"
1
"she snapped, stepping aside [aside]"
70.8667%
AI-ism adverb frequency
Target: <1% AI-ism adverbs (57 tracked)
wordCount
1373
totalAiIsmAdverbs
4
found
0
adverb
"quickly"
count
1
1
adverb
"sharply"
count
1
2
adverb
"softly"
count
2
highlights
0
"quickly"
1
"sharply"
2
"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)
27.1668%
AI-ism word frequency
Target: <1% AI-ism words (140 tracked)
wordCount
1373
totalAiIsms
10
found
0
word
"lurched"
count
1
1
word
"throbbed"
count
1
2
word
"flicker"
count
2
3
word
"gleaming"
count
1
4
word
"fluttered"
count
1
5
word
"velvet"
count
1
6
word
"jaw clenched"
count
1
7
word
"weight"
count
2
highlights
0
"lurched"
1
"throbbed"
2
"flicker"
3
"gleaming"
4
"fluttered"
5
"velvet"
6
"jaw clenched"
7
"weight"
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
"jaw clenched"
100.0000%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
0
narrationSentences
94
matches
(empty)
100.0000%
Filter word density
Target: ≤12% sentences with filter/hedge words
filterCount
0
hedgeCount
1
narrationSentences
94
filterMatches
(empty)
hedgeMatches
0
"managed to"
100.0000%
Overuse of "that" (subordinate clause padding)
Target: ≤10% sentences with "that" clauses
thatCount
1
totalSentences
117
matches
0
"know that I"
100.0000%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
39
mean
34.67
std
20.96
cv
0.605
sampleLengths
0
84
1
51
2
30
3
34
4
36
5
33
6
19
7
20
8
6
9
21
10
27
11
59
12
28
13
15
14
45
15
63
16
5
17
78
18
50
19
24
20
25
21
46
22
49
23
20
24
18
25
57
26
16
27
42
28
31
29
12
30
58
31
7
32
31
33
78
34
10
35
22
36
63
37
8
38
31
100.0000%
Passive voice overuse
Target: ≤5% passive sentences
passiveCount
1
totalSentences
94
matches
0
"was lit"
100.0000%
Past progressive (was/were + -ing) overuse
Target: ≤10% past progressive verbs
pastProgressiveCount
0
totalVerbs
191
matches
(empty)
94.0000%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1115
adjectiveStacks
1
stackExamples
0
"small, crescent-shaped scar"
adverbCount
31
adverbRatio
0.02780269058295964
lyAdverbCount
9
lyAdverbRatio
0.008071748878923767
100.0000%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
117
echoCount
0
echoWords
(empty)
100.0000%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
117
mean
11.56
std
6.97
cv
0.603
sampleLengths
0
7
1
20
2
22
3
14
4
21
5
12
6
17
7
22
8
12
9
12
10
6
11
3
12
23
13
8
14
16
15
12
16
8
17
7
18
17
19
9
20
13
21
6
22
5
23
8
24
7
25
4
26
2
27
3
28
12
29
6
30
14
31
13
32
9
33
38
34
12
35
2
36
15
37
11
38
8
39
7
40
12
41
15
42
18
43
6
44
22
45
12
46
23
47
5
48
29
49
22
52.7066%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
5
diversityRatio
0.3418803418803419
totalSentences
117
uniqueOpeners
40
0.0000%
Dialogue tag variety (said vs. fancy)
Target: ≤30% fancy dialogue tags
totalTags
9
fancyCount
8
fancyTags
0
"he said, voice low and smooth, riding a faint French lilt (say, voice)"
1
"he said softly (say softly)"
2
"she snapped, stepping aside (snap, step aside)"
3
"he said, voice rougher now (say, voice)"
4
"she whispered (whisper)"
5
"she admitted, voice catching (admit, voice catching)"
6
"he interrupted, his voice all fervor (interrupt)"
7
"she whispered (whisper)"
82.5882%