P paper2skillsPlaybook
AI 路线图 →

ATP/CTP动态承诺交期计算 — 基于实时库存+PLT的订单交货承诺日期引擎

Skill-Order-Promise-Date-Calculation · 24-标签工程

causalexperimentforecastingoptimization供应链与补货WF-A 智能补货WF-D 选品扫描
实现难度⭐⭐⭐☆☆
业务视角
适用角色数据架构师 / 供应链数字化负责人 · CTO · 数据工程师 · 供应链团队
什么情况下用多平台数据孤岛导致断货识别延迟8小时;标签覆盖率不足使AI决策触发率<30%;想实现分析→行动自动闭环但不知从何下手
成功是什么样的统一 Tag Schema + 传播引擎将标签覆盖率从 30% 提升至 97%;Palantir 风格 Object-Action-Writeback 将补货响应从 2 天缩短至 4 小时自动触发
业务痛点
多平台 SKU 编码混乱无法统一合规标签手工维护遗漏频繁预测模型有了但结果无法自动触发采购标签打了但没有质量监控

1. 解决的问题

运营面临"承诺交期不准导致大量差评"——ATP/CTP引擎将承诺准确率从70%提升至92%,减少30%因交期不准导致的退款

2. 核心算法逻辑

ATP(AvailabletoPromise) 和 CTP(CapabletoPromise) 是订单承诺的两个层次:

3. 业务应用场景

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

4. 输入数据要求

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

5. 输出结果

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

6. 业务价值 / ROI

  • ROI预估:动态承诺日期准确率从70%→92%,减少因承诺不准导致的差评约30%;Amazon Delivery Promise准确率是Prime资格的核心指标,提升2pp可减少约5%的退款率
  • 实施难度:⭐⭐⭐☆☆(依赖准确的库存数据和PLT参数,算法本身较清晰)
  • 优先级评分:⭐⭐⭐⭐⭐(承诺交期直接影响转化率和客户满意度,Amazon将其列为账号健康核心指标)

7. 代码模板

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

"""
ATP/CTP 动态承诺交期计算引擎
功能:ATP计算 / CTP推导 / 承诺日期生成 / 可靠性标签 / 批量承诺
"""
from dataclasses import dataclass, field
from datetime import datetime, timedelta
from typing import Optional
import warnings
warnings.filterwarnings('ignore')


@dataclass
class SKUSupplyPosition:
    sku_id: str
    warehouse_id: str
    on_hand_qty: int
    reserved_qty: int
    planned_receipts: list = field(default_factory=list)  # [(date, qty)]
    plt_p85_days: float = 35.0
    daily_demand: float = 10.0

    @property
    def atp_today(self) -> int:
        return max(0, self.on_hand_qty - self.reserved_qty)

    @property
    def dos(self) -> float:
        return self.on_hand_qty / max(0.1, self.daily_demand)


@dataclass
class PromiseResult:
    order_id: str
    sku_id: str
    requested_qty: int
    promise_type: str      # ATP / CTP / PARTIAL / REJECT
    promise_date: Optional[datetime]
    available_qty: int
    reliability: str       # HIGH / MEDIUM / LOW
    reason: str
    tags: dict = field(default_factory=dict)


class PromiseDateEngine:

    TRANSIT_DAYS = {
        ("WH-NJ", "US-East"): 2, ("WH-NJ", "US-Midwest"): 4,
        ("WH-CA", "US-West"): 2, ("WH-CA", "US-East"): 5,
    }

    def calculate_promise(self, order_id: str, sku_pos: SKUSupplyPosition,
                           qty: int, destination: str, priority: str) -> PromiseResult:
        now = datetime.now()
        transit = self.TRANSIT_DAYS.get((sku_pos.warehouse_id, destination), 4)

        # 场景1: ATP充足
        if sku_pos.atp_today >= qty and sku_pos.dos >= 7:
            promise_date = now + timedelta(days=1 + transit)  # 1天出库+运输
            reliability = "HIGH" if sku_pos.dos >= 14 else "MEDIUM"
            return PromiseResult(

8. 论文来源

  • 2308.09823
  • 2402.11234