Daily Lab
Test a scoring parser.
Run a parser for Daily's scoring responses against 64 cases in Vercel Sandbox. Inspect the failure, then edit it.
Case studyPython · Tab indents. Press Esc, then Tab, to leave the editor.
The case suite
Ready to test · 64 cases
42 recorded · 22 fault-injected
Inspect cases
Recorded · 42real batches, replayed
- observed-2026-09-02-000: not run yet
- observed-2026-09-02-001: not run yet
- observed-2026-09-02-002: not run yet
- observed-2026-09-02-003: not run yet
- observed-2026-09-02-004: not run yet
- observed-2026-09-02-005: not run yet
- observed-2026-09-02-006: not run yet
- observed-2026-09-02-007: not run yet
- observed-2026-09-02-008: not run yet
- observed-2026-09-02-009: not run yet
- observed-2026-09-02-010: not run yet
- observed-2026-09-02-011: not run yet
- observed-2026-09-02-012: not run yet
- observed-2026-09-02-013: not run yet
- observed-2026-09-02-014: not run yet
- observed-2026-09-02-015: not run yet
- observed-2026-09-02-016: not run yet
- observed-2026-09-02-017: not run yet
- observed-2026-09-02-018: not run yet
- observed-2026-09-02-019: not run yet
- observed-2026-09-02-020: not run yet
- observed-2026-09-02-021: not run yet
- observed-2026-09-02-022: not run yet
- observed-2026-09-02-023: not run yet
- observed-2026-09-02-024: not run yet
- observed-2026-09-02-025: not run yet
- observed-2026-09-02-026: not run yet
- observed-2026-09-02-027: not run yet
- observed-2026-09-02-028: not run yet
- observed-2026-09-02-029: not run yet
- observed-2026-09-02-030: not run yet
- observed-2026-09-02-031: not run yet
- observed-2026-09-02-032: not run yet
- observed-2026-09-02-033: not run yet
- observed-2026-09-02-034: not run yet
- observed-2026-09-02-035: not run yet
- observed-2026-09-02-036: not run yet
- observed-2026-09-02-037: not run yet
- observed-2026-09-02-038: not run yet
- observed-2026-09-02-039: not run yet
- observed-2026-09-02-040: not run yet
- observed-2026-09-02-041: not run yet
Fault-injected · 22each built to catch one mistake
- syn-keyed-in-order: not run yet
- syn-keyed-reversed: not run yet
- syn-keyed-rotated: not run yet
- syn-duplicate-id: not run yet
- syn-unknown-id: not run yet
- syn-missing-id: not run yet
- syn-score-nan: not run yet
- syn-score-out-of-range: not run yet
- syn-score-string: not run yet
- syn-score-null: not run yet
- syn-relevant-not-bool: not run yet
- syn-malformed-json: not run yet
- syn-truncated-finish-reason: not run yet
- syn-not-an-object: not run yet
- syn-empty-results: not run yet
- syn-exec-no-recording: not run yet
- syn-exec-timeout: not run yet
- syn-exec-cancelled: not run yet
- syn-exec-budget: not run yet
- syn-positional-short: not run yet
- syn-positional-long: not run yet
- syn-positional-reordered: not run yet
Recorded examples
- Accepted for reviewA candidate that passes the stated checksEvery verdict names its article. The association survives all 720 orderings of the same response.keyed-v2
- RejectedA defective candidate the checks rejectA seeded control that keeps the last verdict when an article is judged twice. Rejected on a case with a named counterexample.Seeded control
- Accepted for reviewAn interrupted execution that resumesThe orchestrator was SIGKILLed with an attempt in flight. Recovery resolved it as unknown-outcome and finished the work.keyed-v2
Recorded response
- Articles sent
- 40one batch
- Verdicts returned
- 254the model kept going
- finish_reason
- stopnot even truncated
- Article ids sent
- 0position is the only link
What was sent · first 6 of 40
- 00Late-stage deals revive in Southeast Asia, but early-stage founders remain under pressuree27
- 01NASA-linked, MIT-trained founders’ nSWX raises US$2M for AI chip packaginge27
- 02Cloud Nine: Singapore's newest rooftop bar opens with infrastructure-themed cocktailsStraits Times
- 03Bringing tech and people together for Singapore’s AI futureBusiness Times SG
- 04The creator economy is distribution, not marketing. Most Asian businesses are still scaling it like a campaigne27
- 05Economists raise Singapore’s growth forecast, lower inflation projections in latest MAS surveyBusiness Times SG
What came back · first 6 of 254
- 00“This article discusses the current state of Southeast Asia's venture capital market, which is highly relevant for a senior backend engineer interested in the startup scene.”
- 01“The article covers a Malaysian startup focused on AI chip packaging, which intersects with AI engineering and cloud infrastructure interests.”
- 02“This article is about a rooftop bar opening in Singapore, which does not align with the user's interests.”
- 03“The article discusses the creator economy, which is not a primary focus for the user.”
- 04“This article focuses on economic forecasts and inflation, which do not align with the user's technical interests.”
- 05“This article discusses new capital rules for payment firms in Singapore, directly related to fintech regulation.”
Recorded during an offline replay of the production runner. No article identifier appears anywhere in the request or the response: position is the only thing associating a verdict with an article.
The recorded response · 44,411 bytes, first 600 shown
{
"results": [
{
"relevant": true,
"score": 0.8,
"reason": "This article discusses the current state of Southeast Asia's venture capital market, which is highly relevant for a senior backend engineer interested in the startup scene."
},
{
"relevant": true,
"score": 0.7,
"reason": "The article covers a Malaysian startup focused on AI chip packaging, which intersects with AI engineering and cloud infrastructure interests."
},
{
"relevant": false,
"score": 0.0,
"reason": "This article is about a rooftop bar opening in SinCase observed-2026-09-02-040, corpus 2026-09-02, read from backend/evals/.cache/llm.
Grading criteria
Does a candidate parser associate every returned verdict with the article it was actually about, and refuse when that association cannot be recovered?
What it measures
- association correctness on cases whose ground truth is known by construction
- refusal on responses that are truncated, malformed, or miscounted
- refusal on duplicate, unknown and missing article ids
- refusal on non-finite and out-of-range scores
- termination without crash or hang
- refusal of inputs outside the protocol the candidate declares
What it does not measure
- relevance quality — no keyed recordings exist, so no protocol-v2 feed has ever been built
- latency and cost — reported separately and never traded against correctness
- generalisation — the cases are public and a candidate may be written against them
Criteria are versioned and hashed. Both generations retain their verdicts; the second closes a gap found in earlier runs. Acceptance qualifies the parser for human review under those criteria.
Results apply to these public fixtures. Candidates can target the cases. Grading uses recorded or injected responses and makes no model calls; agent-authored runs report candidate-writing calls separately.
Evaluating news quality with an ID-based scoring request needs new model recordings.
Published runs 39 records
- Published records
- 39Including records with no execution
- Sandbox executions
- 9Within the published inventory
- agent-g41-default-01No candidate executionFailed
- agent-g41-default-02No candidate executionFailed
- agent-g41-default-03vercel-sandboxRejected
- agent-g41-default-04No candidate executionFailed
- agent-g41-default-05No candidate executionFailed
- agent-g41-default-06vercel-sandboxRejected
- agent-g5m-default-01No candidate executionFailed
- agent-k2-default-01No candidate executionFailed
- agent-k2-default-02No candidate executionFailed
- agent-k2-default-03No candidate executionFailed
- agent-k2-default-04No candidate executionFailed
- agent-k2-default-05No candidate executionFailed
- agent-k2-default-06No candidate executionFailed
- agent-k2-generous-01No candidate executionFailed
- agent-k2-generous-02vercel-sandboxRejected
- agent-k2-generous-03No candidate executionFailed
- agent-k2-generous-04vercel-sandboxRejected
- agent-k2-generous-05vercel-sandboxRejected
- agent-k2-generous-06No candidate executionFailed
- agent-k2-generous-out-01vercel-sandboxRejected
- agent-k2-generous-out-02vercel-sandboxAccepted for review
- agent-k2-generous-out-03No candidate executionFailed
- agent-k2-generous-out-04No candidate executionFailed
- agent-k2-generous-out-05No candidate executionFailed
- agent-k2-generous-out-06vercel-sandboxAccepted for review
- agent-k2-tight-01No candidate executionFailed
- agent-k2-tight-02No candidate executionFailed
- agent-k2-tight-03No candidate executionFailed
- agent-k2-tight-04No candidate executionFailed
- agent-k2-tight-05No candidate executionFailed
- agent-k2-tight-06No candidate executionFailed
- control-lenient-keyedlocal-knownRejected
- control-self-reportinglocal-knownRejected
- control-zero-fillinglocal-knownRejected
- count-guard-v1local-knownRejected
- keyed-fallback-v1vercel-sandboxVerdict moved between criteria generationsRejected
- keyed-v2local-knownAccepted for review
- keyed-v2local-knownAccepted for review
- positional-v0local-knownRejected