03 Acquisition Retention

社区团购获客与用户留存全链路技能包。涵盖获客渠道矩阵、社群运营SOP、用户分层体系、复购激励、各平台获客策略差异及配套工具。适用于平台运营者、团长管理者。不含选品(模块一)、团长运营(模块二)。

Audits

Pass

Install

openclaw skills install local-community-buying-03-acquisition-retention

模块三:获客与留存

模块边界说明 本模块聚焦"用户"的获取与留存,即流量从哪里来、怎么留住用户、怎么让用户反复购买。 选品策略 → 模块一 团长运营 → 模块二 各模块边界独立,不重叠。


知识库

3.1 获客渠道全景图

社区团购获客有五类渠道,各有优劣:

获客渠道矩阵:

               低成本          高成本
                ↑               ↑
  存量裂变  ──────┤    地推扫码  ─────┤
                │               │
  老带新    ──────┤    线下摆摊  ─────┤
                │               │
  公众号    ──────┤    广告投放  ─────┤
                │               │
  小程序分享 ──────┤    KOL合作  ─────┤
                │               │
  团长私域  ──────┤    门店引流  ─────┤

五类渠道详解

**渠道A:存量裂变(ROI 最高)

  • 定义:老用户带动新用户
  • 工具:拼团邀请、分享红包、助力免单
  • 优点:成本极低(平台出优惠券,实为补贴)、信任度高
  • 缺点:天花板明显(老用户有限)、传播链短

**渠道B:老带新(ROI 1:8-15)

  • 定义:老团长推荐新团长、老用户推荐新用户
  • 工具:推荐奖励(团长)、邀请有礼(用户)
  • 优点:信任背书,转化率极高
  • 缺点:规模受老用户基数限制

**渠道C:地推扫码(ROI 1:3-5)

  • 定义:BD 人员在社区/菜市场摆摊,引导扫码关注
  • 工具:扫码送鸡蛋/纸巾等小礼品
  • 优点:可规模化、覆盖面广
  • 缺点:成本高(地推人员 + 礼品成本)、用户质量参差不齐

**渠道D:团长私域(ROI 最高但依赖团长质量)

  • 定义:团长在微信群/朋友圈发布内容,直接转化
  • 工具:早报推送、限时秒杀、新品预告
  • 优点:零成本(团长时间成本由佣金覆盖)、信任度高
  • 缺点:完全依赖团长运营能力,平台无法直接控制

**渠道E:广告投放(ROI 1:1-2,适合品牌期)

  • 定义:朋友圈广告/抖音/微信搜索
  • 优点:可快速起量
  • 缺点:ROI 低,用户留存差,不适合初创期

各渠道 ROI 对比

渠道ROI适合阶段适合平台
存量裂变1:15+全阶段任意
老带新1:8-15全阶段任意
团长私域1:10+中后期(团长已成熟)任意
地推扫码1:3-5冷启动期资金充足时
广告投放1:1-2品牌期成熟平台

3.2 社群运营核心框架

社群是社区团购的主战场,用户 80%+ 的交易在社群内发生。

社群运营三角:

        内容
       /    \
      /      \
     /        \
  互动 —— 交易

内容:让群有价值(不只是卖货)
互动:让群有温度(不只是公告板)
交易:让群能变现(最终目标)

3.3 用户分层体系

用户按价值分层运营:

用户分层模型(RFM 简化版):

高价值用户:近30天购买 ≥ 4次 且 客单价 ≥ 50元
  → 占用户总数 15%
  → 占 GMV 贡献 50%+
  → 策略:VIP专属服务、优先新品试用

潜力用户:近30天购买 2-3次 或 客单价 ≥ 30元
  → 占用户总数 25%
  → 占 GMV 贡献 30%
  → 策略:提升频次、提升客单

普通用户:近30天购买 1次
  → 占用户总数 35%
  → 占 GMV 贡献 15%
  → 策略:激活复购、引导加购

沉默用户:近30天无购买,但注册 > 7天
  → 占用户总数 15%
  → 占 GMV 贡献 < 5%
  → 策略:召回激励、流失预警

流失用户:近60天无购买
  → 占用户总数 10%
  → 几乎不贡献 GMV
  → 策略:超低价召回、放弃(成本过高不投)

3.4 各平台获客策略差异

美团优选

获客策略:流量互通 + 地推优先
核心打法:
  1. 美团 APP 首页流量导入(美团 4 亿用户基础)
  2. 地推团队规模化获客(BD 1万人)
  3. 团长拉新:每新用户首单奖励 3 元

用户留存重点:
  → 美团品牌背书,用户天然信任
  → 依托美团外卖骑手做线下渗透
  → 会员体系:美团会员通用

弱点:用户对平台无情感连接,纯价格驱动

多多买菜

获客策略:社交裂变 + 拼团驱动
核心打法:
  1. 拼团机制:2-3 人成团,团长社交关系裂变
  2. 邀请助力:帮砍价/助力免费拿,朋友圈刷屏
  3. 低价爆品:1 分钱秒杀,引流进群

用户留存重点:
  → 拼团成功后留存(群主持续运营)
  → 拼多多用户本身价格敏感,复购依赖持续低价
  → 重度运营"限时秒杀"保持社群活跃

弱点:用户忠诚度极低,谁便宜买谁

兴盛优选

获客策略:门店获客 + 社区渗透
核心打法:
  1. 线下门店:进店顾客扫码关注,实体店信任背书
  2. 团长推荐:门店老板即是团长,人情社会关系深
  3. 本地化推广:社区公告栏/菜市场横幅/社区微信群

用户留存重点:
  → 团长与用户同社区,天然强关系
  → 实体店可见,用户信任感强
  → 社区活动(节日促销/免费试吃)增强粘性

优点:用户忠诚度最高,次月留存率 78%

淘菜菜

获客策略:88VIP + 淘宝生态联动
核心打法:
  1. 88VIP 会员专属价(会员有认同感)
  2. 淘宝直播带团购(内容电商)
  3. U先试(试用装发放)拉新

用户留存重点:
  → 阿里系会员体系,用户有归属感
  → 内容运营:淘宝直播/种草社区
  → 88VIP 会员复购率高(已付费会员)

弱点:拉新成本高,依赖阿里生态

3.5 复购驱动体系

复购是社区团购最核心的运营指标:

复购驱动三要素:

1. 习惯养成(让用户形成购买习惯)
   → 定时推送:每天同一时间发"今日爆品"
   → 频次提醒:"您已 3 天没下单啦"
   → 周期购:每周三会员日/周末囤货节

2. 利益激励(让用户愿意回来)
   → 积分体系:积分抵现金/积分换赠品
   → 满返优惠:连续购买 3/5/7 次解锁满返
   → 会员专享价:高频用户享额外折扣

3. 情感连接(让用户不想离开)
   → 团长人设:团长是"邻居朋友"不只是卖货
   → UGC 内容:鼓励用户晒好评/买家秀
   → 社区归属:线下自提点变成社交场所

方法论

3.6 社群运营 SOP(日常版)

每日社群运营时间轴:

┌──────────┐
│  07:00  │  早报推送(今日爆品预告)
│  10:00  │  第一波下单提醒(限时优惠)
│  11:00  │  爆品种草(图文并茂)
│  14:00  │  午间加购(适合下午茶的轻食)
│  16:00  │  发货提醒(今日下单已发货)
│  19:00  │  限时秒杀(黄金时段,18-21点最佳)
│  20:00  │  好评展示(用户晒单 + 团长推荐)
│  21:00  │  明日预告 + 晚安互动
└──────────┘

注意:每天消息不超过 5-7 条,避免刷屏被用户屏蔽

爆品推送话术模板

【限时秒杀 30 分钟】

🏆 今日王炸!山东大樱桃 250g
💰 秒杀价:9.9 元(市场价 19.9)
📦 仅限今日,售完即止

张姐说:"上次买的特别甜,孩子爱吃"
李哥说:"已经第 3 次回购了"

👇 点击链接下单 👇
[小程序链接]

━━━━━━━━━━━━━━━━━
留言"已买+1",揪 3 位送 5 元优惠券

早报推送话术模板

【 早安!今日团品已上线 🌟 】

📣 今日爆品预告:

① 🦐 厄瓜多尔白虾 400g → 秒杀价 23.9(超市 39)
② 🍑 阳山水蜜桃 4 个 → 拼团价 18.8
③ 🥬 有机小青菜 300g × 2 → 9.9(新用户专享)

⏰ 秒杀 10:00 开抢,定好闹钟!

💬 昨天买了鸡蛋的王姐说:
"比菜市场便宜 2 块,个头还大"

━━━━━━━━━━━━━━━
有问题找团长,24 小时在线~

3.7 用户召回 SOP

不同沉默程度的用户,召回策略不同:

召回分层策略:

轻度沉默(7-14天未购买):
  → 推送高性价比刚需品(如大米/鸡蛋)
  → 文案:"您好久没来了,这次有个秒杀您肯定感兴趣"
  → 优惠:首单满 30 减 5(限时 3 天)

中度沉默(15-30天未购买):
  → 推送老用户专属价(比新用户更低)
  → 文案:"我们想您了,这是您的专属优惠"
  → 优惠:老用户专属 8 折券(限时 7 天)

重度沉默(31-60天未购买):
  → 推送大额召回红包
  → 文案:"流失用户召回,专属福利仅此一次"
  → 优惠:满 20 减 8(仅限一次)

流失用户(>60天):
  → 推送超低价引流品(近乎成本价)
  → 文案:"我们升级了,想请您回来看看"
  → 优惠:1 分钱购指定商品(限新客)
  → 注意:成本过高,建议放弃或低预算测试

3.8 用户分层驱动的活动策略

MECE边界说明:本节聚焦"针对哪类用户做什么活动",即基于用户分层的活动策略制定。 具体的活动形式设计(秒杀/满减/拼团等)、优惠券体系、大促策划 → 模块六(营销与促销) 本节不重复 Module 06 的活动机制设计,只聚焦用户分层与活动目标的匹配。

用户分层活动匹配矩阵:

┌─────────────────────────────────────────────────────────────────────────────┐
│  用户层级        活动目标         活动类型                  预期效果       │
│  ─────────────────────────────────────────────────────────────────          │
│  高价值用户      留存维护        会员专享/积分体系/新品试用  月复购≥3次    │
│  潜力用户        提升频次        满减阶梯/复购返券          月复购≥2次    │
│  普通用户        激活复购        限时秒杀/首单礼            月复购≥1次    │
│  沉默用户        召回激活        大额召回券/专属活动        召回率≥15%    │
│  流失用户        超低价召回      1分钱引流/专属福利         召回率≥3%     │
└─────────────────────────────────────────────────────────────────────────────┘

Step 1:识别活动目标用户
  数据来源:Module 08 用户画像 / RFM 分层
  判定标准:
    高价值:近30天≥4次购买 且 客单价≥50元
    潜力用户:近30天2-3次购买 或 客单价≥30元
    普通用户:近30天1次购买
    沉默用户:距上次购买7-30天
    流失用户:距上次购买>60天

Step 2:匹配合适活动类型
  高价值用户 → 专属活动(不打折,保护品牌价值)
    活动:会员日/新品抢先购/专属积分加倍
    禁忌:不能用优惠券打扰(降低品牌调性)

  潜力用户 → 提升频次(引导加购)
    活动:满减阶梯/品类券/复购提醒
    禁忌:不能用超低价(惯坏价格敏感度)

  普通用户 → 激活复购(给一个下单理由)
    活动:限时秒杀/今日特惠/老用户专享价
    注意:限时紧迫感是关键

  沉默用户 → 定向召回(大额激励)
    活动:大额券(满25减10)/专属老用户价
    注意:必须定向发送,避免全量发券浪费预算

  流失用户 → 超低价召回(吸引回巢)
    活动:1分钱商品/限时0元购
    注意:成本高,仅用于挽回高潜力流失用户

Step 3:制定分层运营日历

  日常运营(每日):
    高价值用户:07:00 推送新品/会员专享
    潜力用户:14:00 推送限时加购提醒
    普通用户:19:00 推送当日秒杀

  周主题活动:
    周一:潜力用户专属券发放日
    周三:高价值用户会员日
    周五至周日:普通用户秒杀高峰

  月度召回:
    每月1日:沉默用户定向券发放
    每月15日:流失用户超低价召回活动

  注意事项:
    → 避免同一用户同时收到多张冲突优惠券
    → 活动频率:每用户每周触达 ≤ 3次(避免骚扰)
    → 数据验证:活动后追踪各层级转化率,优化策略

工具集

Tool 1: 用户分层分析器

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
用户分层分析器
输入:用户近30天购买数据
输出:用户分层占比 + 重点运营建议
"""


def classify_user(
    purchase_frequency: int,  # 近30天购买次数
    avg_order_value: float,  # 平均客单价
    days_since_last: int,     # 距上次购买天数
):
    """
    单用户分层

    Returns:
        str: 用户层级
        str: 运营建议
    """
    if days_since_last > 60:
        return "流失用户", "超低价召回或放弃"
    elif days_since_last > 30:
        return "沉默用户", "大额优惠券召回"
    elif purchase_frequency >= 4 and avg_order_value >= 50:
        return "高价值用户", "VIP专属服务,优先新品试用"
    elif purchase_frequency >= 2 or avg_order_value >= 30:
        return "潜力用户", "提升频次,引导加购"
    elif purchase_frequency == 1:
        return "普通用户", "激活复购,引导加购"
    else:
        return "新用户", "首单优惠,培养习惯"


def analyze_user_portfolio(
    user_data: list,
):
    """
    用户组合分析

    Args:
        user_data: list of dicts with keys:
            - user_id
            - purchase_frequency (int)
            - avg_order_value (float)
            - days_since_last (int)

    Returns:
        dict: 分层统计 + 运营建议
    """
    segments = {
        "高价值用户": {"count": 0, "gmv_contribution": 0.0},
        "潜力用户": {"count": 0, "gmv_contribution": 0.0},
        "普通用户": {"count": 0, "gmv_contribution": 0.0},
        "沉默用户": {"count": 0, "gmv_contribution": 0.0},
        "流失用户": {"count": 0, "gmv_contribution": 0.0},
        "新用户": {"count": 0, "gmv_contribution": 0.0},
    }

    for u in user_data:
        seg, _ = classify_user(
            u["purchase_frequency"],
            u["avg_order_value"],
            u["days_since_last"],
        )
        segments[seg]["count"] += 1

    total = len(user_data) or 1

    segment_summary = {}
    priority_actions = []

    for seg, data in segments.items():
        pct = data["count"] / total * 100
        segment_summary[seg] = {
            "人数": data["count"],
            "占比": f"{pct:.1f}%",
        }

    # 识别重点问题
    if segments["沉默用户"]["count"] / total > 0.20:
        priority_actions.append("⚠️ 沉默用户占比 > 20%,需立即召回")

    if segments["流失用户"]["count"] / total > 0.10:
        priority_actions.append("⚠️ 流失用户占比 > 10%,需评估召回价值")

    high_value_pct = segments["高价值用户"]["count"] / total * 100
    if high_value_pct < 10:
        priority_actions.append("⚠️ 高价值用户占比 < 10%,需加强培养")

    return {
        "总用户数": total,
        "分层明细": segment_summary,
        "优先行动": priority_actions if priority_actions else ["✅ 各层级用户结构健康"],
    }


def calculateRetentionMetrics(
    week1_users: int,
    week2_retained: int,
    week3_retained: int,
    week4_retained: int,
):
    """
    计算留存率

    Args:
        week1_users: 第1周活跃用户数
        week2_retained: 第2周仍活跃用户数
        week3_retained: 第3周仍活跃用户数
        week4_retained: 第4周仍活跃用户数

    Returns:
        dict: 次日/7日/30日留存率
    """
    d1 = week2_retained / week1_users * 100 if week1_users > 0 else 0
    d7 = week3_retained / week1_users * 100 if week1_users > 0 else 0
    d30 = week4_retained / week1_users * 100 if week1_users > 0 else 0

    return {
        "次日留存率": f"{d1:.1f}%",
        "7日留存率": f"{d7:.1f}%",
        "30日留存率": f"{d30:.1f}%",
        "健康标准": {
            "次日留存率": "40-50%(优质)",
            "7日留存率": "25-35%(优质)",
            "30日留存率": "10-20%(优质)",
        },
    }


def run():
    print("=" * 55)
    print("用户分层分析器")
    print("=" * 55)

    mode = input("模式:1-演示数据 / 2-手动输入用户数据:").strip() or "1"

    if mode == "1":
        # 演示数据
        demo_data = [
            {"user_id": "U001", "purchase_frequency": 6, "avg_order_value": 68.0, "days_since_last": 2},
            {"user_id": "U002", "purchase_frequency": 3, "avg_order_value": 45.0, "days_since_last": 5},
            {"user_id": "U003", "purchase_frequency": 1, "avg_order_value": 28.0, "days_since_last": 10},
            {"user_id": "U004", "purchase_frequency": 0, "avg_order_value": 0.0, "days_since_last": 35},
            {"user_id": "U005", "purchase_frequency": 5, "avg_order_value": 55.0, "days_since_last": 3},
        ]
        data = demo_data
    else:
        # 手动输入
        n = int(input("用户数量:").strip() or "5")
        data = []
        for i in range(1, n + 1):
            print(f"\n--- 用户 {i} ---")
            uid = input("用户ID:").strip() or f"U{i:03d}"
            freq = int(input("  购买频次(月):").strip() or "3")
            aov = float(input("  客单价(元):").strip() or "35")
            days = int(input("  距上次购买天数:").strip() or "10")
            data.append({"user_id": uid, "purchase_frequency": freq,
                         "avg_order_value": aov, "days_since_last": days})

    result = analyze_user_portfolio(data)

    print(f"\n用户总数:{result['总用户数']}")
    print("\n分层明细:")
    for seg, segdata in result["分层明细"].items():
        print(f"  {seg}:{segdata['人数']}人({segdata['占比']})")

    print("\n优先行动:")
    for action in result["优先行动"]:
        print(f"  {action}")

    print("\n" + "=" * 55)
    print("留存率参考指标")
    print("=" * 55)
    metrics = calculateRetentionMetrics(1000, 450, 300, 150)
    for k, v in metrics.items():
        if k != "健康标准":
            ref = metrics["健康标准"].get(k, "")
            print(f"  {k}:{v}  参考:{ref}")


if __name__ == "__main__":
    run()

Tool 3: 社群活跃度分析器

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
社群活跃度分析器
输入:社群每日发言数据 + 下单数据
输出:活跃度评分 + 健康诊断 + 优化建议
"""


def analyze_community_health(
    community_name: str,
    member_count: int,
    daily_messages: int,
    daily_orders: int,
    active_members_7d: int,
    new_members_7d: int,
    quit_members_7d: int,
    avg_response_time_minutes: float,
):
    """
    分析社群健康度

    Args:
        community_name: 社群名称
        member_count: 当前群成员数
        daily_messages: 日均发言数(条)
        daily_orders: 日均订单数
        active_members_7d: 7日内活跃成员数
        new_members_7d: 7日内新增成员数
        quit_members_7d: 7日内退群成员数
        avg_response_time_minutes: 团长平均响应时间(分钟)

    Returns:
        dict: 健康度评分 + 诊断 + 建议
    """
    # 基础比率
    active_rate = active_members_7d / member_count * 100 if member_count > 0 else 0
    engagement_rate = daily_messages / member_count * 100 if member_count > 0 else 0
    order_per_message = daily_orders / daily_messages if daily_messages > 0 else 0
    growth_rate = (new_members_7d - quit_members_7d) / member_count * 100 if member_count > 0 else 0

    # 社群活跃度评分(100分)
    # 指标1:成员活跃率(30分)
    if active_rate >= 60:
        activity_score = 30
    elif active_rate >= 40:
        activity_score = 20
    elif active_rate >= 20:
        activity_score = 10
    else:
        activity_score = 3

    # 指标2:发言率(20分)
    if engagement_rate >= 10:
        msg_score = 20
    elif engagement_rate >= 5:
        msg_score = 12
    elif engagement_rate >= 2:
        msg_score = 6
    else:
        msg_score = 2

    # 指标3:转化率(30分)- 发言→下单
    if daily_orders >= 20:
        conv_score = 30
    elif daily_orders >= 10:
        conv_score = 20
    elif daily_orders >= 5:
        conv_score = 12
    elif daily_orders >= 1:
        conv_score = 5
    else:
        conv_score = 0

    # 指标4:增长健康度(20分)
    if growth_rate >= 2:
        growth_score = 20
    elif growth_rate >= 0:
        growth_score = 12
    elif growth_rate >= -1:
        growth_score = 6
    else:
        growth_score = 0

    total_score = activity_score + msg_score + conv_score + growth_score

    # 健康诊断
    issues = []
    if active_rate < 30:
        issues.append(f"🔴 成员活跃率仅 {active_rate:.1f}%,社群濒临死亡")
    elif active_rate < 50:
        issues.append(f"🟠 成员活跃率 {active_rate:.1f}%,低于健康线 50%")

    if daily_messages < 10:
        issues.append(f"🔴 日均发言仅 {daily_messages} 条,群已死寂")
    elif engagement_rate < 5:
        issues.append(f"🟡 发言率 {engagement_rate:.1f}%,低于健康线(目标 > 5%)")

    if daily_orders < 3:
        issues.append(f"🔴 日均订单仅 {daily_orders} 单,转化极差")
    elif daily_orders < 10:
        issues.append(f"🟠 日均订单 {daily_orders} 单,转化有提升空间")

    if quit_members_7d > new_members_7d:
        issues.append(f"🔴 退群人数 > 新增人数,群在萎缩")

    if avg_response_time_minutes > 30:
        issues.append(f"🟡 团长响应时间 {avg_response_time_minutes:.0f} 分钟,偏慢(目标 < 15 分钟)")

    # 定级
    if total_score >= 80:
        grade = "🟢 优秀"
        verdict = "社群活跃健康,用户粘性极强"
    elif total_score >= 60:
        grade = "🟡 良好"
        verdict = "社群运营正常,但有提升空间"
    elif total_score >= 40:
        grade = "🟠 一般"
        verdict = "社群活跃度不足,需加强运营"
    else:
        grade = "🔴 危险"
        verdict = "社群濒临死亡,建议重组或解散"

    # 优化建议
    suggestions = []
    if active_rate < 50:
        suggestions.append("增加早报/晚安等日常互动内容,提升存在感")
    if engagement_rate < 5:
        suggestions.append("发起话题讨论(如:今天吃什么?),鼓励成员发言,提升发言率至 5% 以上")
    if daily_orders < 10:
        suggestions.append("增加限时秒杀/限量抢购等活动,刺激下单")
    if growth_rate <= 0:
        suggestions.append("启动老带新活动,邀请邻居进群")
    if avg_response_time_minutes > 15:
        suggestions.append("设置自动回复机器人,减少用户等待时间")

    return {
        "社群名称": community_name,
        "社群规模": f"{member_count} 人",
        "健康度评分": f"{total_score}/100",
        "评级": grade,
        "整体判断": verdict,
        "核心指标": {
            "成员活跃率": f"{active_rate:.1f}%(目标 > 50%)",
            "日均发言率": f"{engagement_rate:.1f}%(目标 > 5%)",
            "日均订单": f"{daily_orders} 单(目标 > 10 单)",
            "7日净增长": f"{'+' if growth_rate >= 0 else ''}{growth_rate:.2f}%",
            "团长响应时间": f"{avg_response_time_minutes:.0f} 分钟(目标 < 15 分钟)",
        },
        "分项得分": {
            "成员活跃率(/30)": activity_score,
            "发言率(/20)": msg_score,
            "转化效果(/30)": conv_score,
            "增长健康度(/20)": growth_score,
        },
        "健康诊断": issues if issues else ["✅ 暂无明显异常"],
        "优化建议": suggestions if suggestions else ["✅ 继续保持当前运营节奏"],
    }


def run():
    print("=" * 55)
    print("社群活跃度分析器")
    print("=" * 55)

    name = input("社群名称:").strip() or "XX小区群"

    try:
        members = int(input("群成员数:").strip() or "200")
    except ValueError:
        members = 200

    try:
        messages = int(input("日均发言数(条):").strip() or "35")
    except ValueError:
        messages = 35

    try:
        orders = int(input("日均订单数(单):").strip() or "15")
    except ValueError:
        orders = 15

    try:
        active = int(input("7日内活跃成员数:").strip() or "80")
    except ValueError:
        active = 80

    try:
        new_m = int(input("7日内新增成员:").strip() or "5")
    except ValueError:
        new_m = 5

    try:
        quit_m = int(input("7日内退群成员:").strip() or "2")
    except ValueError:
        quit_m = 2

    try:
        response = float(input("团长平均响应时间(分钟):").strip() or "12")
    except ValueError:
        response = 12

    result = analyze_community_health(
        name, members, messages, orders, active, new_m, quit_m, response
    )

    print(f"\n{'='*55}")
    print(f"社群健康度报告:{result['社群名称']}")
    print(f"{'='*55}")
    print(f"\n社群规模:{result['社群规模']}")
    print(f"健康度评分:{result['健康度评分']}")
    print(f"评级:{result['评级']}")
    print(f"判断:{result['整体判断']}")

    print(f"\n核心指标:")
    for k, v in result['核心指标'].items():
        print(f"  {k}:{v}")

    print(f"\n分项得分:")
    for k, v in result['分项得分'].items():
        print(f"  {k}:{v}")

    print(f"\n健康诊断:")
    for issue in result['健康诊断']:
        print(f"  {issue}")

    print(f"\n优化建议:")
    for s in result['优化建议']:
        print(f"  → {s}")


if __name__ == "__main__":
    run()

Tool 2: 活动 ROI 计算器

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
活动ROI计算器
输入:活动成本 + 预期GMV + 拉新目标
输出:ROI分析 + 定价建议

注意:详细ROI计算逻辑和品类敏感性分析,见模块六 Tool 1。
本工具提供基础计算,复杂活动策划请参考模块六。
"""


def calculate_activity_roi(
    activity_name: str,
    # 成本项
    subsidy_cost: float,        # 补贴成本(优惠券/红包)
    marketing_cost: float,      # 营销成本(广告/物料)
    commission_cost: float,     # 额外佣金(团长活动奖励)
    # 收益项
    expected_gmv: float,        # 预期 GMV
    expected_new_users: int,   # 预期新增用户
    baseline_gmv: float,        # 同期基准 GMV(无活动时)
):
    """
    计算活动 ROI

    Returns:
        dict: ROI 分析报告
    """
    total_cost = subsidy_cost + marketing_cost + commission_cost
    incremental_gmv = expected_gmv - baseline_gmv  # 增量 GMV
    net_contribution = incremental_gmv - total_cost  # 净贡献

    # 平台综合佣金率(估算)
    platform_rate = 0.15
    platform_revenue = expected_gmv * platform_rate
    contribution_margin = platform_revenue - total_cost

    # ROI
    roi = (net_contribution / total_cost * 100) if total_cost > 0 else 0

    # 每新用户成本
    cac = total_cost / expected_new_users if expected_new_users > 0 else float("inf")

    # 判断活动可行性
    if roi > 50:
        verdict = "🟢 极好(ROI > 50%)"
        advice = "立即执行,可加大预算"
    elif roi > 20:
        verdict = "🟢 良好(ROI > 20%)"
        advice = "可以执行,建议监控实时数据"
    elif roi > 0:
        verdict = "🟡 保本(ROI 0-20%)"
        advice = "谨慎执行,需确保新用户留存"
    else:
        verdict = "🔴 亏损(ROI < 0)"
        advice = "不建议执行,重新调整方案"

    return {
        "活动名称": activity_name,
        "成本明细": {
            "补贴成本": round(subsidy_cost, 2),
            "营销成本": round(marketing_cost, 2),
            "佣金成本": round(commission_cost, 2),
            "总成本": round(total_cost, 2),
        },
        "收益明细": {
            "预期 GMV": round(expected_gmv, 2),
            "基准 GMV(无活动)": round(baseline_gmv, 2),
            "增量 GMV": round(incremental_gmv, 2),
            "平台佣金收益": round(platform_revenue, 2),
        },
        "核心指标": {
            "ROI": f"{roi:.1f}%",
            "净贡献": round(net_contribution, 2),
            "贡献利润率": f"{net_contribution/expected_gmv*100:.1f}%" if expected_gmv > 0 else "0%",
            "每新用户成本(CAC)": f"{cac:.1f}元" if cac != float("inf") else "∞",
        },
        "评估": verdict,
        "建议": advice,
    }


def compare_activities(activities: list):
    """活动横向对比(修复:ROI字符串→数值排序)"""
    results = sorted(
        activities,
        key=lambda x: float(x["核心指标"]["ROI"].rstrip("%")),
        reverse=True
    )
    for i, r in enumerate(results):
        r["排名"] = i + 1
    return results


def run():
    print("=" * 55)
    print("活动 ROI 计算器")
    print("=" * 55)

    activity = input("活动名称:").strip() or "限时秒杀"

    try:
        subsidy = float(input("补贴成本(优惠券/红包,元):").strip() or "5000")
    except ValueError:
        subsidy = 0

    try:
        marketing = float(input("营销成本(广告/物料,元):").strip() or "2000")
    except ValueError:
        marketing = 0

    try:
        commission = float(input("佣金成本(团长活动奖励,元):").strip() or "1000")
    except ValueError:
        commission = 0

    try:
        expected_gmv = float(input("预期 GMV(元):").strip() or "80000")
    except ValueError:
        expected_gmv = 0

    try:
        new_users = int(input("预期新增用户(人):").strip() or "200")
    except ValueError:
        new_users = 0

    try:
        baseline = float(input("基准 GMV(无活动同期,元):").strip() or "60000")
    except ValueError:
        baseline = 0

    result = calculate_activity_roi(
        activity, subsidy, marketing, commission, expected_gmv, new_users, baseline
    )

    print(f"\n{'='*55}")
    print(f"【{result['活动名称']}】ROI 分析报告")
    print(f"{'='*55}")

    print("\n成本明细:")
    for k, v in result["成本明细"].items():
        print(f"  {k}:{v:.0f} 元")

    print("\n收益明细:")
    for k, v in result["收益明细"].items():
        print(f"  {k}:{v:.0f} 元")

    print("\n核心指标:")
    for k, v in result["核心指标"].items():
        print(f"  {k}:{v}")

    print(f"\n评估:{result['评估']}")
    print(f"建议:{result['建议']}")


if __name__ == "__main__":
    run()

3.9 各渠道获客话术模板

五类渠道话术:

渠道A:地推扫码话术(面对面)

开场白(3秒吸引注意):
  "您好,打扰一下!我是XX社区团购的推广员,
   我们在帮社区居民省钱,买菜水果比超市便宜20-30%。
   扫码关注就送6枚鸡蛋,您看看了解一下?"

需求挖掘:
  "您平时在哪里买菜呀?
   菜市场还是超市?
   我们比菜市场还便宜,而且明天就能送到小区门口。"

处理抗拒(用户说"不需要"):
  "完全理解!您可以先看看,不买也没关系。
   关注了以后有优惠活动您就知道了,
   反正不花钱,先占个便宜呗😊"

促成(用户犹豫不扫码):
  "这样吧,我送您一袋小橘子,
   您扫码进群了解一下,不喜欢随时退出来就行。
   群里的东西真的比超市便宜很多!"

---

渠道B:老带新(团长推荐)话术

团长推荐团长话术(私信):
  "XX姐,您做团长做得真好!
   我们现在招募新团长,您有没有朋友住在别的社区想做的?
   推荐成功的话,您和您朋友都能拿200元奖励!
   她们要是做得好,您还能拿她们GMV的永久分成呢~"

邀请新用户话术(私信):
  "您好,我是XX团长的助理~
   XX姐推荐您来了解我们的团购!
   她的社群口碑特别好,您在她的群里买东西特别靠谱。
   我给您发个链接,您可以先看看有什么实惠的~"

---

渠道C:微信群裂变话术

群发话术(邀请好友进群):
  "【福利到】🎉
   邀请2位邻居进群,双方各得5元无门槛券!
   蔬菜水果比超市便宜20%+,明日送达~
   想省钱的邻居扫码进群👇"

助力话术(分享链接):
  "【0元免费拿】🎁
   帮我点一下,助力成功就能0元拿这箱牛奶!
   感谢感谢🙏 [链接]
   (这活动真的免费,我已经拿到了)"

拼团话术:
  "【2人成团】智利车厘子2斤,原价58,两人拼团只要38!
   差1人,快来和我一起拼!
   点击链接立即参与👇"

---

渠道D:流失用户召回话术

轻度流失(7-14天)私信:
  "您好,我是团长小XX!
   您之前在我们这买过土鸡蛋,还记得吗?
   最近到了特别好吃的草莓,给您留了一份专属价¥19.9(市场价¥35)
   这是您的专属优惠哦,点击领取👇"

中度流失(15-30天)私信:
  "您好!我是XX,好久没见您来了~
   想问一下是不是最近比较忙呀?
   我们上了很多新品,给您申请了一张20元无门槛券,
   有效期7天,不用就浪费啦,点击领取👇"

重度流失(31-60天)私信:
  "【专属召回福利】🎁
   您已经60天没来啦,我们非常想念您!
   为您准备了一份超级回归礼包:
   1分钱换购任意商品 + 10元无门槛券
   仅限您一人,戳链接领取👇"

---

渠道E:朋友圈推广话术

日常推广(图文):
  "【社区团购日记】🏠
   今天到了一批阳山水蜜桃,邻居们都说特别甜!
   比超市便宜一半,明日送达,扫码下单👇
   [配图:实物图+价格对比图]"

活动预告:
  "【明早10点 限量秒杀】⏰
   土鸡蛋30枚,市场价32,我们只要19.9!
   只有100份,手慢无,扫码进群预约👇"

好评晒单:
  "今天邻居们的反馈来了👏
   张姐说'鸡蛋特别新鲜,比菜市场好还便宜'
   李哥说'排骨收到了,很嫩,推荐!'
   想买的邻居,点下面链接下单👇"

3.10 各平台获客成本(CAC)详细对比

各平台真实获客成本数据(基于2021-2023年行业调研):

多多买菜:
  ┌─────────────────────────────────────────────────┐
  │  获客渠道        成本/人      用户质量     备注    │
  │  ─────────────────────────────────────          │
  │  1分钱秒杀引流    ¥30-45     极低(羊毛党)  已停  │
  │  邀请助力        ¥8-15      中等(真实用户) 主力  │
  │  拼团裂变        ¥5-12      较高(目标用户) 最佳  │
  │  团长私域转化    ¥3-8       高(信任关系)   最低  │
  │  朋友圈广告投放   ¥25-40     中等            补充  │
  │  加权平均 CAC    ¥12-18     —               —     │
  └─────────────────────────────────────────────────┘
  注:多多买菜重拉新轻留存,实际有效用户CAC更高

美团优选:
  ┌─────────────────────────────────────────────────┐
  │  获客渠道        成本/人      用户质量     备注    │
  │  ─────────────────────────────────────          │
  │  美团APP流量导入   ¥2-5       高(既有用户)  优势   │
  │  地推扫码        ¥15-25      中等            主力   │
  │  团长拉新        ¥5-10       高(团长信任)   主力   │
  │  BD团队拓展      ¥20-35      中等            早期   │
  │  社交裂变        ¥8-12       较高            辅助   │
  │  加权平均 CAC    ¥8-15       —               —     │
  └─────────────────────────────────────────────────┘
  注:美团APP流量是核心竞争力,CAC显著低于行业

兴盛优选:
  ┌─────────────────────────────────────────────────┐
  │  获客渠道        成本/人      用户质量     备注    │
  │  ─────────────────────────────────────          │
  │  门店自然流量     ¥1-3       极高(进店顾客) 核心   │
  │  团长社交推荐     ¥3-8       极高(强关系)   核心   │
  │  社区活动        ¥5-15       高(情感连接)   低频   │
  │  口碑传播        ¥0(几乎0) 极高            最优   │
  │  加权平均 CAC    ¥2-6        —               最低   │
  └─────────────────────────────────────────────────┘
  注:兴盛CAC最低,用户质量最高,LTV/CAC表现最优

淘菜菜:
  ┌─────────────────────────────────────────────────┐
  │  获客渠道        成本/人      用户质量     备注    │
  │  ─────────────────────────────────────          │
  │  88VIP会员导入    ¥5-10      极高(付费会员) 优势   │
  │  淘宝直播导流     ¥15-25      中等            流量大  │
  │  地推扫码        ¥20-30      中等            成本高  │
  │  U先试拉新       ¥12-18      较高            试用转化 │
  │  加权平均 CAC    ¥12-20      —               偏高   │
  └─────────────────────────────────────────────────┘
  注:依托阿里生态,但CAC偏高,规模效应不明显

行业健康标准参考:
  CAC < ¥10:优秀(兴盛优选水平)
  CAC ¥10-20:良好(美团优选水平)
  CAC ¥20-30:一般(多多买菜/淘菜菜水平)
  CAC > ¥30:危险(纯补贴拉新模式)

案例库

案例1:多多买菜"1分钱秒杀"裂变活动复盘

活动设计:
  → 每天 10:00 上线 100 份 1 分钱秒杀商品
  → 用户需邀请 2 位好友助力才能购买
  → 邀请链接分享到朋友圈/微信群

分渠道数据效果:
  活动期间(2021年3月,日均):
    日均新增用户:+15 万(峰值)
    活动页面 UV:80 万
    邀请转化率:35%(80万UV→28万完成助力)
    每邀请 1 人成本:约 ¥0.8(平台补贴0.01元商品)
    实际CAC:¥8-12/人(均摊运营成本)

用户质量分层(1分钱活动专项分析):
  ┌─────────────────────────────────────────────────┐
  │  用户类型      占比    30日复购率   60日复购率  │
  │  ─────────────────────────────────────          │
  │  真实消费者    35%      42%        28%        │
  │  羊毛党        45%      8%          3%        │
  │  沉默用户      20%      15%         8%         │
  │  整体均值      100%     15%         8%         │
  └─────────────────────────────────────────────────┘

ROI 分析:
  活动成本:¥15万 × 30天 = ¥450万/月(补贴+运营)
  带来新用户:15万 × 30天 = 450万用户
  实际CAC:¥450万 / 450万用户 = ¥1/人(表面)
  真实CAC(含羊毛党剔除):¥450万 / (450万×35%) = ¥2.9/人
  但留存价值:30日复购率仅15%,LTV < ¥5
  结论:ROI 为负,长期亏损

教训:
  → 低价拉新用户质量极低(45%羊毛党),不是目标用户
  → 真实消费者 CAC = ¥2.9,但 LTV < ¥5,LTV/CAC < 2,不合算
  → 建议:取消纯补贴拉新,改用"拼团+内容"组合(真实用户占比提升至60%+)

案例2:兴盛优选社区活动留存打法

活动设计(湖南某社区):
  → 端午节:团长组织"包粽子大赛",社区免费参加
  → 参与用户现场下单可领粽子材料包
  → 赛后合影发朋友圈,额外领 5 元无门槛券

数据效果:
  活动参与人数:50 人(社区 200 户家庭)
  活动当天 GMV:3.2 万(日常 5000 元)
  参与用户 30 日复购率:82%
  参与用户 90 日留存率:71%

核心逻辑:
  → 用社区活动建立情感连接,不是纯利益交换
  → 用户记住了团长这个人,不只是记住"便宜"
  → 线下见过面,信任感翻倍

可复用经验:
  → 节日/节气活动 = 天然的社群活跃机会
  → 团长主办 + 平台补贴 = 最低成本的活动形式
  → 活动后的 UGC 晒单 = 最好的口碑传播

案例3:美团优选"早市经济"留存体系

策略设计:
  → 每天 07:00 推送"早市"专属优惠(限 2 小时)
  → 主打生鲜/蔬果/早餐食材
  → 文案强调"新鲜"、"今天吃"
  → 早市 GMV 单独统计,不计入日常 GMV 考核

数据效果:
  早市用户月均购买频次:8-10 次(行业最高)
  早市用户平均客单价:35 元(略高于均值)
  早市专属用户 30 日留存率:65%
  早市用户向全品类延伸率:40%

核心逻辑:
  → 习惯养成:每天同一时间推送,用户形成"早餐买菜"习惯
  → 场景绑定:早市 = 新鲜 = 兴盛优选
  → 频次优先:先养成频次,再提升客单价

可复用经验:
  → 固定时间 + 固定内容 = 最简单的习惯养成机制
  → 早起用户 = 高价值用户(有时间购物 = 家庭采购决策者)

案例4:某平台"广告投放ROI崩溃"的获客教训

背景:2022年某中型社区团购平台(月GMV约5000万)为快速扩张,大量投放信息流广告

问题:获客效率持续恶化,广告成为纯烧钱机器

数据暴露问题:
  → 月均广告投放:¥300万
  → 月均新增用户:3万
  → 实际 CAC:¥100/人(目标 ¥30/人,严重超标)
  → 新用户30日复购率:8%(目标 > 30%)
  → 计算:¥100 × 3万 × 30天 = 月亏损 ¥900万

根因分析(Step 1:用户来源拆分):
  投放渠道效果对比:
  ┌────────────────────────────────────────────────────────────┐
  │ 渠道          投放占比    CAC      30日复购率   ROI       │
  │ ─────────────────────────────────────────────────────     │
  │ 抖音信息流    50%        ¥150     5%          0.2       │
  │ 微信朋友圈    30%        ¥80      10%         0.4       │
  │ 百度搜索      15%        ¥60      15%         0.6       │
  │ 团长老带新    5%         ¥15      35%         2.5       │
  └────────────────────────────────────────────────────────────┘

  发现:80%的预算花在ROI<0.5的渠道,只有5%预算在团长老带新(ROI最高的渠道)

根因分析(Step 2:用户质量验证):
  → 广告用户 vs 团长用户对比:
    广告用户:首单¥12(多为凑单),7日复购率5%,30日复购率8%
    团长用户:首单¥38,7日复购率30%,30日复购率35%
  → 广告用户几乎100%是"羊毛党",有补贴就下单,没补贴就消失

应急处置:
  → 第1周:立即暂停抖音/朋友圈广告投放(ROI<0.5的一律暂停)
  → 第2周:将80%预算转移到团长老带新(ROI 2.5)
  → 第3周:保留百度搜索(ROI 0.6但品牌价值),降低投放
  → 第4周:建立广告ROI红线,任何渠道CAC>¥50立即暂停

数据效果(调整后3个月):
  月均CAC:¥100 → ¥35(下降65%)
  新用户30日复购率:8% → 28%(提升20pp)
  月均获客成本:¥300万 → ¥120万(下降60%)
  但月GMV从¥5000万 → ¥4500万(牺牲了扩张速度)

核心教训:
  → 社区团购获客绝对不能依赖广告投放(用户太容易薅羊毛)
  → 团长老带新是ROI最高的获客方式,应占预算60%以上
  → 广告投放CAC红线:>¥50立即暂停,>¥80全面审查
  → 获客质量比获客数量重要10倍:10个真实用户 > 100个羊毛党

案例5:某平台"拉新裂变活动被薅羊毛导致巨额损失"

失败背景:2023年某平台中秋活动,推出"邀请好友得20元红包"裂变机制

事故经过:
  ① 活动设计:
    → 邀请1个新用户注册,得20元红包(无门槛提现)
    → 预算:活动期间发出红包上限100万元
    → 预期:5万新用户(CAC约20元)

  ② 风险识别失败:
    → 活动上线前,风控团队未做"羊毛党识别"测试
    → 技术团队未设置"一人多邀请"上限(允许无上限邀请)
    → 黑产发现漏洞:一人控制100+账号邀请,套取红包

  ③ 发现时损失:
    → 活动上线4小时,发出红包50万元
    → 核实发现:80%红包被约200个账号薅走(人均套取2000元)
    → 实际新用户仅8000人(大量虚假注册)
    → 当日紧急停止活动,最终损失:¥38万(仅2.8万真实用户)

损失分析:
  → 红包成本:¥50万(其中¥38万被薅走)
  → 实际有效获客:2.8万人,CAC实际约¥17元(看起来还行)
  → 但虚假用户:7.2万人,贡献GMV为0,平台额外承担¥12万补贴成本
  → 更严重后果:虚假团长入驻后,平台商誉受损,真实团长流失

整改措施:
  ① 邀请活动必须设置上限:每人最多邀请10个新用户
  ② 引入风控系统:识别设备指纹/IP异常/账号关联
  ③ 新用户必须完成首单才可提现红包(不能仅注册)
  ④ 活动预算分批释放:先放20%预算,观察数据再决定是否继续
  ⑤ 建立"薅羊毛监控大屏":实时监控异常邀请行为

核心教训:
  → 任何"邀请得红包"活动必须预设风控措施,不能上线后再补救
  → 羊毛党的组织化程度远超想象,要有专人负责风控
  → 活动预算不能一次性全放出,必须分批+实时监控
  → 虚假用户不仅是钱的问题,还会破坏平台生态(真实团长流失)

附录:获客与留存检查清单

月度获客与留存健康检查:

□ 1. 获客成本:本月 CAC 是否 < 50 元?(超过则预警)
□ 2. 拉新质量:本月新用户 30 日复购率是否 > 30%?
□ 3. 社群活跃:团长社群发言率是否 > 5%?(日均发言数/群成员数)
□ 4. 流失预警:轻度/中度沉默用户是否已推送召回?
□ 5. 复购激励:本周是否有限时复购活动?
□ 6. 内容运营:每天推送消息条数是否控制在 5-7 条?
□ 7. 用户分层:高价值用户是否有专人维护?
□ 8. 活动策划:本周是否安排了主题活动?
□ 9. 好评展示:是否每天固定晒出 2-3 条用户好评?
□ 10. 留存复盘:本月留存率环比是否提升?

红线预警(任一触发立即复盘):
  → CAC > 100 元
  → 月流失率 > 30%
  → 团长社群退群率 > 5%/月
  → 沉默用户占比 > 30%