paper2skills Playbook

Bundle Pricing Strategy(捆绑定价策略)

Skill-Bundle-Pricing-Strategy · 17-价格优化

causalexperimentforecastingoptimizationpricing供应链与补货定价与利润WF-A 智能补货WF-D 选品扫描WF-F 动态定价
年化 ROI10-15 万
实现难度⭐⭐☆☆☆
业务视角
适用角色定价负责人 / 运营负责人 · 选品负责人 · CEO
适用平台Amazon Buy Box 竞价策略 · 多市场价格协调 · Prime Day / Coupon 折扣优化
什么情况下用竞品突然降价,不知道该不该跟,跟了怕伤利润不跟怕丢 BSR;大促期间不知道折扣给多少,给多了利润没了
成功是什么样的实时监控竞品价格并自动触发调价,毛利率保持在目标区间,BSR 排名和利润同时兼顾
业务痛点
竞品降价了不知道要不要跟大促折扣给多少没有依据手动盯价格太累反应不及时新品上线定价高了还是低了

1. 解决的问题

1+1>2 的定价魔法——吸奶器 + 配件捆绑包的总价不是简单相加,而是利用消费者对捆绑包的心理估值高于单品之和(或互补品的联合需求),找到最大化总利润的捆绑价格。

2. 核心算法逻辑

1+12 的定价魔法——吸奶器 + 配件捆绑包的总价不是简单相加,而是利用消费者对捆绑包的心理估值高于单品之和(或互补品的联合需求),找到最大化总利润的捆绑价格。

3. 业务应用场景

业务问题:S1 吸奶器单品 $129,配件包(法兰+奶瓶+储奶袋)单品 $39。发现购买吸奶器的用户 60%+ 会在 30 天内回购配件。设计捆绑包"S1 Complete Set"应该定价多少?

数据要求:吸奶器购买用户的配件回购率 + 时间间隔 + 竞品捆绑包价格(Momcozy Complete $149)

预期产出: - 纯捆绑分析:$P_{bundle}^* = \$152$(基于估值分布优化) - 混合捆绑:单品 $129 + $39,捆绑包 $149(低于纯捆绑最优但高于竞品) - 混合捆绑策略使总利润 +18% vs 纯单品:既捕获了"全买"用户的高客单价,又不丢失"只买主机"用户

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • ROI 预估:捆绑使配件回购率 60%→85%,客单价 +$20,年化 $10-15 万
  • 实施难度:⭐⭐☆☆☆(2 星)
  • 优先级评分:⭐⭐⭐⭐☆(4 星)— 母婴天然适合捆绑(主机+耗材)

7. 代码模板

代码块数量:1 · 路径:未检测到

"""Bundle Pricing Strategy — 混合捆绑定价优化"""

import numpy as np
from scipy.optimize import minimize_scalar


def pure_bundle_optimal_price(
    cost_a: float, cost_b: float,
    va_mean: float, va_std: float,
    vb_mean: float, vb_std: float,
    synergy: float = 0.1
) -> float:
    """纯捆绑最优价格"""
    bundle_cost = cost_a + cost_b
    
    def neg_profit(price):
        # 捆绑估值分布(正态假设)
        bundle_value_mean = va_mean + vb_mean + synergy * (va_mean + vb_mean)
        bundle_value_std = np.sqrt(va_std**2 + vb_std**2)
        prob_buy = 1 - _norm_cdf(price, bundle_value_mean, bundle_value_std)
        return -(price - bundle_cost) * prob_buy
    
    res = minimize_scalar(neg_profit, bounds=(bundle_cost, va_mean+vb_mean*2), method='bounded')
    return res.x


def mixed_bundle_simulate(
    cost_a: float, cost_b: float,
    prices: dict,  # {'single_a':, 'single_b':, 'bundle':}
    n_users: int = 10000
) -> dict:
    """混合捆绑模拟"""
    np.random.seed(42)
    va = np.random.normal(120, 30, n_users)
    vb = np.random.normal(35, 15, n_users)
    synergy = np.random.uniform(0, 0.15, n_users)
    vbundle = va + vb + synergy * (va + vb)
    
    # 用户决策
    profits = {'single_a': 0, 'single_b': 0, 'bundle': 0, 'total': 0}
    
    for i in range(n_users):
        options = {
            'none': 0,
            'single_a': va[i] - prices['single_a'],
            'single_b': vb[i] - prices['single_b'],
            'bundle': vbundle[i] - prices['bundle'],
        }
        best = max(options, key=options.get)
        
        if best == 'single_a':
            profits['single_a'] += prices['single_a'] - cost_a
        elif best == 'single_b':
            profits['single_b'] += prices['single_b'] - cost_b
        elif best == 'bundle':
            profits['bundle'] += prices['bundle'] - cost_a - cost_b
    
    profits['total'] = profits['single_a'] + profits['single_b'] + profits['bundle']
    return profits

8. 论文来源

未自动抽取;请查看原始 Skill 卡片。