Ten numbers that try to describe what a typeface looks like
In 1985 a group at Elseware and later Hewlett-Packard set out to solve a problem that sounds trivial and is not: when a document asks for a font the machine does not have, what should it substitute? Answering that needs a way to describe what a typeface looks like in terms a program can compare. What they produced was PANOSE, ten numbers covering serif style, weight, proportion, contrast, stroke variation, arm style, letterform, midline and x-height. It is embedded in almost every font file shipped since, sitting in a table called OS/2, and it is the closest thing typography has to a machine-readable description of appearance.
It is also, in practice, half empty. The ten digits are optional, every one of them has a value meaning "any", and a great many font files ship with all ten set to exactly that. Some were filled in by a conversion tool that never asked the designer. The result is a field that is genuinely informative when present and confidently wrong when trusted blindly, which is why this tool treats it as corroboration and never as the spine of an answer. All zeros is not read as a neutral font. It is read as nobody having said.
The spine is the part of OS/2 that an operating system depends on, and therefore the part that is reliably correct. The weight class is a number from 100 to 900 that decides which file gets used when a document asks for bold. The width class from 1 to 9 does the same for condensed and extended. The family class separates oldstyle from transitional from Didone from slab from sans from script, using a scheme IBM published for its own typeface library. Get any of these wrong and the font misbehaves in every application on the machine, so they tend to be right.
The most useful single number is one people rarely name. Every font from OS/2 version 2 onward records its x-height and its cap height, and the ratio between them is unitless, which means it compares directly across two fonts at any size. A ratio near 0.65 is a classical face with small lowercase letters and long extenders, which reads as formal and traditional and sets beautifully at large sizes. A ratio above 0.75 is a modern screen-oriented face whose lowercase nearly fills the cap height, which reads as friendly and plain and holds up at small sizes. That one fraction separates a wedding invitation from an app interface more reliably than any other field in the file.
What none of it can do is tell you that a font is elegant. Elegance is not in the file. What is in the file is a high contrast between thick and thin strokes, a small x-height, a moderate weight and a serif of a particular shape, and the claim that this combination is what English speakers mean by elegant is a rubric somebody wrote down. This one is written down here, in the open, and every result on the page lists the traits that matched and the traits that did not, because the useful thing to hand someone is not a verdict but the reasoning behind it.
The last constraint is honesty about absence. A font predating OS/2 version 2 has no recorded x-height, and one converted by a careless tool may have no recorded width. Scoring those as failures would rank a font by its age or by the software that produced it. So an untestable trait is dropped from the calculation rather than counted against the font, a score is matched over applicable, and a font that recorded nothing at all is set aside and labelled instead of being sorted to the bottom of a list it was never really in.