commonground-score
Pure-Python scoring utilities for Common Ground deliberation evaluations.
API
commonground_score exposes:
prop_test(successes, trials)two_prop_test(s_in, s_out, p_in, p_out)comment_stats(votes)vote_entropy(votes)cluster_separation(votes)rating_to_vote(value)vote_accuracy(predictions, held_out)brier_score(predictions, held_out)brier_skill_score(predictions, held_out, reference_predictions=None)probability_reward(predictions, held_out)
vote_entropy normalizes agree/disagree/pass entropy to [0, 1].
cluster_separation returns the fraction of faction-vote pairs taking different
stances. Together they provide the deterministic panel-disagreement math used
by commonground-elicit; missing votes are excluded from both calculations.
brier_score accepts bare point predictions (1, -1, or 0) and
probability mappings keyed by agree, disagree, and pass or their numeric
equivalents. Valid non-negative finite mappings are normalized before scoring.
Invalid or non-normalizable mappings score as the uniform distribution
(1/3, 1/3, 1/3) to represent no information. The current contract divides
the three-class squared-error sum by two, so the returned score is bounded to
[0,1]; callers requiring the unnormalized convention must multiply by two.
probability_reward returns 1 - brier_score for a non-empty target set. The
environment remains responsible for enforcing its exact response schema before
calling this scorer. brier_skill_score returns relative improvement over an
explicit reference forecast; when omitted, it uses the three-class uniform
forecast. A score of zero equals the reference, one is perfect, and negative
values are worse than the reference. When reference losses vary across tasks,
study-level skill must be computed from pooled losses
(1 - mean(model_loss) / mean(reference_loss)), not by averaging the
per-task ratios returned by separate calls.
rating_to_vote(value) implements the canonical 0-10 rating conversion used for
dataset parity:
signed = (2 * (value - 5)) / 10
Values outside the inclusive 0-10 range, plus non-finite values, map to
neutral/pass (0). In-range values below 5 return a negative score, values
above 5 return a positive score, and exactly 5 returns 0.
Parity Fixtures
The test suite includes a parity fixture loader for
tests/fixtures/parity_*.json. The harness requires fixtures for
prop_test, two_prop_test, comment_stats, and rating_to_vote. Fixture
files should use:
{"function":"prop_test","cases":[{"args":[2,4],"expected":0.4472135954999579}]}
JSON cannot encode NaN, so NaN arguments are represented as the exact string
"NaN" and decoded by the harness before invocation.
Release files for commonground-score 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| commonground_score-0.6.0.tar.gz | 8.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| commonground_score-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.9 kB
Release files / commonground_score-0.6.0.tar.gz
| Download URL | commonground_score-0.6.0.tar.gz |
|---|---|
| Size | 8.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c87cd1bb254ea90300005a42798503838d4b5b2e19e3e75beb3a69015b82497
|
|
BLAKE2b-256 checksum How to use checksums |
0396a952104f40ea34e16da39bdbb89c5d2e91f60c109880b2b0603c75350cc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / commonground_score-0.6.0-py3-none-any.whl
| Download URL | commonground_score-0.6.0-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2cdaafd68090ecd3ab9b7d37e13d177bc0cda9db8a0b41252c76951242a3de5
|
|
BLAKE2b-256 checksum How to use checksums |
78b950aa0426dad9e40bed66c4934ec9be453d1a4e838cccac190bbf48b812eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|