asgard-ai-platform/algo-social-engagement
Calculate and benchmark social media engagement rates across platforms and variants. Use this skill when the user needs to compute engagement metrics, compare performance across accounts or posts, or set engagement benchmarks — even if they say 'what is my engagement rate', 'benchmark engagement', or 'social media KPIs'.
npx skills add https://github.com/asgard-ai-platform/skills --skill algo-social-engagement
Engagement rate measures audience interaction relative to reach or audience size. Formula: (reactions + comments + shares) / denominator × 100%. The denominator choice (reach, impressions, followers) significantly affects the result. Computes in O(n) per post set.
Trigger conditions:
When NOT to use:
IRON LAW: Engagement Rate Denominator MATTERS
By reach, by impressions, and by followers produce DIFFERENT numbers:
- ER by Reach = engagements / reach × 100% (most accurate, requires analytics access)
- ER by Impressions = engagements / impressions × 100% (always lower than by reach)
- ER by Followers = engagements / followers × 100% (public data, but inflated by non-reaching followers)
ALWAYS specify which variant when reporting or comparing.
Collect per post: likes, comments, shares/retweets, saves (platform-specific), reach or impressions or follower count.
Gate: Consistent denominator across all posts being compared.
Compare against platform benchmarks. Flag anomalies (ER > 20% likely data error or viral outlier).
Gate: Results within plausible range for platform.
Return engagement metrics with benchmarking context.
{
"metrics": {"avg_er_by_reach": 3.2, "avg_er_by_followers": 1.8, "median_er": 2.9, "top_post_er": 8.5},
"benchmark": {"platform": "instagram", "industry": "fashion", "benchmark_er": 2.5, "percentile": 72},
"metadata": {"posts_analyzed": 30, "period": "2025-Q1", "denominator": "reach"}
}
Input: Post: 150 likes, 20 comments, 5 shares, reach=5000
Expected: ER by reach = (150+20+5)/5000 × 100% = 3.5%
| Input | Expected | Why |
|-------|----------|-----|
| Reach = 0 | Undefined, skip post | Can't divide by zero |
| Boosted/paid post | Separate from organic | Paid reach inflates denominator, deflates ER |
| Viral outlier (10x avg) | Flag, analyze separately | Skews averages |
references/platform-benchmarks.mdreferences/weighted-engagement.mdTake asgard-ai-platform/algo-social-engagement from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.