athena-eval
Executable A/B validity gates. The arithmetic half of "is this result allowed to decide anything?", as code that can fail instead of prose in a style guide.
It exists because written-down rules did not stop the mistakes they described. Judgement about what to measure stays human; whether a measured gap is allowed to be called a winner is arithmetic, and arithmetic should not be re-derived by hand each time — least of all by a party motivated to find an effect.
What it refuses to let ship
| Mistake | Guard |
|---|---|
| Declaring a winner when the gap is inside the noise | verdict() returns cannot-separate |
| Counting ties as evidence in a paired comparison | paired_verdict() scores only discordant pairs |
| Reporting a mean with no spread | Stat has no mean-only form |
| Grading against inputs that silently arrived empty | assert_inputs() prints sizes and refuses |
| Scoring a truncated or empty completion as an answer | complete_checked() |
from athena_eval import verdict, assert_inputs
assert_inputs(prompt=prompt, corpus=corpus) # prints byte counts, refuses empties
v = verdict("baseline", a_scores, "challenger", b_scores, higher_is_better=True)
v.kind # "decided" | "cannot-separate" | "VOID"
v.winner # the named arm, or None
print(v) # decided -> challenger: gap 0.010 > spread 0.000 (higher is better). ...
State the metric direction. higher_is_better has no safe default: a gate that guesses will
confidently name the slower provider the latency winner.
Below n=10 a verdict is VOID, not weak evidence. For paired comparisons, fewer than 6 discordant
pairs cannot reach p<0.05 at any split, however lopsided the totals look.
Install
pip install athena-eval # gates only, no dependencies
pip install "athena-eval[llm]" # adds complete_checked, via athena-llm
complete_checked imports athena-llm lazily inside the function, so the gates themselves pull in
nothing.
Metadata
Release files for athena-eval 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| athena_eval-0.1.1.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| athena_eval-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.7 kB
Release files / athena_eval-0.1.1.tar.gz
| Download URL | athena_eval-0.1.1.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
95977bbdab086ea1fabfb0ea8b5248b106ac3759ad7294aa3b1092987ab7c980
|
|
BLAKE2b-256 checksum How to use checksums |
49a90d5c86311e5531cdab323f2bf06d9accaa3f6c5e974450a7d789f76b2280
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / athena_eval-0.1.1-py3-none-any.whl
| Download URL | athena_eval-0.1.1-py3-none-any.whl |
|---|---|
| Size | 5.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
577aec1b940524805648501e6d7d14e775788e111315d56419902db746809d40
|
|
BLAKE2b-256 checksum How to use checksums |
8a31628405c3d96b870e603cdb12350b6fe906118fec3958a64e133c910ba59c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|