Forecasts and Brier
Market commentary is unaccountable, and became more so the moment a model would produce a confident directional view on anything you asked it. The problem is not that views are wrong. It is that being wrong costs nothing and leaves no trace, so a forecaster worth reading and one who is merely fluent are indistinguishable from the outside, and from the inside too.
Registering a call
Three things are required before the fact, and none of them can be added afterwards.
| Field | Why it is mandatory |
|---|---|
probability |
A direction with no number cannot be scored. 0.5 is an admission, not an answer. |
horizon |
A call with no deadline is never wrong, only early. |
resolutionCriterion |
Settled by the string, not by argument afterwards. CSPX close > 742.00 leaves nothing
to interpret.
|
Settlement
Criteria that parse into a comparison resolve themselves: a cron sweeps every book's due calls, evaluates the criterion against the stored price series and scores the result. Nothing waits on you remembering that you made a prediction three weeks ago.
The sweep is the one deliberate exception to tenant scoping. It runs on a tenant-less index and is an
internalMutation for exactly that reason, unreachable from any client, with a test asserting
each book is scored against its own prices.
The score
Brier is the mean squared error of the probabilities you gave:
brier = mean((probability - outcome)²) // outcome is 1 or 0
| Value | Reading |
|---|---|
| 0.00 | Perfect, and if you see it, check the criteria. |
| 0.25 | What a coin flip earns. The bar, not the goal. |
| > 0.25 | Worse than saying 50% to everything. |
Reading the reliability diagram
A mean Brier alone hides the direction you are wrong in. The diagram buckets calls by what you said and shows what actually happened in each bucket, as two overlaid bars. The gap between them is the entire point.
- Observed below said, at the top end. Overconfidence. The usual failure: your 90% calls land 70% of the time.
- Observed above said, at the bottom end. Underconfidence, which costs less but is still a miscalibration.
- Bars level across every bucket. Calibrated. Your 70% means 70%.
Calibration and discrimination are different things. A forecaster who says 50% to everything is perfectly calibrated and completely useless, which is why the bucket counts are on the page next to the rates.