This is a programming question related to chess endgame tables.

As far as I know syzygy tables allow me to get WDL and Depth to Zeroing (DTZ) information for a given position. Is it possible to somehow (without access to chess engine) extract Depth to Mate (DTM) information of a position from these tables?

Based on what I understood from python chess documentation, that minimaxing the DTZ will give you a win, but it does not guarantee the quickest win:

Minmaxing the DTZ values guarantees winning a won position (and drawing a drawn position), because it makes progress keeping the win in hand. However the lines are not always the most straightforward ways to win.

2 Answers 2


No. It's not possible. People use Gaviota tablebase if they want to do DTM or the old Nalimov.

Syzygy tablebase is the most popular tablebase algorithm because it doesn't do DTM, better compression. You can't get both - information and size.


TL;DR DTM & DTZ measure different things and one cannot be deduced from the other.

DTZ measures the shortest distance to zero the position (zeroing = pawn move, capture or checkmate), without compromising the Win/Draw/Loss status. If White only has just sufficient material to mate, then any zeroing is likely to be useful, but if White has way more material than is necessary, White may try to sacrifice its own unit, and Black may try to refuse the sacrifice!

Since DTZ does not compromise on WDL status, and since zeroing the position can only be done a finite number of times in the game, it definitely does progress the game, but it may be an inefficient way of doing so.

Syzygy uses a thing called DTZ50, which is a refinement of DTZ which keeps track not just of 3-valued WDL status but 5-valued status as shown here in the table at the top right of the Syzygy page https://syzygy-tables.info/metrics. So following DTZ50 will additionally ensure that any path does not just progress the game, but also does not fall foul of any 50M traps, even those lurking ahead after several simplifications.

It is not possible to deduce the DTM value from a DTZ value. Sibling nodes may share the same DTZ value but have different DTM values. And vice versa. (Of course if you give the full set of DTZ information in the form of a tree, then someone could throw away the DTZ data, and reconstruct the DTM from the tree!)

Syzygy does provide DTM if there's 5 or fewer pieces on the board. One can experiment with this to see how the concepts differ. For example https://syzygy-tables.info/?fen=7k/8/7K/4P2R/8/8/8/8_b_-_-_0_1 leads immediately to a simple position with DTZ=1 & DTM=3. But White can only achieve one of these. After Black makes the forced move, White can either DTZ=0 (with DTM=16) or DTZ=2 (with DTM from 2 to 20).

I think the answer is a concept called DTM50, but this is more complex to compute, and I don't know of any existing databases.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.