The Morning Slate

The Morning Slate · Verifier

Verify a prediction

Recompute the SHA-256 hash of any prediction we've published. The hash math runs in your browser — we never receive what you compute. If you arrived via a prediction <code>?id=</code> link, your browser also fetches that prediction's canonical fields from our public dataset to populate the form; the hash computation itself never leaves your machine. You can also do it yourself, fully offline, with the snippets below.

The prediction

Prediction ID
cm1f77bf260504bbe93ccacaab
Fixture
Real Betis vs Real Madrid (LALIGA)
Market
OVER_UNDER_GOALS
Selection
OVER (Over 2.5 goals)
Model probability
0.6210
Edge %
-6.07
Drivers
  1. Home Elo advantage: -167 (1629 vs 1796)
  2. Form: home 0.61 / away 0.94
  3. Recent xG avg: home 1.45 / away 2.60
Risk
(none)
Schema version
betclarity-prediction-v2
Published (UTC)
2026-09-01T02:10:07.343Z
Kickoff (UTC)
2026-09-04T19:00:00.000Z

Live recomputation

(Verification will appear here once data is provided.)

Canonical JSON

{"drivers":["Home Elo advantage: -167 (1629 vs 1796)","Form: home 0.61 / away 0.94","Recent xG avg: home 1.45 / away 2.60"],"edgePercent":-6.07,"fixtureId":"cmt29vcwo0e4101mvzsl5idtk","kickoffAt":"2026-09-04T19:00:00.000Z","market":"OVER_UNDER_GOALS","modelProbability":0.621,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"OVER"}

These are the exact bytes we took the SHA-256 of. Copy them into any SHA-256 tool to verify the hash above yourself.

Don't trust us, do it yourself

// Recompute the SHA-256 of this prediction's canonical input.
import { createHash } from "node:crypto";

const canonical =
  `{"drivers":["Home Elo advantage: -167 (1629 vs 1796)","Form: home 0.61 / away 0.94","Recent xG avg: home 1.45 / away 2.60"],"edgePercent":-6.07,"fixtureId":"cmt29vcwo0e4101mvzsl5idtk","kickoffAt":"2026-09-04T19:00:00.000Z","market":"OVER_UNDER_GOALS","modelProbability":0.621,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"OVER"}`;

const computed = createHash("sha256").update(canonical, "utf8").digest("hex");
console.log("computed:", computed);
console.log("expected:", "a9ca92570ecdb6956e574f9c9e75ef8f27e78ec8604c03f0df326eb2631bfb5a");
console.log("match:   ", computed === "a9ca92570ecdb6956e574f9c9e75ef8f27e78ec8604c03f0df326eb2631bfb5a");