algo-social-engagement

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Engagement Rate Calculation

参与率计算

Overview

概述

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.
参与率用于衡量受众互动与触达量或受众规模的相对关系。计算公式:(互动反应数 + 评论数 + 分享数) / 分母 × 100%。分母的选择(触达量、曝光量、粉丝数)会对结果产生显著影响。每组帖子的计算复杂度为O(n)。

When to Use

适用场景

Trigger conditions:
  • Computing engagement metrics for social media reporting
  • Benchmarking account or post performance against industry averages
  • Comparing content performance across posts or accounts
When NOT to use:
  • When evaluating influence holistically (use influence measurement)
  • When modeling content spread dynamics (use virality models)
触发条件:
  • 为社交媒体报告计算参与度指标
  • 将账号或帖子表现与行业平均水平进行基准对比
  • 对比不同帖子或账号的内容表现
不适用场景:
  • 需要全面评估影响力时(使用影响力衡量工具)
  • 需要建模内容传播动态时(使用病毒传播模型)

Algorithm

算法

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.
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.

Phase 1: Input Validation

阶段1:输入验证

Collect per post: likes, comments, shares/retweets, saves (platform-specific), reach or impressions or follower count. Gate: Consistent denominator across all posts being compared.
收集单条帖子数据:点赞数、评论数、分享/转发数、收藏数(平台特有)、触达量、曝光量或粉丝数。 验证要求: 所有对比帖子使用统一的分母。

Phase 2: Core Algorithm

阶段2:核心算法

  1. Sum engagements per post: likes + comments + shares (+ saves, clicks if available)
  2. Weight engagements if desired: share=3×, comment=2×, like=1× (shares indicate higher commitment)
  3. Divide by chosen denominator (reach preferred, followers as fallback)
  4. Compute: per-post ER, average ER across posts, median ER, ER trend over time
  1. 计算单条帖子的总互动量:点赞数 + 评论数 + 分享数(若有则加上收藏数、点击数)
  2. 如需加权:分享=3倍权重,评论=2倍权重,点赞=1倍权重(分享代表更高的用户参与度)
  3. 除以选定的分母(优先使用触达量,粉丝数作为备选)
  4. 计算:单条帖子ER、帖子平均ER、ER中位数、ER随时间变化趋势

Phase 3: Verification

阶段3:结果验证

Compare against platform benchmarks. Flag anomalies (ER > 20% likely data error or viral outlier). Gate: Results within plausible range for platform.
与平台基准数据对比。标记异常值(ER>20%可能是数据错误或病毒式传播的特例)。 验证要求: 结果处于平台合理范围内。

Phase 4: Output

阶段4:结果输出

Return engagement metrics with benchmarking context.
返回带有基准对比背景的参与度指标。

Output Format

输出格式

json
{
  "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"}
}
json
{
  "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"}
}

Examples

示例

Sample I/O

示例输入输出

Input: Post: 150 likes, 20 comments, 5 shares, reach=5000 Expected: ER by reach = (150+20+5)/5000 × 100% = 3.5%
输入: 帖子:150个点赞,20条评论,5次分享,触达量=5000 预期结果: ER by reach = (150+20+5)/5000 × 100% = 3.5%

Edge Cases

边缘情况

InputExpectedWhy
Reach = 0Undefined, skip postCan't divide by zero
Boosted/paid postSeparate from organicPaid reach inflates denominator, deflates ER
Viral outlier (10x avg)Flag, analyze separatelySkews averages
输入预期结果原因
触达量=0无定义,跳过该帖子不能除以零
推广/付费帖子与自然流量帖子分开计算付费触达量会扩大分母,降低ER
病毒式传播特例(为平均值的10倍)标记并单独分析会影响平均值的准确性

Gotchas

注意事项

  • Platform algorithm changes: Instagram's algorithm shifts regularly. Historical ER benchmarks become outdated. Use rolling 90-day benchmarks.
  • Vanity metric trap: High ER doesn't mean business impact. 1000 likes on a meme ≠ 10 link clicks on a product post. Track meaningful engagements.
  • Story/Reel metrics differ: Story engagement (taps, replies) and Reel engagement (plays, shares) need different formulas than feed posts. Don't mix.
  • Follower-based ER is noisy: Not all followers see each post (reach < followers). ER by followers underestimates true engagement among those who saw the post.
  • Comparing across account sizes: Smaller accounts naturally have higher ER by followers. Normalize or segment by account size for fair comparison.
  • 平台算法变更:Instagram的算法会定期调整,历史ER基准数据会过时,建议使用滚动90天的基准数据。
  • 虚荣指标陷阱:高ER并不意味着业务价值,1000个梗图点赞≠10个产品帖子的链接点击,需追踪有实际意义的互动。
  • 动态/短视频指标差异:动态(Story)互动量(点击、回复)和短视频(Reel)互动量(播放、分享)需要使用与feed帖子不同的计算公式,切勿混淆。
  • 基于粉丝数的ER存在误差:并非所有粉丝都会看到每条帖子(触达量<粉丝数),基于粉丝数的ER会低估实际看到帖子用户的真实参与度。
  • 跨账号规模对比:小型账号的基于粉丝数的ER通常更高,需进行标准化处理或按账号规模分段以实现公平对比。

References

参考资料

  • For platform-specific benchmark data, see
    references/platform-benchmarks.md
  • For weighted engagement scoring models, see
    references/weighted-engagement.md
  • 平台特定基准数据请查看
    references/platform-benchmarks.md
  • 加权参与度评分模型请查看
    references/weighted-engagement.md