在当今竞争激烈的电子商务领域,仅仅关注销售额已经不足以全面评估店铺的成功与否。一个健康的电商店铺需要从多个维度进行综合评估。本文将深入探讨三个核心指标——转化率、复购率和客户满意度,以及如何利用这些指标精准衡量店铺健康度,并提供详细的实施方法和代码示例。

一、电商健康度评估的核心指标概述

1.1 为什么需要多维度评估

电商店铺的健康状况不能仅凭销售额判断。一个销售额高的店铺可能面临以下问题:

  • 获客成本过高导致利润微薄
  • 客户流失严重,依赖不断拉新
  • 产品质量或服务问题导致口碑下滑

因此,我们需要建立一个包含转化率、复购率和客户满意度的综合评估体系。

1.2 三大核心指标的关系

这三个指标相互关联,共同构成电商健康度的”铁三角”:

  • 转化率:衡量流量利用效率
  • 复购率:衡量客户忠诚度和产品竞争力
  • 客户满意度:衡量整体购物体验和品牌口碑

二、转化率:流量变现效率的晴雨表

2.1 转化率的定义与计算

转化率是指完成目标行为的访客占总访客的比例。在电商中,最常见的转化率是购买转化率:

购买转化率 = (完成购买的访客数 / 总访客数) × 100%

但根据业务目标,还可以定义其他转化率:

  • 加购转化率:加入购物车的访客占比
  • 注册转化率:完成注册的访客占比
  • 收藏转化率:收藏商品的访客占比

2.2 转化率的细分分析

2.2.1 漏斗分析法

电商转化通常是一个漏斗过程,我们可以分段分析:

访问 → 浏览商品 → 加入购物车 → 生成订单 → 完成支付

每一步的转化率都值得关注:

# 示例:电商转化漏斗分析代码
def calculate_funnel_conversion(steps_data):
    """
    计算电商转化漏斗各步骤转化率
    steps_data: 字典,包含各步骤的用户数
    """
    steps = ['访问', '浏览商品', '加入购物车', '生成订单', '完成支付']
    print("电商转化漏斗分析:")
    print("-" * 50)
    
    prev_count = None
    for step in steps:
        count = steps_data.get(step, 0)
        if prev_count is None:
            print(f"{step}: {count} (100%)")
        else:
            conversion = (count / prev_count) * 100
            print(f"{step}: {count} ({conversion:.2f}%)")
        prev_count = count

# 示例数据
funnel_data = {
    '访问': 10000,
    '浏览商品': 8000,
    '加入购物车': 2000,
    '生成订单': 800,
    '完成支付': 600
}

calculate_funnel_conversion(funnel_data)

输出结果:

电商转化漏斗分析:
--------------------------------------------------
访问: 10000 (100%)
浏览商品: 8000 (80.00%)
加入购物车: 2000 (25.00%)
生成订单: 800 (40.00%)
完成支付: 600 (75.00%)

2.2.2 渠道转化率分析

不同流量来源的转化率差异很大:

# 示例:各渠道转化率对比分析
def channel_conversion_analysis(channel_data):
    """
    分析各渠道的转化率
    channel_data: 字典,包含各渠道的访问数和转化数
    """
    print("渠道转化率分析:")
    print("-" * 50)
    print(f"{'渠道':<15} {'访问数':<10} {'转化数':<10} {'转化率':<10}")
    print("-" * 50)
    
    for channel, data in channel_data.items():
        visits = data['visits']
        conversions = data['conversions']
        conversion_rate = (conversions / visits) * 100
        print(f"{channel:<15} {visits:<10} {conversions:<10} {conversion_rate:.2f}%")

# 示例数据
channel_data = {
    '搜索引擎': {'visits': 5000, 'conversions': 300},
    '社交媒体': {'visits': 3000, 'conversions': 180},
    '直接访问': {'visits': 1500, 'conversions': 90},
    '邮件营销': {'visits': 500, 'conversions': 30}
}

channel_conversion_analysis(channel_data)

输出结果:

渠道转化率分析:
--------------------------------------------------
渠道            访问数       转化数       转化率      
--------------------------------------------------
搜索引擎        5000        300         6.00%
社交媒体        3000        180         6.00%
直接访问        1500        90          6.00%
邮件营销        500         30          6.00%

2.3 提升转化率的策略

2.3.1 页面优化

# 示例:A/B测试结果分析代码
def ab_test_analysis(control_group, test_group):
    """
    分析A/B测试结果
    control_group: 对照组数据
    test_group: 实验组数据
    """
    def calculate_conversion_rate(group):
        return (group['conversions'] / group['visits']) * 100
    
    control_rate = calculate_conversion_rate(control_group)
    test_rate = calculate_conversion_rate(test_group)
    
    improvement = ((test_rate - control_rate) / control_rate) * 100
    
    print("A/B测试结果分析:")
    print("-" * 50)
    print(f"对照组转化率: {control_rate:.2f}%")
    print(f"实验组转化率: {test_rate:.2f}%")
    print(f"提升幅度: {improvement:.2f}%")
    
    # 简单的显著性判断(基于样本量)
    if abs(improvement) > 5 and (control_group['visits'] + test_group['visits']) > 1000:
        print("结论:结果具有统计意义,建议采用新方案")
    else:
        print("结论:需要更多数据或改进幅度不足")

# 示例数据
control = {'visits': 5000, 'conversions': 250}
test = {'visits': 5000, 'conversions': 300}

ab_test_analysis(control, test)

2.3.2 购物流程优化

  • 减少购物车放弃率

    • 提供多种支付方式
    • 显示安全认证标识
    • 提供购物车保存功能
  • 移动端优化

    • 响应式设计
    • 简化表单填写
    • 优化图片加载速度

三、复购率:客户忠诚度的黄金指标

3.1 复购率的定义与计算

复购率是指在一定时期内,再次购买的老客户占总客户数的比例:

复购率 = (再次购买的客户数 / 总客户数) × 100%

根据业务需求,可以计算不同周期的复购率:

  • 30天复购率
  • 90天复购率
  • 年度复购率

3.2 复购率的深度分析

3.2.1 客户生命周期价值(LTV)分析

# 示例:客户生命周期价值计算
def calculate_ltv(customer_data):
    """
    计算客户生命周期价值
    customer_data: 包含客户购买记录的列表
    """
    from collections import defaultdict
    from datetime import datetime
    
    # 按客户分组
    customer_purchases = defaultdict(list)
    for purchase in customer_data:
        customer_id = purchase['customer_id']
        amount = purchase['amount']
        date = purchase['date']
        customer_purchases[customer_id].append((date, amount))
    
    # 计算每个客户的LTV
    ltv_results = {}
    for customer_id, purchases in customer_purchases.items():
        # 总消费金额
        total_spent = sum(amount for _, amount in purchases)
        
        # 购买次数
        purchase_count = len(purchases)
        
        # 平均订单价值
        avg_order_value = total_spent / purchase_count
        
        # 计算平均购买间隔(天)
        if purchase_count > 1:
            dates = sorted([datetime.strptime(d, '%Y-%m-%d') for d, _ in purchases])
            intervals = [(dates[i+1] - dates[i]).days for i in range(len(dates)-1)]
            avg_interval = sum(intervals) / len(intervals)
        else:
            avg_interval = 0
        
        ltv_results[customer_id] = {
            'total_spent': total_spent,
            'purchase_count': purchase_count,
            'avg_order_value': avg_order_value,
            'avg_interval': avg_interval
        }
    
    return ltv_results

# 示例数据
customer_data = [
    {'customer_id': 'C001', 'amount': 150, 'date': '2024-01-15'},
    {'customer_id': 'C001', 'amount': 200, 'date': '2024-02-20'},
    {'customer_id': 'C001', 'amount': 180, 'date': '2024-03-25'},
    {'customer_id': 'C002', 'amount': 300, 'date': '2024-01-10'},
    {'customer_id': 'C003', 'amount': 100, 'date': '2024-02-05'},
    {'customer_id': 'C003', 'amount': 120, 'date': '2024-03-10'}
]

ltv_data = calculate_ltv(customer_data)
for customer, data in ltv_data.items():
    print(f"客户 {customer}: 总消费 {data['total_spent']}元, 购买{data['purchase_count']}次, 平均间隔{data['avg_interval']:.1f}天")

3.2.2 RFM模型分析

RFM模型是分析复购率的重要工具:

  • Recency:最近一次购买时间
  • Frequency:购买频率
  • Monetary:消费金额
# 示例:RFM模型分析代码
def rfm_analysis(customer_data, reference_date):
    """
    RFM模型分析
    customer_data: 客户购买数据
    reference_date: 分析参考日期
    """
    from collections import defaultdict
    from datetime import datetime
    
    # 转换参考日期
    ref_date = datetime.strptime(reference_date, '%Y-%m-%d')
    
    # 按客户分组
    customer_purchases = defaultdict(list)
    for purchase in customer_data:
        customer_id = purchase['customer_id']
        amount = purchase['amount']
        date = purchase['date']
        customer_purchases[customer_id].append((date, amount))
    
    rfm_results = {}
    
    for customer_id, purchases in customer_purchases.items():
        # 计算R(最近一次购买距今天数)
        latest_date = max([datetime.strptime(d, '%Y-%m-%d') for d, _ in purchases])
        recency = (ref_date - latest_date).days
        
        # 计算F(购买频率)
        frequency = len(purchases)
        
        # 计算M(总消费金额)
        monetary = sum(amount for _, amount in purchases)
        
        rfm_results[customer_id] = {
            'recency': recency,
            'frequency': frequency,
            'monetary': monetary
        }
    
    # 评分(简单示例:按分位数评分)
    all_recencies = [data['recency'] for data in rfm_results.values()]
    all_frequencies = [data['frequency'] for data in rfm_results.values()]
    all_monetaries = [data['monetary'] for data in rfm_results.values()]
    
    recency_threshold = sorted(all_recencies)[len(all_recencies)//2]
    frequency_threshold = sorted(all_frequencies)[len(all_frequencies)//2]
    monetary_threshold = sorted(all_monetaries)[len(all_monetaries)//2]
    
    for customer_id, data in rfm_results.items():
        r_score = 5 if data['recency'] <= recency_threshold else 3
        f_score = 5 if data['frequency'] >= frequency_threshold else 3
        m_score = 5 if data['monetary'] >= monetary_threshold else 3
        
        rfm_results[customer_id]['rfm_score'] = r_score + f_score + m_score
        rfm_results[customer_id]['segment'] = '高价值' if rfm_results[customer_id]['rfm_score'] >= 12 else '一般价值'
    
    return rfm_results

# 使用上面的customer_data
rfm_data = rfm_analysis(customer_data, '2024-04-01')
for customer, data in rfm_data.items():
    print(f"客户 {customer}: R={data['recency']}天, F={data['frequency']}, M={data['monetary']}元, 评分={data['rfm_score']}, 分段={data['segment']}")

3.3 提升复购率的策略

3.3.1 会员体系设计

# 示例:会员等级计算代码
def calculate_membership_level(total_spent, purchase_count):
    """
    根据消费金额和次数计算会员等级
    """
    if total_spent >= 5000 or purchase_count >= 10:
        return "钻石会员"
    elif total_spent >= 2000 or purchase_count >= 5:
        return "黄金会员"
    elif total_spent >= 500 or purchase_count >= 2:
        return "白银会员"
    else:
        return "普通会员"

# 示例
customer_id = "C001"
total_spent = 2500
purchase_count = 6
level = calculate_membership_level(total_spent, purchase_count)
print(f"客户 {customer_id} 的会员等级: {level}")

3.3.2 个性化推荐系统

# 示例:简单的协同过滤推荐算法
def collaborative_filtering_recommendation(user_item_matrix, target_user, k=3):
    """
    基于用户的协同过滤推荐
    user_item_matrix: 用户-物品评分矩阵
    target_user: 目标用户
    k: 推荐数量
    """
    from math import sqrt
    
    # 计算用户相似度(余弦相似度)
    def cosine_similarity(user1, user2):
        # 获取两个用户的共同评分物品
        common_items = set(user1.keys()) & set(user2.keys())
        
        if not common_items:
            return 0
        
        # 计算分子和分母
        numerator = sum(user1[item] * user2[item] for item in common_items)
        denominator = sqrt(sum(user1[item]**2 for item in user1.keys())) * sqrt(sum(user2[item]**2 for item in user2.keys()))
        
        return numerator / denominator if denominator != 0 else 0
    
    # 找到最相似的k个用户
    similarities = []
    for user, items in user_item_matrix.items():
        if user != target_user:
            sim = cosine_similarity(user_item_matrix[target_user], items)
            similarities.append((user, sim))
    
    # 排序并选择最相似的k个用户
    similarities.sort(key=lambda x: x[1], reverse=True)
    top_similar_users = similarities[:k]
    
    # 为目标用户推荐物品
    recommendations = {}
    for similar_user, similarity in top_similar_users:
        for item, rating in user_item_matrix[similar_user].items():
            if item not in user_item_matrix[target_user]:
                if item not in recommendations:
                    recommendations[item] = 0
                recommendations[item] += rating * similarity
    
    # 排序推荐结果
    sorted_recommendations = sorted(recommendations.items(), key=lambda x: x[1], reverse=True)
    
    return sorted_recommendations[:k]

# 示例数据:用户-物品评分矩阵(1-5分)
user_item_matrix = {
    '用户1': {'商品A': 5, '商品B': 4, '商品C': 3},
    '用户2': {'商品A': 4, '商品B': 5, '商品D': 2},
    '用户3': {'商品B': 3, '商品C': 5, '商品D': 4},
    '目标用户': {'商品A': 4, '商品C': 2}
}

recommendations = collaborative_filtering_recommendation(user_item_matrix, '目标用户')
print("推荐商品:")
for item, score in recommendations:
    print(f"  {item}: 预测评分 {score:.2f}")

四、客户满意度:品牌口碑的守护者

4.1 客户满意度的衡量方法

客户满意度通常通过以下方式衡量:

  • NPS(净推荐值):客户推荐意愿
  • CSAT(客户满意度评分):直接满意度评分
  • CES(客户费力度):解决问题的容易程度
  • 评价评分:商品评分和评论内容

4.2 客户满意度的量化分析

4.2.1 NPS计算与分析

# 示例:NPS计算与分析
def calculate_nps(responses):
    """
    计算净推荐值(NPS)
    responses: 客户评分列表(0-10分)
    """
    promoters = len([r for r in responses if r >= 9])  # 推荐者
    passives = len([r for r in responses if 7 <= r <= 8])  # 被动者
    detractors = len([r for r in responses if r <= 6])  # 贬损者
    
    total = len(responses)
    nps = ((promoters - detractors) / total) * 100
    
    print("NPS分析结果:")
    print("-" * 50)
    print(f"总样本数: {total}")
    print(f"推荐者 (9-10分): {promoters} ({promoters/total*100:.1f}%)")
    print(f"被动者 (7-8分): {passives} ({passives/total*100:.1f}%)")
    print(f"贬损者 (0-6分): {detractors} ({detractors/total*100:.1f}%)")
    print(f"NPS值: {nps:.1f}")
    
    if nps >= 50:
        print("评价: 优秀")
    elif nps >= 30:
        print("评价: 良好")
    elif nps >= 0:
        print("评价: 一般")
    else:
        print("评价: 需要改进")
    
    return {
        'nps': nps,
        'promoters': promoters,
        'passives': passives,
        'detractors': detractors
    }

# 示例数据
nps_responses = [9, 10, 8, 7, 9, 10, 6, 5, 9, 10, 8, 9, 4, 10, 9]
nps_result = calculate_nps(nps_responses)

4.2.2 评价评分趋势分析

# 示例:商品评分趋势分析
def rating_trend_analysis(rating_data):
    """
    分析商品评分趋势
    rating_data: 包含日期和评分的列表
    """
    from collections import defaultdict
    from datetime import datetime
    
    # 按月份分组
    monthly_ratings = defaultdict(list)
    for item in rating_data:
        date = datetime.strptime(item['date'], '%Y-%m-%d')
        month_key = f"{date.year}-{date.month:02d}"
        monthly_ratings[month_key].append(item['rating'])
    
    # 计算每月平均分
    print("商品评分月度趋势:")
    print("-" * 50)
    print(f"{'月份':<10} {'评分数量':<10} {'平均分':<10} {'趋势':<10}")
    print("-" * 50)
    
    sorted_months = sorted(monthly_ratings.keys())
    prev_avg = None
    
    for month in sorted_months:
        ratings = monthly_ratings[month]
        avg_rating = sum(ratings) / len(ratings)
        
        trend = "稳定"
        if prev_avg is not None:
            if avg_rating > prev_avg + 0.2:
                trend = "上升"
            elif avg_rating < prev_avg - 0.2:
                trend = "下降"
        
        print(f"{month:<10} {len(ratings):<10} {avg_rating:.2f}     {trend:<10}")
        prev_avg = avg_rating

# 示例数据
rating_data = [
    {'date': '2024-01-15', 'rating': 4.5},
    {'date': '2024-01-20', 'rating': 4.2},
    {'date': '2024-02-05', 'rating': 4.8},
    {'date': '2024-02-10', 'rating': 4.6},
    {'date': '2024-03-01', 'rating': 4.3},
    {'date': '2024-03-15', 'rating': 4.1},
    {'date': '2024-03-20', 'rating': 4.0}
]

rating_trend_analysis(rating_data)

4.2.3 评论情感分析

# 示例:简单的情感分析(需要jieba库)
def sentiment_analysis(comments):
    """
    简单的情感分析
    注意:实际应用中建议使用专业的情感分析API或模型
    """
    # 简单的关键词匹配(实际应用应使用NLP模型)
    positive_words = ['好', '满意', '喜欢', '棒', '优秀', '推荐', '值得']
    negative_words = ['差', '不满意', '讨厌', '糟糕', '后悔', '垃圾', '差评']
    
    results = []
    for comment in comments:
        positive_count = sum(1 for word in positive_words if word in comment)
        negative_count = sum(1 for word in negative_words if word in comment)
        
        if positive_count > negative_count:
            sentiment = "正面"
            score = 1
        elif negative_count > positive_count:
            sentiment = "负面"
            score = -1
        else:
            sentiment = "中性"
            score = 0
        
        results.append({
            'comment': comment,
            'sentiment': sentiment,
            'score': score
        })
    
    return results

# 示例数据
comments = [
    "产品质量很好,非常满意!",
    "物流太慢了,体验很差。",
    "一般般,没什么特别的感觉。",
    "强烈推荐,超出预期!",
    "后悔购买,质量不行。"
]

sentiment_results = sentiment_analysis(comments)
for result in sentiment_results:
    print(f"评论: {result['comment']} -> 情感: {result['sentiment']}")

4.3 提升客户满意度的策略

4.3.1 客户反馈闭环管理

# 示例:客户反馈处理系统
class CustomerFeedbackSystem:
    def __init__(self):
        self.feedback_data = []
        self.action_items = []
    
    def add_feedback(self, customer_id, rating, comment, category):
        """添加客户反馈"""
        feedback = {
            'customer_id': customer_id,
            'rating': rating,
            'comment': comment,
            'category': category,
            'status': 'new',
            'timestamp': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        }
        self.feedback_data.append(feedback)
        
        # 自动创建改进任务
        if rating <= 3:
            self.create_action_item(customer_id, comment, category)
    
    def create_action_item(self, customer_id, comment, category):
        """创建改进任务"""
        action = {
            'customer_id': customer_id,
            'issue': comment,
            'category': category,
            'priority': 'high' if '严重' in comment or '非常' in comment else 'medium',
            'assigned_to': None,
            'status': 'pending',
            'created_at': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        }
        self.action_items.append(action)
        print(f"⚠️  已创建改进任务: {category} - {comment[:50]}...")
    
    def get_feedback_stats(self):
        """获取反馈统计"""
        if not self.feedback_data:
            return None
        
        total = len(self.feedback_data)
        avg_rating = sum(f['rating'] for f in self.feedback_data) / total
        high_rating = len([f for f in self.feedback_data if f['rating'] >= 4])
        low_rating = len([f for f in self.feedback_data if f['rating'] <= 2])
        
        return {
            'total': total,
            'avg_rating': avg_rating,
            'satisfaction_rate': (high_rating / total) * 100,
            'issue_rate': (low_rating / total) * 100,
            'pending_actions': len([a for a in self.action_items if a['status'] == 'pending'])
        }

# 使用示例
feedback_system = CustomerFeedbackSystem()
feedback_system.add_feedback('C001', 2, "产品质量严重问题,与描述不符", "产品质量")
feedback_system.add_feedback('C002', 5, "物流很快,包装完好,非常满意", "物流服务")
feedback_system.add_feedback('C003', 3, "客服回复慢,解决问题用了2天", "客户服务")

stats = feedback_system.get_feedback_stats()
if stats:
    print("\n反馈统计:")
    print(f"总反馈数: {stats['total']}")
    print(f"平均评分: {stats['avg_rating']:.2f}")
    print(f"满意率: {stats['satisfaction_rate']:.1f}%")
    print(f"问题率: {stats['issue_rate']:.1f}%")
    print(f"待处理改进项: {stats['pending_actions']}")

4.3.2 快速响应机制

  • 建立SLA(服务等级协议)

    • 咨询响应时间 < 2小时
    • 投诉处理时间 < 24小时
    • 退换货处理时间 < 48小时
  • 智能客服系统

    • 7×24小时自动回复
    • 常见问题知识库
    • 人工客服转接机制

五、综合评估体系:构建店铺健康度仪表盘

5.1 综合评分模型

# 示例:电商店铺健康度综合评分模型
class StoreHealthScore:
    def __init__(self):
        self.weights = {
            'conversion_rate': 0.3,      # 转化率权重
            'repurchase_rate': 0.3,      # 复购率权重
            'customer_satisfaction': 0.4 # 客户满意度权重
        }
    
    def calculate_health_score(self, metrics):
        """
        计算店铺健康度综合评分
        metrics: 包含各指标值的字典
        """
        # 转换率评分(0-100分)
        conversion_score = min(metrics['conversion_rate'] * 10, 100)
        
        # 复购率评分(0-100分)
        repurchase_score = min(metrics['repurchase_rate'] * 2, 100)
        
        # 客户满意度评分(0-100分)
        satisfaction_score = min(metrics['customer_satisfaction'] * 20, 100)
        
        # 综合评分
        total_score = (
            conversion_score * self.weights['conversion_rate'] +
            repurchase_score * self.weights['repurchase_rate'] +
            satisfaction_score * self.weights['customer_satisfaction']
        )
        
        # 健康等级
        if total_score >= 80:
            health_level = "优秀"
            color = "🟢"
        elif total_score >= 60:
            health_level = "良好"
            color = "🟡"
        elif total_score >= 40:
            health_level = "一般"
            color = "🟠"
        else:
            health_level = "危险"
            color = "🔴"
        
        return {
            'total_score': round(total_score, 1),
            'health_level': health_level,
            'color': color,
            'breakdown': {
                'conversion': round(conversion_score, 1),
                'repurchase': round(repurchase_score, 1),
                'satisfaction': round(satisfaction_score, 1)
            }
        }

# 示例:计算健康度
health_model = StoreHealthScore()
sample_metrics = {
    'conversion_rate': 3.2,      # 3.2%
    'repurchase_rate': 25,       # 25%
    'customer_satisfaction': 4.5 # 4.5/5
}

result = health_model.calculate_health_score(sample_metrics)
print("店铺健康度评估结果:")
print(f"综合评分: {result['total_score']} {result['color']} {result['health_level']}")
print(f"  转化率评分: {result['breakdown']['conversion']}")
print(f"  复购率评分: {result['breakdown']['repurchase']}")
print(f"  满意度评分: {result['breakdown']['satisfaction']}")

5.2 数据仪表盘实现

# 示例:简单的文本仪表盘
def display_dashboard(metrics_data):
    """
    显示店铺健康度仪表盘
    """
    print("\n" + "="*60)
    print("电商店铺健康度仪表盘")
    print("="*60)
    
    # 转化率部分
    print("\n📊 转化率指标")
    print("-" * 30)
    print(f"当前转化率: {metrics_data['conversion_rate']:.2f}%")
    print(f"目标转化率: {metrics_data['target_conversion_rate']:.2f}%")
    print(f"完成度: {metrics_data['conversion_rate']/metrics_data['target_conversion_rate']*100:.1f}%")
    
    # 复购率部分
    print("\n🔄 复购率指标")
    print("-" * 30)
    print(f"当前复购率: {metrics_data['repurchase_rate']:.2f}%")
    print(f"目标复购率: {metrics_data['target_repurchase_rate']:.2f}%")
    print(f"完成度: {metrics_data['repurchase_rate']/metrics_data['target_repurchase_rate']*100:.1f}%")
    
    # 满意度部分
    print("\n😊 客户满意度指标")
    print("-" * 30)
    print(f"当前满意度: {metrics_data['customer_satisfaction']:.2f}/5.0")
    print(f"NPS值: {metrics_data['nps']}")
    print(f"好评率: {metrics_data['positive_rate']:.1f}%")
    
    # 综合健康度
    health_score = StoreHealthScore().calculate_health_score({
        'conversion_rate': metrics_data['conversion_rate'],
        'repurchase_rate': metrics_data['repurchase_rate'],
        'customer_satisfaction': metrics_data['customer_satisfaction']
    })
    
    print("\n🏥 综合健康度")
    print("-" * 30)
    print(f"健康评分: {health_score['total_score']} {health_score['color']} {health_score['health_level']}")
    
    # 改进建议
    print("\n💡 改进建议")
    print("-" * 30)
    if health_score['breakdown']['conversion'] < 60:
        print("• 优化购物流程,提升转化率")
    if health_score['breakdown']['repurchase'] < 60:
        print("• 加强会员运营,提升复购率")
    if health_score['breakdown']['satisfaction'] < 60:
        print("• 改善客户服务,提升满意度")
    
    print("\n" + "="*60)

# 示例数据
sample_dashboard_data = {
    'conversion_rate': 3.2,
    'target_conversion_rate': 4.0,
    'repurchase_rate': 25,
    'target_repurchase_rate': 30,
    'customer_satisfaction': 4.5,
    'nps': 42,
    'positive_rate': 85.5
}

display_dashboard(sample_dashboard_data)

六、实施建议与最佳实践

6.1 数据收集与整合

  1. 建立统一的数据仓库

    • 整合订单数据、用户行为数据、客服数据
    • 确保数据质量和一致性
  2. 自动化数据收集

    • 使用Google Analytics、Mixpanel等工具
    • 部署事件跟踪代码

6.2 监控与预警机制

# 示例:监控预警系统
class MonitoringAlertSystem:
    def __init__(self, thresholds):
        self.thresholds = thresholds
        self.alerts = []
    
    def check_metrics(self, current_metrics):
        """检查指标是否触发预警"""
        for metric, value in current_metrics.items():
            if metric in self.thresholds:
                threshold = self.thresholds[metric]
                if value < threshold['min'] or value > threshold['max']:
                    alert = {
                        'metric': metric,
                        'value': value,
                        'threshold': threshold,
                        'level': 'warning' if abs(value - threshold['min']) < 1 else 'critical'
                    }
                    self.alerts.append(alert)
                    self.send_alert(alert)
    
    def send_alert(self, alert):
        """发送预警通知"""
        # 实际应用中可以集成邮件、短信、钉钉等通知
        print(f"🚨 预警: {alert['metric']} 当前值 {alert['value']}, 阈值 {alert['threshold']}, 级别 {alert['level']}")

# 使用示例
thresholds = {
    'conversion_rate': {'min': 2.0, 'max': 10.0},
    'repurchase_rate': {'min': 15, 'max': 50},
    'customer_satisfaction': {'min': 3.5, 'max': 5.0}
}

monitor = MonitoringAlertSystem(thresholds)
current_metrics = {
    'conversion_rate': 1.8,  # 低于阈值
    'repurchase_rate': 25,
    'customer_satisfaction': 4.2
}

monitor.check_metrics(current_metrics)

6.3 持续优化循环

  1. PDCA循环

    • Plan:基于数据分析制定优化计划
    • Do:执行优化措施
    • Check:监控指标变化
    • Act:总结经验,持续改进
  2. 定期复盘

    • 每周分析核心指标变化
    • 每月进行深度复盘
    • 每季度调整运营策略

七、总结

电商店铺健康度评估是一个系统工程,需要将转化率、复购率和客户满意度有机结合。通过本文提供的分析方法和代码示例,您可以:

  1. 精准衡量:建立科学的评估体系,避免盲目决策
  2. 快速定位:通过细分分析找到问题根源
  3. 有效改进:基于数据制定针对性优化策略
  4. 持续监控:建立预警机制,及时发现并解决问题

记住,数据是客观的,但解读数据需要业务洞察力。建议将本文提供的分析方法与您的实际业务经验相结合,不断优化评估模型,最终形成适合您店铺的专属健康度评估体系。