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 study

Start from a parser

Python · Tab indents. Press Esc, then Tab, to leave the editor.

Limits: 5 runs/hour per address, 3 at once, and 50 runs or 20 minutes of microVM CPU/day across all visitors. Live runs have a separate inventory.

How a run works
  1. The scope gate checks that only candidate.py is written.
  2. A fresh microVM boots with networking denied and no credentials. It receives the harness, the 64 responses with their answers stripped out, and your file.
  3. The harness calls your parse() on every case and records what it returns.
  4. Four probes check that DNS and HTTPS fail and that neither the evaluator nor a credential is present.
  5. The records are graded outside the microVM by the independent evaluator.

The case suite

Ready to test · 64 cases

42 recorded · 22 fault-injected

Inspect cases

Recorded · 42real batches, replayed

  1. observed-2026-09-02-000: not run yet
  2. observed-2026-09-02-001: not run yet
  3. observed-2026-09-02-002: not run yet
  4. observed-2026-09-02-003: not run yet
  5. observed-2026-09-02-004: not run yet
  6. observed-2026-09-02-005: not run yet
  7. observed-2026-09-02-006: not run yet
  8. observed-2026-09-02-007: not run yet
  9. observed-2026-09-02-008: not run yet
  10. observed-2026-09-02-009: not run yet
  11. observed-2026-09-02-010: not run yet
  12. observed-2026-09-02-011: not run yet
  13. observed-2026-09-02-012: not run yet
  14. observed-2026-09-02-013: not run yet
  15. observed-2026-09-02-014: not run yet
  16. observed-2026-09-02-015: not run yet
  17. observed-2026-09-02-016: not run yet
  18. observed-2026-09-02-017: not run yet
  19. observed-2026-09-02-018: not run yet
  20. observed-2026-09-02-019: not run yet
  21. observed-2026-09-02-020: not run yet
  22. observed-2026-09-02-021: not run yet
  23. observed-2026-09-02-022: not run yet
  24. observed-2026-09-02-023: not run yet
  25. observed-2026-09-02-024: not run yet
  26. observed-2026-09-02-025: not run yet
  27. observed-2026-09-02-026: not run yet
  28. observed-2026-09-02-027: not run yet
  29. observed-2026-09-02-028: not run yet
  30. observed-2026-09-02-029: not run yet
  31. observed-2026-09-02-030: not run yet
  32. observed-2026-09-02-031: not run yet
  33. observed-2026-09-02-032: not run yet
  34. observed-2026-09-02-033: not run yet
  35. observed-2026-09-02-034: not run yet
  36. observed-2026-09-02-035: not run yet
  37. observed-2026-09-02-036: not run yet
  38. observed-2026-09-02-037: not run yet
  39. observed-2026-09-02-038: not run yet
  40. observed-2026-09-02-039: not run yet
  41. observed-2026-09-02-040: not run yet
  42. observed-2026-09-02-041: not run yet

Fault-injected · 22each built to catch one mistake

  1. syn-keyed-in-order: not run yet
  2. syn-keyed-reversed: not run yet
  3. syn-keyed-rotated: not run yet
  4. syn-duplicate-id: not run yet
  5. syn-unknown-id: not run yet
  6. syn-missing-id: not run yet
  7. syn-score-nan: not run yet
  8. syn-score-out-of-range: not run yet
  9. syn-score-string: not run yet
  10. syn-score-null: not run yet
  11. syn-relevant-not-bool: not run yet
  12. syn-malformed-json: not run yet
  13. syn-truncated-finish-reason: not run yet
  14. syn-not-an-object: not run yet
  15. syn-empty-results: not run yet
  16. syn-exec-no-recording: not run yet
  17. syn-exec-timeout: not run yet
  18. syn-exec-cancelled: not run yet
  19. syn-exec-budget: not run yet
  20. syn-positional-short: not run yet
  21. syn-positional-long: not run yet
  22. syn-positional-reordered: not run yet
Recorded examples
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

  1. 00Late-stage deals revive in Southeast Asia, but early-stage founders remain under pressuree27
  2. 01NASA-linked, MIT-trained founders’ nSWX raises US$2M for AI chip packaginge27
  3. 02Cloud Nine: Singapore's newest rooftop bar opens with infrastructure-themed cocktailsStraits Times
  4. 03Bringing tech and people together for Singapore’s AI futureBusiness Times SG
  5. 04The creator economy is distribution, not marketing. Most Asian businesses are still scaling it like a campaigne27
  6. 05Economists raise Singapore’s growth forecast, lower inflation projections in latest MAS surveyBusiness Times SG

What came back · first 6 of 254

  1. 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.”
  2. 01“The article covers a Malaysian startup focused on AI chip packaging, which intersects with AI engineering and cloud infrastructure interests.”
  3. 02“This article is about a rooftop bar opening in Singapore, which does not align with the user's interests.”
  4. 03“The article discusses the creator economy, which is not a primary focus for the user.”
  5. 04“This article focuses on economic forecasts and inflation, which do not align with the user's technical interests.”
  6. 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 Sin

Case 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