Everything is a ratio against the median of your own recent posts, and six dimensions of attribution derived from data already stored.
Two ideas carry insights.ts.
An outlier is not "a big number", it is "a big number for you". 4,000 impressions is a triumph on a small account and a flop on a large one. So everything is a ratio against the median of your own recent posts.
Median, never mean. One genuinely viral post drags a mean so far up that nothing clears the bar again — the feature would quietly stop working exactly when it got interesting. There is a test with a 100k post among five ordinary ones that pins this.
| Constant | Value | Gates |
|---|---|---|
BASELINE_WINDOW | 20 | How many recent measured posts the median draws from |
MIN_TOTAL | 5 | Baseline.ready; findings() returns [] entirely below it |
MIN_GROUP | 3 | A bucket is not reported below this n |
OUTLIER_AT | 2 | The outlier band |
WEAK_AT | 0.5 | The weak band |
confidence(n): under 5 "Early signal", under 10 "Worth watching", else "Consistent". The wording is deliberately hedged at the low end — "early signal" invites another post, "consistent" invites a decision.
Six dimensions, all derived from data already stored: framework, hook shape, length band, style, platform, weekday.
Hook shape is classified in this order: leading digit → Number; ^how (to|i|we|this|these) → How-to; contains ? → Question; a mid-string listicle pattern → Number; else Statement. So "3 reasons your edit drags. Recognise any?" is a Number, and "How do you know when it is done?" is a Question rather than a How-to.
findings() reports a bucket only when it clears both gates and sits outside a dead band of 0.8–1.25, sorted by |log(lift)| so the strongest deviation in either direction comes first.
whatOutliersShare() asks a different question: what do the winners have that the rest do not? A trait must be present in at least half the outliers and at least 1.2× rarer among everything else — a trait shared by every post you have ever made explains nothing about why five took off.