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
cmd3226613d5964ebc315c75ab
Fixture
VfB Stuttgart vs 1. FC Köln (BUNDESLIGA)
Market
MATCH_RESULT
Selection
HOME (Home win)
Model probability
0.6059
Edge %
-5.01
Drivers
  1. Home Elo advantage: +140 (1625 vs 1485)
  2. Form: home 0.44 / away 0.43
  3. Recent xG avg: home 1.82 / away 1.82
Risk
(none)
Schema version
betclarity-prediction-v2
Published (UTC)
2026-09-01T02:10:07.343Z
Kickoff (UTC)
2026-09-04T18:30:00.000Z

Live recomputation

(Verification will appear here once data is provided.)

Canonical JSON

{"drivers":["Home Elo advantage: +140 (1625 vs 1485)","Form: home 0.44 / away 0.43","Recent xG avg: home 1.82 / away 1.82"],"edgePercent":-5.01,"fixtureId":"cmt29ve7y0e4301mvfu9ydmvc","kickoffAt":"2026-09-04T18:30:00.000Z","market":"MATCH_RESULT","modelProbability":0.6059,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"HOME"}

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: +140 (1625 vs 1485)","Form: home 0.44 / away 0.43","Recent xG avg: home 1.82 / away 1.82"],"edgePercent":-5.01,"fixtureId":"cmt29ve7y0e4301mvfu9ydmvc","kickoffAt":"2026-09-04T18:30:00.000Z","market":"MATCH_RESULT","modelProbability":0.6059,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"HOME"}`;

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