Skip to content
Both Sides

Method

How a claim wins, how a ruling is sealed, and what the engine deliberately refuses to do.

The five factors

Each factor is normalised to 0–1, multiplied by its weight, and scaled to 100 points. The weights sum to exactly 1.

Factor weights and what each one measures
FactorWeightWhat it measures
editorialRank0.28Upstream editor preference: preferred, normal or deprecated.
evidenceDepth0.22How many independent references are attached to the claim.
corroboration0.20Whether the second source quotes a matching figure.
recency0.16How recently the reference was retrieved, decaying over 12 years.
specificity0.14Whether the statement is a precise measurement or a vague band.

Verdict bands

The margin is the gap between the leader and the runner-up.

  • settled — margin ≥ 18.00

    One claim leads by a decisive margin.

    Required action: Safe to rely on the leading claim and cite its references.

  • contested — margin ≥ 8.00

    A claim leads, but a rival is close enough to matter.

    Required action: Record a ruling with a rationale, and note the losing claim.

  • unresolved — margin ≥ 0.00

    No claim separates from the others.

    Required action: Do not rely on any single value. Report both and escalate.

Two rules the engine will not bend

  • A deprecated claim cannot govern. Upstream editors marking a claim deprecated is an explicit rejection, so it is barred while any active claim exists, however many references it carries.
  • Ties break on claim id. Identical scores are ordered by reference count and then lexicographically by claim id, so two runs on the same input always produce the same ranking.

How the chain is sealed

seal_0 = SHA-384("both-sides/genesis/v1:" + scopeId)
seal_n = SHA-384( UTF-8(seal_{n-1}) || canonicalJson(event_n) )

canonicalJson sorts object keys recursively and drops
undefined members, so equal payloads hash equally.

Every create, update and retire appends one event. Replaying the chain recomputes each seal and reports the first link that does not match. Deleting a ruling keeps a tombstone, so the replay still works after a removal.

What this is not. Both Sides ranks claims and records a human decision. It does not verify that the chosen value is true, and a high score is not a correctness guarantee. Check the primary sources before relying on a ruling.

The engine is deterministic and versioned as Both Sides engine 1.0.0, and the same function backs the UI, the REST endpoint and the agent tool.