I am having trouble understanding how "upperbound` and "lowerbound" come into play in the UCI protocol.

The spec says:

  • lowerbound: the score is just a lower bound.
  • upperbound: the score is just an upper bound.

For example, I see Stockfish using it like this.

info depth 22 seldepth 27 multipv 1 score cp 27 upperbound nodes 2567224

I kind of understand that it is related to the "cp." But I don't really know how. Could someone help me clarify this? It would be best if you used an example.

2 Answers 2


It is a type of info which an engine can produce during the search, mainly targeted at developers. It means that at that depth stockfish (believes to) have established, that the score it at least 27 centipawns. Stockfish uses some variation of aspiration search and this variant can produce such intermediate results. An engine like Leela Zero uses a different algorithm and therefore never bother the users with such infos.

If you are only interested in chess contents, you can completely ignore that output.


Another search algorithm that produces lower and upper bounds is MTD. It is basically a binary search that narrows in on the true value.

Your Answer

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

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