Overview
@disclosureos/scoring — completeness and compellingness, two measures that refuse to be one
@disclosureos/scoring answers the fifth question the standard asks: how complete and compelling is the case?
It is the consumer layer — it reads the enriched record produced by the other three and computes reference measures. It augments nothing and stores nothing on the record.
Explore it visually
The Scoring page in the Standard Explorer shows completeness, compellingness, contestedness, and evaluator weighting without collapsing them into one number.
npm install @disclosureos/scoringTwo orthogonal measures
Completeness
Is the record well-documented? Field coverage of the records schema — what's filled in, what's missing.
Compellingness
Is the case anomalous? Signal strength from observable and origin claims, with a contestedness range.
The separation is deliberate. A thoroughly documented mundane sighting scores high on completeness and near zero on compellingness. A thin but extraordinary radar case scores the reverse. Collapsing those into one number would hide exactly what a reader needs to know — so the framework doesn't.
import { getCompleteness, score } from '@disclosureos/scoring';
const completeness = getCompleteness(observation);
completeness.percentage; // 0–100: coverage of all schema fields
completeness.requiredPercentage; // 0–100: coverage of required fields
completeness.missing; // exactly which paths are absent
const result = score(observation);
result.score; // 0–1 consensus point estimate
result.range; // { low, high } — spread across competing claims
result.contested; // do evaluators disagree on direction?
result.components; // per-signal breakdown: technology, biologics, originDesign commitments
- No single headline score. Multiple measures, each answering one question.
- Transparent methodology. The weights are exported data (
DEFAULT_WEIGHTS), the formula is open source, and every result is stamped withscoringVersion. - Disagreement is surfaced, not averaged away. Competing claims produce a
rangeand acontestedflag alongside the point estimate. - Prosaic means explained. A confident prosaic origin classification contributes zero anomaly signal — the scorer can't be gamed by enthusiastically classifying a case as a balloon.
- Overridable, not configurable. Weights, prosaic prefixes, and evaluator trust are plain function options. Institutions can publish alternative methodologies as data, not forks.
Ranking
import { rankByCompellingness } from '@disclosureos/scoring';
const ranked = rankByCompellingness(observations);
// most compelling first — the "one case that matters" surfacesSubpaths
import { getCompleteness } from '@disclosureos/scoring/completeness';
import { score, rankByCompellingness } from '@disclosureos/scoring/compellingness';