← all trials
Trial T05 · round 2 · 12 models tried

Mini alerting DSL: claude-haiku-4-5 did it for $0.0181.

Parse + evaluate a boolean metric language: precedence, parens, good errors. A model passes this trial only when every test goes green — retries are included in the price, and the clock runs until done.

Cheapest to green
claude-haiku-4-5$0.0181 · x2
Fastest to green
gpt-5.419s · $0.0375
ModelVerdictTriesTimeCost to doneTokens
claude-haiku-4-5GREENx224s$0.01815639
gpt-5-miniGREENx362s$0.026111881
gpt-5.2GREENx136s$0.03162304
gpt-5.4GREENx219s$0.03754103
gpt-4.1GREENx233s$0.05285092
claude-opus-4-8GREENx241s$0.06606660
gpt-5.5GREENx229s$0.07304033
claude-sonnet-4-6GREENx374s$0.112613161
gpt-5.1GREENx460s$0.130119944
gpt-5GREENx467s$0.173420735
claude-fable-5REFUSEDx631s$0.00882874
claude-sonnet-5DNFx62m05s$0.193715402
time to green — this trialfull width = 2m05s
gpt-5.419s · $0.0375
claude-haiku-4-524s · $0.0181
gpt-5.529s · $0.0730
gpt-4.133s · $0.0528
gpt-5.236s · $0.0316
claude-opus-4-841s · $0.0660
gpt-5.160s · $0.1301
gpt-5-mini62s · $0.0261
gpt-567s · $0.1734
claude-sonnet-4-674s · $0.1126
claude-fable-531s · $0.0088 · REFUSED
claude-sonnet-52m05s · $0.1937 · DNF

Green row = cheapest to done · blue time = fastest to done. REFUSED = the model declined the task (a failure mode token prices never show). claude-fable-5's line is high-variance: follow-up probes saw it stochastically refuse benign coding prompts it had previously attempted. One trial per model per round; replies capped at 2,048 output tokens uniformly. Costs metered per session by cerver.

THE EXACT PROMPT EVERY MODEL RECEIVED
Write `solution.py` with `evaluate(expr: str, lookup) -> bool` for a tiny DSL:

  avg(cpu, 5m) > 0.8 AND NOT deploy_in_progress
  rate(errors, 1m) > 10 OR (p99(latency, 30s) > 250)

Grammar:
- comparisons: <fn>(<name>, <duration>) <op> <number>  with op ∈ {>, <, >=, <=}
- bare identifiers are boolean flags (e.g. deploy_in_progress)
- boolean ops: NOT > AND > OR (that precedence), parentheses allowed
- durations look like 5m / 30s / 1h (pass through to lookup as strings)
- `lookup(fn, name, duration)` returns a float; `lookup("flag", name, None)`
  returns a bool for bare identifiers
- raise ValueError with the offending token in the message for bad input
  (e.g. ">>", unbalanced parens)
Return the COMPLETE `solution.py` in one ```python block, nothing else.
THE TESTS — RUN THEM YOURSELF
import pytest
from solution import evaluate

DATA = {("avg","cpu","5m"): 0.9, ("rate","errors","1m"): 3.0, ("p99","latency","30s"): 300.0}
FLAGS = {"deploy_in_progress": False, "maintenance": True}

def lookup(fn, name, duration):
    if fn == "flag": return FLAGS[name]
    return DATA[(fn, name, duration)]

def test_simple_true():
    assert evaluate("avg(cpu, 5m) > 0.8", lookup) is True

def test_ops():
    assert evaluate("rate(errors, 1m) <= 3", lookup) is True
    assert evaluate("rate(errors, 1m) < 3", lookup) is False

def test_not_and_precedence():
    assert evaluate("avg(cpu, 5m) > 0.8 AND NOT deploy_in_progress", lookup) is True
    assert evaluate("NOT maintenance OR maintenance", lookup) is True

def test_and_binds_tighter_than_or():
    # false AND x OR true → (false AND x) OR true
    assert evaluate("deploy_in_progress AND maintenance OR maintenance", lookup) is True

def test_parens():
    assert evaluate("deploy_in_progress AND (maintenance OR maintenance)", lookup) is False
    assert evaluate("(avg(cpu, 5m) > 0.8) OR (p99(latency, 30s) > 250)", lookup) is True

def test_bad_op_names_token():
    with pytest.raises(ValueError) as e:
        evaluate("avg(cpu, 5m) >> 0.8", lookup)
    assert ">" in str(e.value)

def test_unbalanced_parens():
    with pytest.raises(ValueError):
        evaluate("(avg(cpu, 5m) > 0.8", lookup)
Make your own trial
your task, your tests, any model — free tier, no card