What I was looking for
Whether annualised Sharpe and volatility match a hand calculation on real trading calendars.
What I found
Sharpe, volatility and CAGR all need the number of periods in a year. Libraries usually infer it from the dates, and when the inference fails they fall back to a default without saying so. The number stays plausible, so nobody notices.
In ffn the inference failed on any trading calendar with holidays and fell back to one period, so calc_sharpe with annualize=True returned a daily Sharpe: 0.074 for AAPL instead of 1.17. Four fixes in that area were merged and credited in ffn v1.3.0.
The move
When a statistic is annualised, I find out where the periods-per-year came from before I compare it with anything.