  A bottleneck of a smooth algebraic variety $X \subset \mathbb{C}^n$ is a pair
of distinct points $(x,y) \in X$ such that the Euclidean normal spaces at $x$
and $y$ contain the line spanned by $x$ and $y$. The narrowness of bottlenecks
is a fundamental complexity measure in the algebraic geometry of data. In this
paper we study the number of bottlenecks of affine and projective varieties,
which we call the bottleneck degree. The bottleneck degree is a measure of the
complexity of computing all bottlenecks of an algebraic variety, using for
example numerical homotopy methods. We show that the bottleneck degree is a
function of classical invariants such as Chern classes and polar classes. We
give the formula explicitly in low dimension and provide an algorithm to
compute it in the general case.
