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
cm4bba8b3d8cdbdb42119c50ab
Fixture
Ipswich vs Liverpool (EPL)
Market
OVER_UNDER_GOALS
Selection
UNDER (Under 3.5 goals)
Model probability
0.6426
Edge %
6.18
Drivers
  1. Home Elo advantage: -110 (1569 vs 1679)
  2. Form: home 0.60 / away 0.35
  3. Recent xG avg: home 1.68 / away 1.68
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: -110 (1569 vs 1679)","Form: home 0.60 / away 0.35","Recent xG avg: home 1.68 / away 1.68"],"edgePercent":6.18,"fixtureId":"cmt29v8yq0e3z01mve001dqc3","kickoffAt":"2026-09-04T19:00:00.000Z","market":"OVER_UNDER_GOALS","modelProbability":0.6426,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"UNDER"}

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: -110 (1569 vs 1679)","Form: home 0.60 / away 0.35","Recent xG avg: home 1.68 / away 1.68"],"edgePercent":6.18,"fixtureId":"cmt29v8yq0e3z01mve001dqc3","kickoffAt":"2026-09-04T19:00:00.000Z","market":"OVER_UNDER_GOALS","modelProbability":0.6426,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"UNDER"}`;

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