DecisionTimeStats.exe -h
DecisionTimeStats - statistics for cutechess Decision Time PGN comments
Usage:
DecisionTimeStats <input.pgn> [--output report.txt] [--sort mean]
Options:
-o, --output <file> Also write the report to a UTF-8 text file
--sort <mode> mean, zero, score, name, missing
-h, --help Show this help
Examples:
DecisionTimeStats UHO_Ratinglist.pgn
DecisionTimeStats UHO_Ratinglist.pgn -o DT-Stats.txt --sort zero
Engine Games Score% DT moves Missing Miss% Mean Median P90 Max DT=0% >1s% >3s% >5s% >15s%
Engine
Engine name and version as listed in the PGN header.
Games
Number of games evaluated for this engine, regardless of whether it played White or Black.
Score%
The engine’s tournament score as a percentage:
DT moves
Number of moves for which a valid Decision Time was available and could be included in the statistics.
Missing
Number of moves for which a move time was present, but no Decision Time was included in the comment.
Miss%
Percentage of missing Decision Times among all timed non-book moves of that engine.
Mean
Arithmetic mean of all recorded Decision Times.
Median
The middle value of the DT distribution. At least 50 percent of all Decision Times are less than or equal to this value.
P90
The 90th percentile. For 90 percent of all evaluated moves, the Decision Time is less than or equal to this value. Only 10 percent of the moves are above it.
Max
Highest recorded Decision Time for the engine.
DT=0%
Percentage of Decision Times stored as 0s. According to the source format, this means a DT below 0.01 seconds, not necessarily an exact mathematical zero.
>1s%, >3s%, >5s%, >15s%
Percentage of moves whose Decision Time was strictly greater than 1, 3, 5, or 15 seconds.
These ranges are cumulative. A Decision Time of 16 seconds is therefore counted in all four columns.
The output appears to be internally very consistent.
Out of 19,356,972 total moves, 1,440,000 were book moves. This leaves 17,916,972 non-book moves.
These are distributed exactly as follows:
The sum is exactly equal to the total number of non-book moves. Therefore, no move appears to have been lost or counted twice.
The engine assignment is also plausible:
This agrees with the information that only the Integral versus Obsidian head-to-head set did not yet contain Decision Times.
The Decision Time distributions are strongly right-skewed.
For many engines, the median is 0.00s, while the mean is still approximately between 0.6 and 0.9 seconds. This means:
For more than half of all moves, the engine had already selected the move it would eventually play almost immediately. However, a smaller number of much longer changes of opinion pull the average upward.
Cinder is a good example:
The mean is therefore far above the median. A relatively small number of long Decision Times have a considerable effect on the average.
For this reason, Mean, Median, and P90 should always be considered together. The Mean alone does not describe the distribution sufficiently well.
This column shows enormous differences:
Viridithas stands out strongly. Only 2.26 percent of its Decision Times were recorded as 0s, while its median is still only 0.07 seconds.
This does not necessarily indicate an error. Viridithas probably stabilizes very frequently after approximately 0.05 to 0.10 seconds, while other engines already report the move they will eventually play within the first 0.01 seconds.
Possible causes include:
info pv outputThe statistics therefore do not measure only abstract search quality. They can also reveal differences in engine search and output behavior.
Making exactly these kinds of differences visible is one of the main purposes of the analysis.
The table suggests a possible relationship between playing strength and Decision Time:
This does not yet prove a general statistical relationship. However, Stefan’s assumption appears plausible:
Stronger modern engines often seem to identify the move they will eventually play very early.
There are exceptions. Torch achieves a strong score, but its mean DT is still relatively high.
For a more reliable conclusion, a formal correlation analysis could later be added:
Possible relationships to examine include:
The thresholds >1s, >3s, >5s, and >15s are well chosen for a first version.
They divide the behavior into understandable categories:
These thresholds should be retained.
Useful future additions would be:
P95 and P99 would be more robust than the maximum, because a single extreme value can strongly affect the maximum.
The average of positive Decision Times could also help distinguish between:
0s, but a few extremely long changesThe program already appears to be correct and practically useful in its first version.
Particularly convincing are:
The selected statistical ranges are appropriate. The results already reveal differences that would not be visible from a normal playing-strength rating list alone.