JevBench
★ 327▲ 16fstandhartinger/jevbench
Benchmark for typed decision models across several suites, with confidence cascades and committees reported separately.
Measures how well a classifier's confidence matches reality and turns the cost of a mistake into the threshold where a human should take over.
View on GitHub →Checked, not fully reviewed
Calibration reports and cost-based thresholds from labelled decision logs, offline. Checked, not fully reviewed: careful maths, on a scale Jev does not use.
Good for
Watch out for
Tested Oct 10, 2026 at 61bdcccf9038 · Python 3.12 in Docker with no network; its 647 tests (2 skipped), its demo, and a Jev-shaped response log through `ingest --preset jev-native`; the threshold export re-checked at 31ebc7d on 2026-10-18
Checked, not fully reviewed. We ran its 647 tests (all pass, two skipped) and its demo inside a container with no network, and ingested a Jev-shaped response log. jeval makes no model calls at all, so neither did we.
You give it labelled decision records — one per question, with the model’s prediction,
probabilities and the right answer. You get back one offline HTML report and a thresholds.yaml
your app reads: how often a 0.9 is actually right, where confidence stops separating right answers
from wrong ones, and, given a cost matrix, the threshold that minimises expected cost per action,
with a 95% interval and the share it automates. It keeps the model string from each response, so
jev-latest quietly becoming a new version shows up as drift. With too few labels it says so and
plans how many more it needs. The demo’s report flagged wide intervals and said “more labels, not
more analysis” would fix them.
One thing to know before you wire its output into a Jev app. jeval’s confidence for a choice is the
top probability, and its thresholds are computed on that. Jev’s response field called confidence
is a different number: (pmax − 1/n)/(1 − 1/n), as TypeSafe publishes. The
jev-native ingest preset gets this right on the way in. A choice at 0.6/0.3/0.1, which Jev reports
with confidence: 0.4, was stored as 0.6. But thresholds.yaml says only threshold: 0.84, and
the natural line of app code is answer.confidence >= 0.84. On a four-option question that means a
top probability of at least 0.88, so the app automates less than the report predicts. Compare the
threshold with the largest value in probabilities instead. We
reported it.
Fixed on 13 October (#12, 31ebc7d). We re-ran the demo
and jeval threshold at that commit. Every action in thresholds.yaml now carries a comparison
block naming the value to compare for each question type: the chosen option’s probability for a
choice, max(p, 1 − p) for a noul, and the reported confidence for a score. The CLI prints the same
rule when it writes the file. The numbers are unchanged. The README now explains why Jev’s choice
confidence is a different scale, and that it has no single equivalent threshold when option counts
vary. The fix is on GitHub. The PyPI package is still 0.1.0 from 20 September, so install from the
repository to get it.
Apache-2.0, 22 stars, Python 3.10+.
See how it compares with other tools in Best Jev tools, tested hands-on.
Review updated Oct 18, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.
fstandhartinger/jevbench
Benchmark for typed decision models across several suites, with confidence cascades and committees reported separately.
sutro-sh/jev-align
CLI from Sutro that finds the examples a Jev function is least sure about, asks you to label them, and uses GEPA to improve the question.
xD3I/PZ_Optimization
Performance work on a game, notable here for the harness: the arithmetic and the noise floors are computed in code, and Jev is asked only for the verdict on what the numbers mean. No licence file.
New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.
Powered by Buttondown. See our privacy policy.