🔪 Infographic · Forward Pruning

Explain Chess Engine
Razoring

Position already losing by a mile? Don't waste nodes on full-depth search — razor off the subtree and drop straight to quiescence.

📅 June 30, 2026⏱ 8 min read🏷️ Static Eval · Q-Search Jump
Razoring is aggressive forward pruning: if static evaluation is far below α, even a strong capture sequence is unlikely to recover. Skip remaining main-search depth and jump to quiescence search, or return a fail-low immediately. Complements conservative pruning (futility, null move) by handling clearly lost nodes early.

Visual

Eval Far Below Alpha

Razor zone — staticEval + margin < α

staticEval −300α = +50hopeless band
Shallow razor (d ≤ 3)

staticEval + razorMargin[d] ≤ α → return qsearch(α, β) instead of full search.

Deep razor

At pre-frontier nodes, if eval very bad → reduce depth to 1 + qsearch. Stockfish-style tuned margins.

if (depth <= RAZOR_MAX && !pvNode && !inCheck) { if (staticEval + razorMargin[depth] <= alpha) return qsearch(alpha, beta); }
TechniqueTriggerAction
RazoringstaticEval + margin ≤ αJump to qsearch / shallow search
FutilitystaticEval + margin ≤ αSkip quiet moves at node
Null movePass still ≥ βCut whole node

Safety guards

Razor meets qsearch

Quiescence SearchFutility Pruning

Related: Evaluation Function · Search Algorithm · All Blogs