P paper2skillsPlaybook
AI 路线图 →

P&L Attribution Analysis(SKU 级损益归因分析)

Skill-PL-Attribution-Analysis · 23-运营财务

causalexperimentforecastingoptimizationpricing广告与投放供应链与补货定价与利润WF-A 智能补货WF-B 广告优化WF-F 动态定价
年化 ROI10-30 万元
实现难度⭐⭐☆☆☆
业务视角
适用角色CFO / 财务负责人 · CEO · 运营负责人
适用平台Amazon Seller Central · Amazon SP API · FBA 报告 · 多货币财务系统
什么情况下用月度 FBA 账单 15 万但不知道哪些 SKU 在亏损;大促备货资金不够但不知道缺口多少;整体利润率 18% 但不知道是哪条产品线在拖累
成功是什么样的SKU 级 P&L 实时可见,FBA 费用长库龄提前预警,大促现金流缺口提前识别,融资窗口精准规划
业务痛点
FBA 费用算不清楚现金流紧张不知道哪里漏了哪个 SKU 真正赚钱看不见财务数据滞后一个月才出来

1. 解决的问题

月度总利润率 18% 但不知道是哪个 SKU 在拖累整体——P&L 四层拆解(毛利/运营/净利/因果归因修正)识别亏损 SKU,停止无效广告投放年节省 10-30 万元

2. 核心算法逻辑

核心思想:跨境电商的 P&L 必须拆解到 SKU × 渠道 × 市场三个维度,才能识别「哪个 SKU 真正在赚钱」「哪个渠道拉高了整体亏损」。传统 P&L 只看总账,导致高毛利 SKU 补贴低毛利 SKU 的情况长期不可见。

3. 业务应用场景

业务痛点:某母婴品牌月度总利润率看起来 18%,但不知道是哪些 SKU 在拉高还是拖低。吸奶器主力款和配件款的真实利润完全不清楚。

分析结论示例: | SKU | 毛利率 | 运营利润率 | 净利润率 | 状态 | |-----|--------|-----------|---------|------| | 吸奶器 S1 主机 | 52% | 24% | 19% | ✅ 核心利润源 | | 吸奶器配件包 | 61% | 38% | 31% | ✅ 高利润,低广告依赖 | | 婴儿推车 L1 | 38% | 8% | 2% | ⚠️ 高运费侵蚀利润 | | 奶粉定制款 | 28% | -5% | -12%| ❌ 广告费过高,亏损 |

决策:停止奶粉定制款广告投放,将预算转移到配件包;推车单独计算物流方案。

4. 输入数据要求

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

5. 输出结果

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

6. 业务价值 / ROI

10-30 万元

7. 代码模板

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

from dataclasses import dataclass

@dataclass
class SKUPLData:
    sku: str
    revenue: float
    cogs: float
    head_haul: float
    platform_commission_pct: float
    fba_fee: float
    ad_spend: float
    return_cost: float
    fx_adjustment: float = 0.0
    ad_attribution_fraction: float = 1.0

def compute_pl(d: SKUPLData) -> dict:
    gross_profit = d.revenue - d.cogs - d.head_haul
    platform_fee = d.revenue * d.platform_commission_pct
    operating_profit = gross_profit - platform_fee - d.fba_fee - d.ad_spend
    net_profit = operating_profit - d.return_cost + d.fx_adjustment

    causal_ad_revenue = d.ad_spend / max(d.ad_attribution_fraction, 0.01) * d.ad_attribution_fraction
    naive_ad_revenue  = d.ad_spend / max(d.ad_attribution_fraction, 0.01)
    attribution_adj   = -(naive_ad_revenue - causal_ad_revenue)
    adjusted_profit   = net_profit + attribution_adj

    def pct(v):
        return round(v / d.revenue * 100, 1) if d.revenue else 0.0

    status = "盈利" if adjusted_profit > 0 else "亏损"
    if pct(adjusted_profit) < 5 and adjusted_profit > 0:
        status = "微利"

    return {
        "sku": d.sku, "revenue": d.revenue,
        "gross_margin": pct(gross_profit),
        "operating_margin": pct(operating_profit),
        "net_margin": pct(net_profit),
        "adjusted_margin": pct(adjusted_profit),
        "status": status,
    }

skus = [
    SKUPLData("吸奶器S1", 100000, 28000, 5000, 0.15, 3000, 8000, 2000,  0,   0.85),
    SKUPLData("配件包",   30000,  8000, 1500, 0.15,  800, 1500,  500,  0,   0.95),
    SKUPLData("婴儿推车", 50000, 22000, 7000, 0.15, 4000, 5000, 3000,  0,   0.80),
    SKUPLData("奶粉定制", 20000, 10000, 2000, 0.15, 1500, 8000,  800,  0,   0.60),
]
print(f"{'SKU':<10} {'毛利%':>7} {'运营%':>7} {'净利%':>7} {'归因调整%':>9} {'状态'}")
print("-" * 55)
for s in skus:
    r = compute_pl(s)
    print(f"{r['sku']:<10} {r['gross_margin']:>7} {r['operating_margin']:>7} "
          f"{r['net_margin']:>7} {r['adjusted_margin']:>9} {r['status']}")

print("\n[✓] P&L Attribution Analysis 测试通过")

8. 论文来源

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