Why every call is graded in public
How a forecast becomes a graded row, why losses stay on the record, and what the hit rates on this site are actually counting.
Most prediction sites show you calls. This one shows you what happened to them, including the ones that went wrong. That is not modesty, it is the only way a forecast can be judged at all.
A call is born with an expiry
When the daily job publishes a forecast it writes a row with a horizon, a price at creation, a low, a base, a high, a direction and a confidence. It also writes the moment that row expires — 30 days later for a 30-day call, one hour later for a signal.
Nothing about that row is editable by hand. The model version that produced it is stored with it, which is why the track record can be split by version when a model is retired.
Grading is a job, not an opinion
An hourly job looks for rows that have expired and reads the settlement price. For a range, it records whether the actual price landed inside the low–high band. For a direction, whether the call was right. It also stores the absolute percentage error, so a range that missed narrowly and one that missed by a mile are not counted the same.
The graded row joins the published one and both stay. A loss is a row like any other: it counts towards the hit rate, it appears in the log, and it is in the CSV.
Why the numbers are withheld until there are enough
Below 30 graded calls, the site shows Collecting instead of a percentage. A 100% hit rate from three calls is not information; it is noise with a percentage sign on it. The same applies to a coin's own page, where the threshold is 10 calls because one coin's history is smaller by nature.
This is uncomfortable early on. An empty track record looks worse than a fabricated one, and for a while the honest page is the emptier page. The alternative — publishing a number that will be overwritten the moment the fourth call expires — would make every later number less believable.
The three numbers, and what each one measures
- Range hit rate — did the actual price finish inside the published band? This tests the width of the distribution, which is why it is compared against the stated 80%.
- Directional accuracy — for calls with a direction, was the sign right? A model with no edge scores about 50% here, and the gate exists to keep it from publishing as if it had one.
- Median absolute error — how far off the base case was, in percentage terms. Useful next to the hit rate, because a model can be inside the band and still be centred badly.
They answer different questions, so the site never merges them into one headline number.
Calibration is the part most sites skip
Stated confidence is a claim about frequency. A 65% call should be right about two times in three across many calls at that confidence. The calibration chart plots exactly that, with a dot per confidence bin and the count behind it.
Bins with too few graded calls stay empty rather than being smoothed into a nice line. An empty chart is honest; a curve fitted to four points is decoration.
What you can do with it
Download the CSV and check the arithmetic yourself. It is the same data the page renders, with the same columns the grading job writes. If a number on the page and a number in the file ever disagree, that is a bug worth reporting — and the address is on the contact page.
The point of publishing losses is not self-flagellation. It is that a forecast you cannot audit is a story, and a story is exactly what this site is trying not to be.
Rowan Hale
Editor · Rowan edits the prediction pages: the structure of each page, the wording around the numbers, and the checks that stop the text drifting from the data. The name is a pen name for the person running CoinPredict, chosen so a public editorial voice does not double as a personal identity.
About the editor →