{{define "content"}} {{$m := .Data.Mind}}{{$c := .Data.Calibration}}

{{$m.DisplayName}} predictions

Explicit expectations with windows and checkable criteria. Misses become prediction errors that lower the linked belief.

{{template "mind_tabs" (dict "M" $m "Active" "predictions")}}
Open
{{index .Data.Stats "open"}}
Accuracy
{{if $c.Total}}{{pct $c.Accuracy}}{{else}}—{{end}}
{{$c.Confirmed}} confirmed · {{$c.Refuted}} refuted · {{$c.Expired}} expired (90 days)
Brier score
{{if $c.Total}}{{conf $c.Brier}}{{else}}—{{end}}
0 is perfect, 0.25 is chance
Calibration
{{if $c.Overconfident}}overconfident{{else if $c.Total}}in range{{else}}—{{end}}

Calibration by stated confidence

{{if $c.Total}}{{range $c.Buckets}}{{end}}
StatednMean statedActual hit rateGap
{{.Label}}{{.Count}}{{if .Count}}{{conf .MeanConf}}{{else}}—{{end}}{{if .Count}}{{conf .HitRate}}{{else}}—{{end}} {{if .Count}}
{{end}}

Bar: mean stated confidence. Marker: fraction that came true. A well-calibrated mind has the marker at the end of the bar.

{{else}}

No resolved predictions yet.

{{end}}

Predictions

{{if .Data.Predictions}}{{range .Data.Predictions}}{{end}}
StatusStatementConfWindowCriteria
{{.Status}} {{.Statement}}
{{.Source}}{{if .BeliefID}} · belief{{end}}{{if .OriginEvent}} · origin{{end}}{{if .Resolution}} · {{payloadField .Resolution "reason"}}{{end}}
{{conf .Confidence}}{{.WindowStart.Local.Format "01-02 15:04"}} → {{.WindowEnd.Local.Format "01-02 15:04"}} {{.Criteria.Kind}}{{if .Criteria.Terms}} {{.Criteria.Expect}}: {{range .Criteria.Terms}}{{.}} {{end}}{{end}} {{if and (eq .Status "open") ($.Principal.User.Role.AtLeast "operator")}}
{{end}}
{{else}}

None yet. Causal hypotheses create predictions automatically; operators can add them here.

{{end}}
{{if .Principal.User.Role.AtLeast "operator"}}

New prediction

{{end}}
{{end}}