IT-RAT the stack/verdryx GitHub ↗
quality plane · wave 2

Verdryx. The denominator your LLM bill is missing.

Cost-per-token dashboards report what a call cost and stop there. They cannot tell a successful call from a wasted one. Verdryx grades the output, exact match, regex, a production outcome tag, or an LLM judge, and prices the result that actually matters: cost per resolved case, not cost per call. On the last live run: $0.00042 to resolve a case, $0.00025 spent on one that went nowhere.

version0.1.0 · Python 3.11+
tests217 · fully offline suite
core depszero (stdlib + optional extras)
readstokenfuse Parquet traces · NDJSON · CSV
exportsagent-events v0.2 · OTLP spans
sixty seconds, one shift

Watch spend turn into a verdict.

This is a simulation, but shaped by the real run: 176 real Claude calls read back as outcome-tagged traces. A shift's worth of support cases gets graded, a real cost per resolved case comes out the other side, and a drift check runs against a stored baseline before one OTLP span closes the loop.

under the hood

Four graders in, one honest number out.

Traces and eval sets go in. Exact match, regex, an outcome tag straight off the gateway, or an LLM judge decide what happened, and the judge's own calls get priced like everything else. What comes out: a cost-per-outcome report, a drift verdict against a stored baseline, a SQLite file, and an event or a span for whatever is already watching your stack.

tokenfuse Parquet trace dir outcomes.ndjson evalset.json verdryx core graders exact regex outcome-tag judge the judge’s calls are priced too cost model the evaluated model’s completion is priced too multi-tag runs reduce to last outcome in step order every case resolves to a Score in [0.0, 1.0] reports CostPerOutcomeReport DriftReport + baseline Welch’s-t · bootstrap CI store SQLite · verdryx.db event bus + traces agent-events · verdryx OTLP → VERDRYX_OTLP_ENDPOINT
what it grades

Not a bigger number. A truer one.

Cost per outcome

Resolved, abandoned, escalated: real outcome tags straight off the TokenFuse gateway turn into a dollar figure per case, not a total nobody can act on.

Drift with statistics

A flat threshold catches the obvious drop. A two-sample significance check beside it, Welch's t plus a bootstrap interval, catches the small, consistent regression a threshold tuned for noise would miss. Point it at a baseline whose source run is gone and it fails loudly, not silently.

The LLM judge is metered

An llm_judge case's Score.cost_usd is a real dollar figure, priced against the same book TokenFuse uses, not the zero placeholder the other three graders leave behind. Quality measurement gets an honest price too.

Zero-dependency core

The eval runner, graders and drift math import nothing but the standard library. Anthropic and Parquet support are opt-in extras, not a tax on the common path.

Offline test suite

217 tests run against a deterministic StubLLMAdapter, no network, no API key. It's what Verdryx's own CI runs, and what --model stub gives you too.

Defensive by design

Grades an operator's own agents against an eval set or a production outcome tag. The README puts it plainly: it “never manipulates outputs, never crafts adversarial prompts, and never attacks anything.”

an honest comparison

Cost per call was never the question.

Cost-per-token dashboards answer a question nobody asked: what did the call cost. Verdryx answers the one that matters: what did getting it right cost, and did that number just get worse.

Verdryxcost-per-token dashboards“eyeball the transcripts”
UnitCorrect caseTokenVibe
Catches quality regressionsDrift vs baseline, significance-testedNoSometimes, too late
Knows what an abandoned attempt costYes, $0.00025 in the live runNoNo
Needs a platformpip install, one SQLite fileA SaaS contractNothing but tears
in the stack

The line that turns spend into a verdict.

Verdryx prices the traces TokenFuse writes: outcome tags and spend data share the same request path, so cost and quality can never quietly drift apart. Its quality_drift events ride the same bus as Platform's Agent Passport contract. Mockryx can require an off-path reaction from Verdryx as part of a pre-prod drill.

try it now
verdryx eval evalset.json --model stub --db verdryx.db

No network, no key: --model stub is deterministic. Then price the traces it left behind.

verdryx cost-per-correct --traces $TOKENFUSE_DATA_DIR