With enough users, even a tiny difference is "statistically significant". Effect size tells you whether it's big enough to matter. Cohen's d is the difference in means measured in pooled standard deviations:
with sample variances (ddof=1). Implement cohens_d(a, b) and describe_effect(d), which returns "negligible" for , "small" for , "medium" for and "large" otherwise. Raise ValueError if either group has fewer than 2 values or the pooled standard deviation is 0.