LLMForecaster Seasonal Event — LLM 增强的季节性事件需求预测
Skill-LLMForecaster-Seasonal-Event · 04-供应链
causalexperimentforecastingrecommendationmulti_agent广告与投放供应链与补货推荐与搜索MAS与智能体工程WF-A 智能补货WF-B 广告优化WF-F 动态定价WF-G Listing内容优化WF-I 智能体工程WF-L 内容营销增长
年化 ROI30-80 万元
实现难度⭐⭐☆☆☆
业务优先级⭐⭐⭐⭐⭐
业务视角
适用角色供应链负责人 · 采购负责人 · CEO / 运营 VP
适用平台Amazon FBA · 海外仓 · 多国仓位(美/欧/日)
什么情况下用库存周转率低,资金压在海外仓出不来;SKU 断货紧急空运,物流成本吃掉毛利;多仓库存分布不均
成功是什么样的库存周转天数从 90 天降到 60 天,断货率 <3%,海外仓综合成本降低 15-25%
业务痛点
1. 解决的问题
Prime Day 促销力度/KOL 合作/竞品断货等信息在传统预测模型里完全缺失,导致备货严重错误——LLM 读取促销文案生成需求修正系数,备货准确率提升 15-23%、年化减少断货积压损失 30-80 万元
2. 核心算法逻辑
核心思想:传统时序预测模型(ARIMA/Prophet/LightGBM)只能看到历史销量数字,对"明天有双十一大促且同时发了网红推广"这类信息完全盲目。LLMForecaster 将 LLM 作为后处理器:先用传统时序模型预测基线,再让 LLM 读取促销文案、活动描述等非结构化文本,输出一个修正系数(Δ),最终预测 = 基线 + Δ。
3. 业务应用场景
- 业务问题:Prime Day 是全年最大出货节点,但"促销力度 40% off + 头部 KOL 合作推广 + 竞品主要型号断货"这些信息在传统预测模型里全部缺失,导致备货要么严重不足要么大量积压。 - 数据要求:近 2 年周度销量历史 + 当次活动描述文本(折扣力度、广告预算、KOL 名单、竞品动态)。 - 预期产出: - 活动期日均销量预测(P10/P50/P90 三个场景) - 修正系数说明("本次相比去年 Prime Day 力度提升 15%,预测上调 18%") - 建议备货量(含安全库存缓冲) - 业务价值:备货准确率提升 15-23%,减少因断货导致的 BSR 排名下滑,年化
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
- ROI 预估:备货准确率 +15-23%,减少断货/积压损失 30-80 万元/年
- 实施难度:⭐⭐☆☆☆(低,无需训练模型,接入 LLM API 即可)
- 优先级:⭐⭐⭐⭐⭐(大促备货是母婴跨境最高频、最高风险的决策场景)
- 评估依据:论文在大型零售商数据上验证 MAPE 降低 15-23%
7. 代码模板
代码块数量:2 · 路径:未检测到
from dataclasses import dataclass
from typing import Optional
import statistics
@dataclass
class SalesHistory:
weekly_sales: list
event_weeks: dict
@dataclass
class EventContext:
name: str
discount_pct: float
kol_count: int
budget_multiplier: float
competitor_oos: bool
description: str
def baseline_forecast(history: SalesHistory, horizon_weeks: int = 2) -> float:
recent = history.weekly_sales[-12:]
return round(statistics.mean(recent), 1)
def compute_event_multiplier(ctx: EventContext, historical_multipliers: dict) -> float:
base_mult = historical_multipliers.get(ctx.name, 2.5)
discount_adj = 1 + (ctx.discount_pct - 30) / 100
kol_adj = 1 + ctx.kol_count * 0.05
budget_adj = ctx.budget_multiplier
oos_adj = 1.15 if ctx.competitor_oos else 1.0
multiplier = base_mult * discount_adj * kol_adj * budget_adj * oos_adj
return round(multiplier, 2)
def llm_forecaster(history: SalesHistory, event: EventContext,
historical_multipliers: dict) -> dict:
baseline = baseline_forecast(history)
multiplier = compute_event_multiplier(event, historical_multipliers)
p50 = round(baseline * multiplier)
p10 = round(p50 * 0.75)
p90 = round(p50 * 1.35)
safety_stock = round(p90 * 0.15)
return {
"baseline_weekly": baseline,
"event_multiplier": multiplier,
"forecast_p10": p10,
"forecast_p50": p50,
"forecast_p90": p90,
"recommended_stock": p90 + safety_stock,
"explanation": (f"基线周均 {baseline} 件,活动乘数 {multiplier}x "
f"(折扣{event.discount_pct}% + {event.kol_count}个KOL + "
f"预算{event.budget_multiplier}x{' + 竞品断货' if event.competitor_oos else ''})")
}
history = SalesHistory(
weekly_sales=[820, 850, 790, 900, 860, 880, 910, 870, 840, 920, 890, 950],
event_weeks={"prime_day_2024": 3200, "black_friday_2024": 2800}
)
event = EventContext(
name="prime_day", discount_pct=40, kol_count=3,
budget_multiplier=1.2, competitor_oos=True,
description="Prime Day 2026: 40% off + 3位头部KOL + 主要竞品断货"
)8. 论文来源
- 2412.02525