A perturbed black hole rings down by emitting gravitational waves in tones with specific frequencies and durations. Such tones encode prized information about the geometry of the source spacetime and the fundamental nature of gravity, making the measurement of black hole ringdowns a key goal of gravitational wave astronomy. However, this task is plagued by technical challenges that invalidate the naive application of standard data analysis methods and complicate sensitivity projections. In this paper, we provide a comprehensive account of the formalism required to properly carry out ringdown analyses, examining in detail the foundations of recent observational results, and providing a framework for future measurements. We build on those insights to clarify the concepts of ringdown detectability and resolvability -- touching on the drawbacks of both Bayes factors and naive Fisher matrix approaches -- and find that overly pessimistic heuristics have led previous works to underestimate the role of ringdown overtones for black hole spectroscopy. We put our framework to work on the analysis of a variety of simulated signals in colored noise, including analytic injections and a numerical relativity simulation consistent with GW150914. We demonstrate that we can use tones of the quadrupolar angular harmonic to test the no-hair theorem at current sensitivity, with precision comparable to published constraints from real data. Finally, we assess the role of modeling systematics, and project measurements for future, louder signals. We release ringdown, a Python library for analyzing black hole ringdowns using the the methods discussed in this paper, under a permissive open-source license at https://github.com/maxisi/ringdown