"2026-02-16T01:57:14.565302+00:00"2/16/2026, 1:57:14 AM
model
"mistralai/mistral-small-creative-20251216"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
270
moderation_latency
(null)
generation_time
8480
tokens_prompt
7819
tokens_completion
1610
native_tokens_prompt
7791
native_tokens_completion
1650
native_tokens_completion_images
(null)
native_tokens_reasoning
0
native_tokens_cached
7744
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
"stop"
usage
0.0012741
router
(null)
provider_responses
0
id
"3a99576ae76d4103a0bcf3e93fac523a"
status
200
is_byok
false
latency
270
endpoint_id
"0118a65e-79f9-48b0-924e-38c4a41378e1"
provider_name
"Mistral"
model_permaslug
"mistralai/mistral-small-creative-20251216"
api_type
"completions"
id
"gen-1771207025-JekY9VLEQQBeEf1pGVAi"
upstream_id
"3a99576ae76d4103a0bcf3e93fac523a"
total_cost
0.0012741
cache_discount
(null)
upstream_inference_cost
0
provider_name
"Mistral"
Evaluation details
Result
Evaluator
Details
Meta Data
41.6667%
Accuracy (recall)
Matched: 17/30, FP: 9
parsedCount
26
matched
17
total
30
falsePositives
9
expectedDetails
0
expected
entry
"861"
detail
"parkLocation"
summary
"The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park."
status
"matched"
matchedBy
entry
"861"
detail
"parkLocation"
explanation
"The text says the Fae Grove is in Hyde Park, but the codex states it is in Richmond Park."
paragraph
1
substring
"The Fae Grove in Hyde Park"
location
extractedText
"The Fae Grove in Hyde Park"
inBounds
true
expectedText
"The Fae Grove in Hyde Park"
locationAccurate
true
1
expected
entry
"861"
detail
"standingStones"
summary
"The grove has oak standing stones per codex, but the passage says elm."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"861\""
2
expected
entry
"4424"
detail
"eyeColor"
summary
"Isolde has pale lavender eyes per codex, but the passage says pale blue eyes."
status
"matched"
matchedBy
entry
"4424"
detail
"eyeColor"
explanation
"The text says Isolde's eyes are pale blue, but the codex states they are pale lavender."
paragraph
1
substring
"pale blue eyes"
location
extractedText
"pale blue eyes"
inBounds
true
expectedText
"Her pale blue eyes, unblinking"
locationAccurate
true
3
expected
entry
"4424"
detail
"footprints"
summary
"Isolde leaves no footprints per codex, but the passage says she leaves clear prints."
status
"matched"
matchedBy
entry
"4424"
detail
"footprints"
explanation
"The text says Isolde leaves clear footprints, but the codex states she leaves no footprints when she walks."
paragraph
1
substring
"bare feet leaving clear prints in the soft earth"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"her bare feet leaving clear prints in the soft earth"
locationAccurate
false
4
expected
entry
"2006"
detail
"temperature"
summary
"The Fae-Forged Blade is always cold per codex, but the passage says warm."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"2006\""
5
expected
entry
"4414"
detail
"glasses"
summary
"Eva wears round glasses per codex, but the passage says square glasses."
status
"matched"
matchedBy
entry
"4414"
detail
"glasses"
explanation
"The text says Eva wears square glasses, but the codex states she wears round glasses."
paragraph
2
substring
"square glasses"
location
extractedText
"square glasses"
inBounds
true
expectedText
"Her square glasses kept fogging"
locationAccurate
true
6
expected
entry
"2005"
detail
"containerColor"
summary
"Dream Dust is stored in cobalt-blue vials per codex, but Isolde says red glass vials."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"2005\""
7
expected
entry
"2005"
detail
"sealMaterial"
summary
"Dream Dust vials are sealed with black wax per codex, but Isolde says white wax."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"2005\""
8
expected
entry
"6003"
detail
"master"
summary
"The Somnian Cult serves Prince Asmodeus per codex, but Isolde says Prince Lilith."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"6003\""
9
expected
entry
"4422"
detail
"eyeColor"
summary
"Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes."
status
"matched"
matchedBy
entry
"4422"
detail
"eyeColor"
explanation
"The text says Father Cormac's eyes are dark brown, but the codex states they are pale blue."
paragraph
5
substring
"dark brown eyes"
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"his dark brown eyes troubled"
locationAccurate
false
10
expected
entry
"4422"
detail
"rosary"
summary
"Cormac carries a rowan wood rosary per codex, but the passage says cedar."
status
"matched"
matchedBy
entry
"4422"
detail
"rosary"
explanation
"The text says Father Cormac's rosary is made of cedar, but the codex states it is made of rowan wood."
paragraph
5
substring
"gripped his cedar rosary beads tightly"
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"his cedar rosary beads"
locationAccurate
false
11
expected
entry
"7002"
detail
"signedYear"
summary
"The Covenant of Separation was signed in 1215 per codex, but Cormac says 1066."
status
"matched"
matchedBy
entry
"7002"
detail
"signedYear"
explanation
"The text says the Covenant of Separation was signed in 1066, but the codex states it was signed in 1215."
paragraph
5
substring
"the old treaty from 1066"
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"the old treaty from 1066"
locationAccurate
false
12
expected
entry
"6004"
detail
"headquarters"
summary
"The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"6004\""
13
expected
entry
"4415"
detail
"cane"
summary
"Lucien carries an ivory-handled cane per codex, but the passage says mahogany."
status
"matched"
matchedBy
entry
"4415"
detail
"cane"
explanation
"The text says Lucien's cane is mahogany, but the codex states it is ivory-handled."
paragraph
4
substring
"leaning on his mahogany cane"
location
extractedText
"[not found in paragraph 4]"
inBounds
true
expectedText
"leaning on his mahogany cane"
locationAccurate
false
14
expected
entry
"4415"
detail
"eyeColor"
summary
"Lucien has heterochromatic eyes (one amber, one black), but the passage says both amber."
status
"matched"
matchedBy
entry
"4415"
detail
"eyeColor"
explanation
"The text says Lucien has both eyes amber, but the codex states his eyes are heterochromatic (one amber, one black)."
paragraph
4
substring
"Both his amber eyes"
location
extractedText
"[not found in paragraph 4]"
inBounds
true
expectedText
"Both his amber eyes were fixed"
locationAccurate
false
15
expected
entry
"4421"
detail
"tattoo"
summary
"Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm."
status
"matched"
matchedBy
entry
"4421"
detail
"tattoo"
explanation
"The text says Yasmin's tattoo is on her **right** arm, but the codex states it is on her **left** arm."
paragraph
6
substring
"flame serpent tattoo on her right arm"
location
extractedText
"flame serpent tattoo on her right arm"
inBounds
true
expectedText
"tattoo on her right arm"
locationAccurate
true
16
expected
entry
"4423"
detail
"tattoo"
summary
"Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest."
status
"matched"
matchedBy
entry
"4423"
detail
"tattoo"
explanation
"The text says Wei-Lin's dragon tattoo is on his chest, but the codex states it covers his **entire back**."
paragraph
7
substring
"edge of the dragon tattoo on his chest"
location
extractedText
"edge of the dragon tattoo on his chest"
inBounds
true
expectedText
"the dragon tattoo on his chest"
locationAccurate
true
17
expected
entry
"2006"
detail
"material"
summary
"Fae-Forged Blades are moonsilver per codex, but Wei-Lin says bronze."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"2006\""
18
expected
entry
"856"
detail
"currentLocation"
summary
"The Veil Market is under Camden per codex, but Wei-Lin says Shoreditch."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"856\""
19
expected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per codex, but the passage says natural black hair."
status
"matched"
matchedBy
entry
"4420"
detail
"hair"
explanation
"The text says Kai's natural hair is black, but the codex states his natural hair is dark brown (he dyes it electric-blue)."
paragraph
8
substring
"natural black hair falling into his face"
location
extractedText
"natural black hair falling into his face"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
true
20
expected
entry
"6006"
detail
"logo"
summary
"Blackthorn Security's logo is a thorned branch inside a shield per codex, but Kai says a sword inside a circle."
status
"matched"
matchedBy
entry
"6006"
detail
"logo"
explanation
"The text describes Blackthorn Security's logo as a sword inside a circle, but the codex states it is a thorned branch inside a shield."
paragraph
8
substring
"their logo — the sword inside a circle"
location
extractedText
"their logo — the sword inside a circle"
inBounds
true
expectedText
"the sword inside a circle"
locationAccurate
true
21
expected
entry
"4419"
detail
"walkingStick"
summary
"Maggie carries a blackthorn stick per codex, but the passage says oak."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"4419\""
22
expected
entry
"4419"
detail
"eyeColor"
summary
"Maggie has grey eyes per codex, but the passage says green."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"4419\""
23
expected
entry
"6001"
detail
"foundingYear"
summary
"The Wardens were founded in 1215 per codex, but Maggie says 1066."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"6001\""
24
expected
entry
"4417"
detail
"scar"
summary
"Tomás has a scar on his left forearm per codex, but the passage says right forearm."
status
"matched"
matchedBy
entry
"4417"
detail
"scar"
explanation
"The text says Tomás's scar is on his **right** forearm, but the codex states it is on his **left** forearm."
paragraph
10
substring
"scarred right forearm"
location
extractedText
"scarred right forearm"
inBounds
true
expectedText
"His scarred right forearm"
locationAccurate
true
25
expected
entry
"4417"
detail
"birthplace"
summary
"Tomás was born in Seville per codex, but the passage implies Madrid accent."
status
"matched"
matchedBy
entry
"4417"
detail
"birthplace"
explanation
"The text implies Tomás is from Madrid (due to his accent), but the codex states he was born in Seville."
paragraph
10
substring
"Madrid accent"
location
extractedText
"Madrid accent"
inBounds
true
expectedText
"His Madrid accent"
locationAccurate
true
26
expected
entry
"4418"
detail
"eyeColor"
summary
"Nyx has violet eyes per codex, but the passage says blue."
status
"matched"
matchedBy
entry
"4418"
detail
"eyeColor"
explanation
"The text says Nyx's eyes are glowing blue, but the codex states they are faintly glowing violet."
paragraph
11
substring
"glowing blue eyes"
location
extractedText
"glowing blue eyes"
inBounds
true
expectedText
"their glowing blue eyes"
locationAccurate
true
27
expected
entry
"2001"
detail
"chainMaterial"
summary
"The Heartstone Pendant has a silver chain per codex, but the passage says golden chain."
status
"matched"
matchedBy
entry
"2001"
detail
"chainMaterial"
explanation
"The text says the Heartstone Pendant's chain is golden, but the codex states it is silver."
paragraph
13
substring
"golden chain tangled in her fingers"
location
extractedText
"[not found in paragraph 13]"
inBounds
true
expectedText
"the golden chain tangled in her fingers"
locationAccurate
false
28
expected
entry
"2001"
detail
"origin"
summary
"The Heartstone Pendant was forged in Dymas per codex, but Isolde says it was forged in Avaros."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"2001\""
29
expected
entry
"855"
detail
"ruler"
summary
"Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there."
status
"missed"
nearMiss
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
reason
"entry mismatch: got \"4414\", expected \"855\""
falsePositiveDetails
0
parsed
entry
"4412"
detail
"hair"
explanation
"The text implies Aurora's hair is loose (since the blade is strapped at her hip), but the codex states her hair is straight shoulder-length black (no mention of being tied back)."
paragraph
2
substring
"strapped it there that morning, its familiar warmth a comfort against the chill"
status
"false_positive"
location
extractedText
"strapped it there that morning, its familiar warmth a comfort against the chill"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
false
closestExpected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per codex, but the passage says natural black hair."
reason
"entry mismatch: got \"4412\", expected \"4420\""
1
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
status
"false_positive"
location
extractedText
"her curly red hair escaping from under a wool hat"
inBounds
true
expectedText
"The Fae Grove in Hyde Park"
locationAccurate
false
closestExpected
entry
"861"
detail
"parkLocation"
summary
"The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park."
reason
"entry mismatch: got \"4414\", expected \"861\""
2
parsed
entry
"4422"
detail
"hair"
explanation
"The text says Father Cormac's hair is ginger, which is correct, but the codex specifies his hair is **thinning ginger**, not just ginger."
paragraph
5
substring
"thinning ginger hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"his dark brown eyes troubled"
locationAccurate
false
closestExpected
entry
"4422"
detail
"eyeColor"
summary
"Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes."
"The text implies Lucien's father is still alive and active in Hel, but the codex states Lucien's father is a demon from Avaros (no mention of his current status or involvement in the Crimson Court)."
paragraph
5
substring
"my father — he says the Crimson Court's base of operations has shifted from Dymas to Irath"
status
"false_positive"
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"leaning on his mahogany cane"
locationAccurate
false
closestExpected
entry
"4415"
detail
"cane"
summary
"Lucien carries an ivory-handled cane per codex, but the passage says mahogany."
"The text says Rory's hair is black, which is correct, but the codex specifies it is **straight shoulder-length black** (no mention of it being loose or flowing in this context)."
paragraph
13
substring
"her black hair flowing"
status
"false_positive"
location
extractedText
"[not found in paragraph 13]"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
false
closestExpected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per codex, but the passage says natural black hair."
reason
"entry mismatch: got \"4412\", expected \"4420\""
5
parsed
entry
"2001"
detail
"gemstoneColor"
explanation
"The text says the Heartstone Pendant's gemstone is crimson, which is correct, but the codex specifies it is **deep crimson** (a more precise shade)."
paragraph
13
substring
"the crimson stone glowing brighter"
status
"false_positive"
location
extractedText
"[not found in paragraph 13]"
inBounds
true
expectedText
"the golden chain tangled in her fingers"
locationAccurate
false
closestExpected
entry
"2001"
detail
"chainMaterial"
summary
"The Heartstone Pendant has a silver chain per codex, but the passage says golden chain."
"The text says Silas rubbed his **left** knee, but the codex states he has a slight limp in his **left leg** (implying the injury is in the left leg, but the text does not contradict the limp itself). *No violation here—this is consistent.*"
paragraph
16
substring
"rubbed his left knee"
status
"false_positive"
location
extractedText
"[not found in paragraph 16]"
inBounds
true
expectedText
""
locationAccurate
false
7
parsed
entry
"4412"
detail
"pronouns"
explanation
"The text uses \"her\" to refer to Rory, which is correct, but the codex specifies her pronouns as **she/her** (no issue here—this is consistent). *No violation.*"
paragraph
17
substring
"her makeshift family"
status
"false_positive"
location
extractedText
"[not found in paragraph 17]"
inBounds
true
expectedText
""
locationAccurate
false
8
parsed
entry
"7003"
detail
"peakActivity"
explanation
"The text implies the rift activity is tied to the solstice, but the codex states rift points are **most active during the winter solstice** (not necessarily before it)."
paragraph
18
substring
"before the solstice"
status
"false_positive"
location
extractedText
"[not found in paragraph 18]"
inBounds
true
expectedText
""
locationAccurate
false
65.3846%
Precision
True positives: 17/26
totalReported
26
truePositives
17
reportedDetails
0
parsed
entry
"4424"
detail
"eyeColor"
explanation
"The text says Isolde's eyes are pale blue, but the codex states they are pale lavender."
paragraph
1
substring
"pale blue eyes"
status
"true_positive"
matchedExpected
entry
"4424"
detail
"eyeColor"
summary
"Isolde has pale lavender eyes per codex, but the passage says pale blue eyes."
location
extractedText
"pale blue eyes"
inBounds
true
expectedText
"Her pale blue eyes, unblinking"
locationAccurate
true
1
parsed
entry
"4424"
detail
"footprints"
explanation
"The text says Isolde leaves clear footprints, but the codex states she leaves no footprints when she walks."
paragraph
1
substring
"bare feet leaving clear prints in the soft earth"
status
"true_positive"
matchedExpected
entry
"4424"
detail
"footprints"
summary
"Isolde leaves no footprints per codex, but the passage says she leaves clear prints."
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"her bare feet leaving clear prints in the soft earth"
locationAccurate
false
2
parsed
entry
"4412"
detail
"hair"
explanation
"The text implies Aurora's hair is loose (since the blade is strapped at her hip), but the codex states her hair is straight shoulder-length black (no mention of being tied back)."
paragraph
2
substring
"strapped it there that morning, its familiar warmth a comfort against the chill"
status
"false_positive"
location
extractedText
"strapped it there that morning, its familiar warmth a comfort against the chill"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
false
closestExpected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per codex, but the passage says natural black hair."
reason
"entry mismatch: got \"4412\", expected \"4420\""
3
parsed
entry
"4414"
detail
"glasses"
explanation
"The text says Eva wears square glasses, but the codex states she wears round glasses."
paragraph
2
substring
"square glasses"
status
"true_positive"
matchedExpected
entry
"4414"
detail
"glasses"
summary
"Eva wears round glasses per codex, but the passage says square glasses."
location
extractedText
"square glasses"
inBounds
true
expectedText
"Her square glasses kept fogging"
locationAccurate
true
4
parsed
entry
"4414"
detail
""
explanation
"The text says Eva's hair is curly red, which is correct, but the codex specifies she has a nervous habit of tucking her hair behind her **left** ear, which is not mentioned here."
paragraph
2
substring
"her curly red hair escaping from under a wool hat"
status
"false_positive"
location
extractedText
"her curly red hair escaping from under a wool hat"
inBounds
true
expectedText
"The Fae Grove in Hyde Park"
locationAccurate
false
closestExpected
entry
"861"
detail
"parkLocation"
summary
"The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park."
reason
"entry mismatch: got \"4414\", expected \"861\""
5
parsed
entry
"4415"
detail
"eyeColor"
explanation
"The text says Lucien has both eyes amber, but the codex states his eyes are heterochromatic (one amber, one black)."
paragraph
4
substring
"Both his amber eyes"
status
"true_positive"
matchedExpected
entry
"4415"
detail
"eyeColor"
summary
"Lucien has heterochromatic eyes (one amber, one black), but the passage says both amber."
location
extractedText
"[not found in paragraph 4]"
inBounds
true
expectedText
"Both his amber eyes were fixed"
locationAccurate
false
6
parsed
entry
"4415"
detail
"cane"
explanation
"The text says Lucien's cane is mahogany, but the codex states it is ivory-handled."
paragraph
4
substring
"leaning on his mahogany cane"
status
"true_positive"
matchedExpected
entry
"4415"
detail
"cane"
summary
"Lucien carries an ivory-handled cane per codex, but the passage says mahogany."
location
extractedText
"[not found in paragraph 4]"
inBounds
true
expectedText
"leaning on his mahogany cane"
locationAccurate
false
7
parsed
entry
"4422"
detail
"eyeColor"
explanation
"The text says Father Cormac's eyes are dark brown, but the codex states they are pale blue."
paragraph
5
substring
"dark brown eyes"
status
"true_positive"
matchedExpected
entry
"4422"
detail
"eyeColor"
summary
"Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes."
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"his dark brown eyes troubled"
locationAccurate
false
8
parsed
entry
"4422"
detail
"hair"
explanation
"The text says Father Cormac's hair is ginger, which is correct, but the codex specifies his hair is **thinning ginger**, not just ginger."
paragraph
5
substring
"thinning ginger hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"his dark brown eyes troubled"
locationAccurate
false
closestExpected
entry
"4422"
detail
"eyeColor"
summary
"Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes."
"The text says Father Cormac's rosary is made of cedar, but the codex states it is made of rowan wood."
paragraph
5
substring
"gripped his cedar rosary beads tightly"
status
"true_positive"
matchedExpected
entry
"4422"
detail
"rosary"
summary
"Cormac carries a rowan wood rosary per codex, but the passage says cedar."
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"his cedar rosary beads"
locationAccurate
false
10
parsed
entry
"7002"
detail
"signedYear"
explanation
"The text says the Covenant of Separation was signed in 1066, but the codex states it was signed in 1215."
paragraph
5
substring
"the old treaty from 1066"
status
"true_positive"
matchedExpected
entry
"7002"
detail
"signedYear"
summary
"The Covenant of Separation was signed in 1215 per codex, but Cormac says 1066."
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"the old treaty from 1066"
locationAccurate
false
11
parsed
entry
"4415"
detail
"father"
explanation
"The text implies Lucien's father is still alive and active in Hel, but the codex states Lucien's father is a demon from Avaros (no mention of his current status or involvement in the Crimson Court)."
paragraph
5
substring
"my father — he says the Crimson Court's base of operations has shifted from Dymas to Irath"
status
"false_positive"
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"leaning on his mahogany cane"
locationAccurate
false
closestExpected
entry
"4415"
detail
"cane"
summary
"Lucien carries an ivory-handled cane per codex, but the passage says mahogany."
"The text says Yasmin's tattoo is on her **right** arm, but the codex states it is on her **left** arm."
paragraph
6
substring
"flame serpent tattoo on her right arm"
status
"true_positive"
matchedExpected
entry
"4421"
detail
"tattoo"
summary
"Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm."
location
extractedText
"flame serpent tattoo on her right arm"
inBounds
true
expectedText
"tattoo on her right arm"
locationAccurate
true
13
parsed
entry
"4423"
detail
"tattoo"
explanation
"The text says Wei-Lin's dragon tattoo is on his chest, but the codex states it covers his **entire back**."
paragraph
7
substring
"edge of the dragon tattoo on his chest"
status
"true_positive"
matchedExpected
entry
"4423"
detail
"tattoo"
summary
"Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest."
location
extractedText
"edge of the dragon tattoo on his chest"
inBounds
true
expectedText
"the dragon tattoo on his chest"
locationAccurate
true
14
parsed
entry
"4420"
detail
"hair"
explanation
"The text says Kai's natural hair is black, but the codex states his natural hair is dark brown (he dyes it electric-blue)."
paragraph
8
substring
"natural black hair falling into his face"
status
"true_positive"
matchedExpected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per codex, but the passage says natural black hair."
location
extractedText
"natural black hair falling into his face"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
true
15
parsed
entry
"6006"
detail
"logo"
explanation
"The text describes Blackthorn Security's logo as a sword inside a circle, but the codex states it is a thorned branch inside a shield."
paragraph
8
substring
"their logo — the sword inside a circle"
status
"true_positive"
matchedExpected
entry
"6006"
detail
"logo"
summary
"Blackthorn Security's logo is a thorned branch inside a shield per codex, but Kai says a sword inside a circle."
location
extractedText
"their logo — the sword inside a circle"
inBounds
true
expectedText
"the sword inside a circle"
locationAccurate
true
16
parsed
entry
"4417"
detail
"scar"
explanation
"The text says Tomás's scar is on his **right** forearm, but the codex states it is on his **left** forearm."
paragraph
10
substring
"scarred right forearm"
status
"true_positive"
matchedExpected
entry
"4417"
detail
"scar"
summary
"Tomás has a scar on his left forearm per codex, but the passage says right forearm."
location
extractedText
"scarred right forearm"
inBounds
true
expectedText
"His scarred right forearm"
locationAccurate
true
17
parsed
entry
"4417"
detail
"birthplace"
explanation
"The text implies Tomás is from Madrid (due to his accent), but the codex states he was born in Seville."
paragraph
10
substring
"Madrid accent"
status
"true_positive"
matchedExpected
entry
"4417"
detail
"birthplace"
summary
"Tomás was born in Seville per codex, but the passage implies Madrid accent."
location
extractedText
"Madrid accent"
inBounds
true
expectedText
"His Madrid accent"
locationAccurate
true
18
parsed
entry
"4418"
detail
"eyeColor"
explanation
"The text says Nyx's eyes are glowing blue, but the codex states they are faintly glowing violet."
paragraph
11
substring
"glowing blue eyes"
status
"true_positive"
matchedExpected
entry
"4418"
detail
"eyeColor"
summary
"Nyx has violet eyes per codex, but the passage says blue."
location
extractedText
"glowing blue eyes"
inBounds
true
expectedText
"their glowing blue eyes"
locationAccurate
true
19
parsed
entry
"4412"
detail
"hairColor"
explanation
"The text says Rory's hair is black, which is correct, but the codex specifies it is **straight shoulder-length black** (no mention of it being loose or flowing in this context)."
paragraph
13
substring
"her black hair flowing"
status
"false_positive"
location
extractedText
"[not found in paragraph 13]"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
false
closestExpected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per codex, but the passage says natural black hair."
reason
"entry mismatch: got \"4412\", expected \"4420\""
20
parsed
entry
"2001"
detail
"gemstoneColor"
explanation
"The text says the Heartstone Pendant's gemstone is crimson, which is correct, but the codex specifies it is **deep crimson** (a more precise shade)."
paragraph
13
substring
"the crimson stone glowing brighter"
status
"false_positive"
location
extractedText
"[not found in paragraph 13]"
inBounds
true
expectedText
"the golden chain tangled in her fingers"
locationAccurate
false
closestExpected
entry
"2001"
detail
"chainMaterial"
summary
"The Heartstone Pendant has a silver chain per codex, but the passage says golden chain."
"The text says the Heartstone Pendant's chain is golden, but the codex states it is silver."
paragraph
13
substring
"golden chain tangled in her fingers"
status
"true_positive"
matchedExpected
entry
"2001"
detail
"chainMaterial"
summary
"The Heartstone Pendant has a silver chain per codex, but the passage says golden chain."
location
extractedText
"[not found in paragraph 13]"
inBounds
true
expectedText
"the golden chain tangled in her fingers"
locationAccurate
false
22
parsed
entry
"4413"
detail
"limp"
explanation
"The text says Silas rubbed his **left** knee, but the codex states he has a slight limp in his **left leg** (implying the injury is in the left leg, but the text does not contradict the limp itself). *No violation here—this is consistent.*"
paragraph
16
substring
"rubbed his left knee"
status
"false_positive"
location
extractedText
"[not found in paragraph 16]"
inBounds
true
expectedText
""
locationAccurate
false
23
parsed
entry
"4412"
detail
"pronouns"
explanation
"The text uses \"her\" to refer to Rory, which is correct, but the codex specifies her pronouns as **she/her** (no issue here—this is consistent). *No violation.*"
paragraph
17
substring
"her makeshift family"
status
"false_positive"
location
extractedText
"[not found in paragraph 17]"
inBounds
true
expectedText
""
locationAccurate
false
24
parsed
entry
"7003"
detail
"peakActivity"
explanation
"The text implies the rift activity is tied to the solstice, but the codex states rift points are **most active during the winter solstice** (not necessarily before it)."
paragraph
18
substring
"before the solstice"
status
"false_positive"
location
extractedText
"[not found in paragraph 18]"
inBounds
true
expectedText
""
locationAccurate
false
25
parsed
entry
"861"
detail
"parkLocation"
explanation
"The text says the Fae Grove is in Hyde Park, but the codex states it is in Richmond Park."
paragraph
1
substring
"The Fae Grove in Hyde Park"
status
"true_positive"
matchedExpected
entry
"861"
detail
"parkLocation"
summary
"The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park."