Radar stats (0–100 display scores)
Display scores use raw metrics blended toward a baseline when sample size is low (blendScore).
| Axis | Raw (summary) | minN | baseline |
|---|---|---|---|
| Consistency | 30-day active + streak | 7 | 20 |
| Mastery | mature / total in study | 20 | 15 |
| Learning Speed | 7d reviews per minute | 15 | 25 |
| Breadth | reviewed subjects ratio | 10 | 25 |
| Depth | best module mature ratio | 15 | 20 |
| Retention | Wilson lower bound (14d) | 20 | 35 |
Mature card: state === review and interval_days >= 21.
Chart radius: toRadarRadius(score) maps 0→5% min radius so the polygon never collapses to center.
Implementation: packages/shared/src/stats/radar.ts