Do chess engines really prune more than 90% of branches? I was looking at Fritz Online (https://fritz.chessbase.com/) engine's parameters/performance. Here is screen relating to one of made moves.



It means that there was a general depth equals to 15 but some branches were even explored to depth 39. Engine was analysing at average speed 530k positions per second. It lasted 5 sec. so ~2.6M nodes were evaluated.

Let's consider branching factor 3 at each level. Then there are 3^15=14M leaves to evaluate (not taking into account internal nodes). As we see in case of branching factor 3 we have more nodes to analyze (14M) than it really took place (2.6M) (not even considering branches explored deeper than 15). 

Branching factor in chess is aproximately 35. I'm aware there are many, many sophisticated techniques to prune branches in search tree. But really from 35 to less than 3? How it's possible that more than 90% of branches are pruned?

Two remarks:


Provided parameters/performance come from phase between opening and middlegame. This is NOT taken from ending where branching factor is significantly lower.
Depth 15 is not something unusual. In most cases program performed analysis to depth between 13 and 16 in couple of seconds.
Yes. Chess engines prune moves quite extensively. Chess programming is all about pruning.

When an engine says "search up to depth 15", it really mean depth as in iterative deepening depth-first search. It doesn't mean that the engine attempts to search everything up to depth 15. No good chess engine would search everything to depth 15.

It's complicated, but most of the bad moves should be reduced by depth (or even eliminated), and some critical lines variations extended beyond depth 15.

90% pruning is not uncommon, in fact it'd be more like 99.999999999999999999% according to your definition.