> **目标**：6 个上游渠道 × 6 个模型，价格各不相同。本方案先定**基准价**（渠道报价中位数，**内部**用来对上游价格做分类），再定**平台统一模型定价**（对用户的价格：一个模型一个价，不分渠道），并按倍率划分三个分组 **cost-effective（<1）/ auto（=1）/ high-performance（>1）**，让**一个渠道可以同时属于多个组**——最终实现：**无论用户创建的 Key 落在哪个分组，平台都能获得商业利益最大化**。

---

## 一、问题：多渠道多模型价格不同，怎么定价？

接入多个上游渠道、提供多个模型时，最头疼的问题就是**价格五花八门**：

- 同一个模型，不同渠道报价差异很大（有的便宜、有的贵）；
- 渠道成本差直接决定利润空间；
- 对所有用户收一个价，要么价高吓跑价格敏感用户，要么价低损失利润；
- 按渠道分别定价，价格体系混乱、难以维护。

因此需要：**① 用「基准价」在内部把上游渠道/模型价格分好类；② 给用户定一个平台统一的模型价格（一个模型一个价，不分渠道）；③ 再围绕用户价按分组倍率分档，让不同 Key 各取所需，同时保证平台每个分组都盈利。**

> **核心原则：内部价格（基准价）与对外价格（用户价）是两套不同的价格，不要混用。**

---

## 二、基准价（内部）：怎么定、用来干什么

**基准价 = 该模型在全部渠道报价的「中位数」**。

> **基准价是内部管理价，只用来对上游价格做分类，不是对用户的售价**。对用户的价格见第三节。

**内部用途（对上游价格分类）**：

- 对每个模型，把渠道报价与基准价比较：**报价 < 基准价** → 低成本渠道（便宜，天然适合进 cost-effective 等低倍率组）；**报价 ≥ 基准价** → 高成本渠道（贵，只能进高倍率组或被剔除）；
- 这是内部**粗分类**，某渠道×模型最终能否进某个组，仍以第六节的**利润 > 0** 判断为准；
- 基准价还用来理解渠道成本结构、指导组内权重分配。

为什么用**中位数**而不是平均价？

- **抗极端值**：个别渠道恶意报高价/低价不会拉偏基准价；
- **代表市场普遍行情**：反映大多数渠道的真实成本水平；
- **可解释**：规则简单透明，人人能算。

例：某模型 6 渠道报价 `[8, 9, 10, 11, 12, 14]`，中位数 = `(10+11)/2 = 10.5`，即为该模型的内部**基准价**。

---

## 三、对用户的价格：平台统一模型定价

> **平台统一模型定价：一个模型，不管用户请求最终被路由到哪个渠道，对用户都是同一个价格**。

- **定价权在平台**：参考市场价、竞品价、目标利润率自主设定，**不必等于基准价**（两套价格互相独立）；
- 示例：在基准价基础上上浮 10%~15% 取整（如 M1 基准 10.5 → 用户价 12.0）；
- **用户实际支付 = 平台统一模型定价 × Key 分组倍率**（见下节）；
- 渠道成本差异只影响平台利润，用户完全感知不到渠道差异。

---

## 四、三个分组：倍率档位（每个分组设置多少合适？）

围绕**平台统一模型定价（用户价）**，划分三个分组（倍率 = 对用户价的应用系数）：

| 分组 | 倍率 | 实付 = 用户价 × 倍率 | 定位 |
|------|------|---------------------|------|
| **cost-effective** | **< 1**（取 0.9） | 低于统一价 | 性价比 |
| **auto** | **= 1**（取 1.0） | 等于统一价 | 均衡型（默认） |
| **high-performance** | **> 1**（取 1.1） | 高于统一价 | 高性能/稳定偏好 |

> **Key 选到哪个分组，就按对应倍率付费**；**平台只需保证每个组内都有盈利渠道，并按利润分配流量**，即可做到「用户选哪个组，平台都利益最大化」。

### 倍率怎么定：每个分组设置多少合适？

倍率没有绝对标准，**0.9 / 1.0 / 1.1 是推荐起步值**，可按以下原则调整：

| 分组 | 建议区间 | 调整原则 |
|------|---------|---------|
| **cost-effective** | **0.8 ~ 0.95** | 下限受成本约束：必须满足 **倍率 ≥ 最便宜渠道成本 ÷ 用户价**，保证 ce 组至少有一个渠道盈利；建议再留冗余，让**组内至少有 2~3 个盈利渠道**（即倍率 ≥ 第 3 便宜渠道成本 ÷ 用户价），避免渠道故障时无路可走。 |
| **auto** | **固定 1.0** | 均衡型锚点，一般不调。 |
| **high-performance** | **1.05 ~ 1.2** | 上限参考用户对高性能/稳定性的付费意愿与竞品价格；定太高会把用户推向 ce 或直接劝退，定太低与 auto 拉不开差距。 |

> **每次调整倍率后，都要重跑一遍利润判断**（见 Step 4），确认每个分组至少保留多个盈利渠道、组内不存在赔本渠道。

---

## 五、分组设置在 Key 上（重要修正：用户本身不分组）

> 旧观点：「把用户分到某个组」——**不准确**。**用户本身不分组**，分组是 **API Key 的属性**。

- 用户在**创建 Key** 时，为这个 Key 选择分组：**cost-effective（性价比）/ auto（均衡型）/ high-performance（高性能）**；
- **同一个用户可以创建多个 Key**，分别挂不同分组（例如：自己日常用 ce 的 Key，给高要求客户发 hp 的 Key）；
- Key 属于哪个组，该 Key 发出的请求就**按对应倍率计费**，并且**只在该分组的渠道里路由**；
- **auto（均衡型）**：用户不指定性价比或高性能偏好，按平台统一模型定价（1.0×）付费；对平台来说 **auto 同样是利益最大化**——用户不挑档位，平台可以**完全按利润导向自由路由**，把流量导给利润最高的渠道，自由度最大。

> 修正前文档中的「用户分到哪个组，就按对应倍率付费」，应统一理解为「**Key 选到哪个组，就按对应倍率付费**」。

---

## 六、渠道与分组的关系：渠道×模型如何分类？

> 旧观点：「一个渠道只能属于一个组」——**不准确**。

在支持多分组的平台中，**一个渠道可以同时属于多个组**，实现方式：

1. **渠道条目拆分**：一个上游渠道按分组拆成多个渠道条目（如 `甲-ce`、`甲-auto`、`甲-hp`），复用**同一个上游 key**，分别挂到不同组；
2. **渠道配置多组**：若平台渠道的 group 字段支持多个值，直接让一个渠道记录归属多个组。

**渠道×模型分类规则（商业利益最大化的关键）**：

> 对某个模型，渠道能否加入某个组，取决于该组售价下**利润是否为正**：
> **利润 = 该组售价（用户价 × 倍率） − 渠道成本 > 0** → 可以加入该组（拆成对应条目）。
> 利润 ≤ 0 → 不加入该组。

因此，**便宜渠道往往同时出现在多个组**（它在任何档位都盈利），而昂贵渠道只出现在高倍率组（甚至任何组都不进、彻底剔除）。

---

## 七、完整示例：6 渠道 × 6 模型，一步步实现商业利益最大化

### Step 1：输入 6 个渠道对 6 个模型的成本报价（元 / 百万 tokens）

| 渠道 | M1 | M2 | M3 | M4 | M5 | M6 |
|------|----|----|----|----|----|----|
| **甲** | 8.0 | 15.0 | 12.0 | 14.0 | 13.0 | 16.0 |
| **乙** | 9.0 | 10.0 | 16.0 | 11.0 | 12.0 | 13.0 |
| **丙** | 11.0 | 12.0 | 13.0 | 12.0 | 14.0 | 15.0 |
| **丁** | 14.0 | 9.0 | 15.0 | 13.0 | 16.0 | 12.0 |
| **戊** | 10.0 | 11.0 | 14.0 | 15.0 | 9.0 | 14.0 |
| **己** | 12.0 | 13.0 | 10.0 | 16.0 | 11.0 | 17.0 |

### Step 2：内部定基准价 + 对外定用户价（两套价格）

| 模型 | 6 渠道报价排序 | 基准价（内部，中位数） | 平台统一模型定价（用户价，示例上浮后取整） |
|------|---------------|----------------------|------------------------------------------|
| M1 | 8, 9, 10, 11, 12, 14 | **10.5** | **12.0** |
| M2 | 9, 10, 11, 12, 13, 15 | **11.5** | **13.0** |
| M3 | 10, 12, 13, 14, 15, 16 | **13.5** | **15.0** |
| M4 | 11, 12, 13, 14, 15, 16 | **13.5** | **15.0** |
| M5 | 9, 11, 12, 13, 14, 16 | **12.5** | **14.0** |
| M6 | 12, 13, 14, 15, 16, 17 | **14.5** | **16.0** |

> 基准价只用于内部把渠道分成低成本/高成本两类；**用户按用户价 × 分组倍率付费**。

### Step 3：设定三个分组的实付价（用户价 × 倍率）

以 **M1（用户价 12.0）** 为例：

| 分组 | 倍率 | M1 实付 |
|------|------|--------|
| cost-effective | 0.9 | **10.8** |
| auto | 1.0 | **12.0** |
| high-performance | 1.1 | **13.2** |

### Step 4：判断每个渠道在各分组的利润，决定归属（利润 > 0 才入组）

M1 三档实付价下的利润矩阵：

| 渠道 | 成本 | ce 10.8 利润 | auto 12.0 利润 | hp 13.2 利润 |
|------|------|-------------|---------------|--------------|
| 甲 | 8.0 | **+2.8** ✓ | **+4.0** ✓ | **+5.2** ✓ |
| 乙 | 9.0 | **+1.8** ✓ | **+3.0** ✓ | **+4.2** ✓ |
| 戊 | 10.0 | **+0.8** ✓ | **+2.0** ✓ | **+3.2** ✓ |
| 丙 | 11.0 | −0.2 ✗ | **+1.0** ✓ | **+2.2** ✓ |
| 己 | 12.0 | −1.2 ✗ | 0.0 ✗ | **+1.2** ✓ |
| 丁 | 14.0 | −3.2 ✗ | −2.0 ✗ | −0.8 ✗ |

**结论（体现"一个渠道可属多个组"）**：
- **甲、乙、戊**：三个组全部盈利 → 同时属于 **ce / auto / hp** 三组；
- **丙**：ce 亏损、auto/hp 盈利 → 属于 **auto / hp** 两组；
- **己**：仅 hp 盈利 → 只属于 **hp** 组；
- **丁**：任何组都亏损 → **剔除，不提供该模型服务**。

### Step 5：渠道拆分配置（一个渠道 → 多个组条目）

| 渠道条目 | 分组 | M1 成本 | 组内实付 | 单位利润 |
|---------|------|--------|---------|---------|
| 甲-ce | cost-effective | 8.0 | 10.8 | **2.8** |
| 乙-ce | cost-effective | 9.0 | 10.8 | **1.8** |
| 戊-ce | cost-effective | 10.0 | 10.8 | **0.8** |
| 甲-auto | auto | 8.0 | 12.0 | **4.0** |
| 乙-auto | auto | 9.0 | 12.0 | **3.0** |
| 戊-auto | auto | 10.0 | 12.0 | **2.0** |
| 丙-auto | auto | 11.0 | 12.0 | **1.0** |
| 甲-hp | high-performance | 8.0 | 13.2 | **5.2** |
| 乙-hp | high-performance | 9.0 | 13.2 | **4.2** |
| 戊-hp | high-performance | 10.0 | 13.2 | **3.2** |
| 丙-hp | high-performance | 11.0 | 13.2 | **2.2** |
| 己-hp | high-performance | 12.0 | 13.2 | **1.2** |

> 各条目复用同一上游 key，仅分组与绑定模型不同。

### Step 6：组内权重按利润导向，保证每个组都利益最大化

同一组内，**单位利润越高 → 权重越大**，把组内流量压给最赚钱的渠道：

| 分组 | 渠道条目 | 单位利润 | 权重 |
|------|---------|---------|------|
| cost-effective | 甲-ce | 2.8 | **100** |
| cost-effective | 乙-ce | 1.8 | **65** |
| cost-effective | 戊-ce | 0.8 | **30** |
| auto | 甲-auto | 4.0 | **100** |
| auto | 乙-auto | 3.0 | **75** |
| auto | 戊-auto | 2.0 | **50** |
| auto | 丙-auto | 1.0 | **25** |
| high-performance | 甲-hp | 5.2 | **100** |
| high-performance | 乙-hp | 4.2 | **80** |
| high-performance | 戊-hp | 3.2 | **60** |
| high-performance | 丙-hp | 2.2 | **40** |
| high-performance | 己-hp | 1.2 | **25** |

> **效果**：无论用户创建的 Key 选 ce / auto / hp 哪个分组，组内流量都优先流向利润最高的渠道，平台在每个组都赚取最大利润——这正是「用户选哪个组，平台都商业利益最大化」。

### Step 7：对 M2–M6 重复 Step 2–6，得到全量方案

每个模型执行同一套流程：**内部基准价 → 对外用户价 → 三档实付（用户价×倍率）→ 利润判断 → 渠道按组拆分 → 组内权重分配**，即可输出整套 6×6 定价与分流配置表（略，方法与 M1 完全一致）。

---

## 八、代码实现（可复用工具）

以上「用户价定价 → 分组规划 → 权重分配」已封装为脚本：**`scripts/channel_pricing_plan.py`**。你只需提供价格矩阵 CSV 和一个**收益预期值**，即可自动生成完整方案（Markdown 报告 + 结构化 JSON）。

### 1. 输入文件（价格矩阵 CSV）

示例文件：`docs/example_prices.csv`

```csv
渠道, M1, M2, M3, M4, M5, M6
甲, 8.0, 15.0, 12.0, 14.0, 13.0, 16.0
乙, 9.0, 10.0, 16.0, 11.0, 12.0, 13.0
丙, 11.0, 12.0, 13.0, 12.0, 14.0, 15.0
丁, 14.0, 9.0, 15.0, 13.0, 16.0, 12.0
戊, 10.0, 11.0, 14.0, 15.0, 9.0, 14.0
己, 12.0, 13.0, 10.0, 16.0, 11.0, 17.0
```

> 若某渠道不支持某模型，价格留空即可；脚本会跳过该「渠道×模型」组合。

### 2. 用法

```bash
# 收益预期 20%（毛利率），用户价按 0.5 取整，输出 Markdown 报告
python3 scripts/channel_pricing_plan.py docs/example_prices.csv --margin 0.2 --round 0.5

# 输出到文件 + 结构化 JSON（定价/分组/权重，便于程序化落地）
python3 scripts/channel_pricing_plan.py docs/example_prices.csv --margin 0.25 --out plan.md --json plan.json

# 收益预期口径：gross = 毛利率 利润/售价（默认）；markup = 加成率 利润/成本
python3 scripts/channel_pricing_plan.py prices.csv --margin 0.2 --mode markup

# 自定义分组倍率（顺序：ce auto hp）
python3 scripts/channel_pricing_plan.py prices.csv --margin 0.2 --ratio 0.85 1.0 1.15
```

### 3. 计算流程（与本文档完全一致）

```python
base[m]     = median(全部渠道对 m 的报价)                # ① 基准价（内部，只做分类）
up[m]       = base[m] / (1 - margin)                     # ② 用户价（对外，一个模型一个价）
price[m][g] = up[m] * ratio[g]                           # ③ 三档实付 = 用户价 × 倍率
入组: price[m][g] - 渠道成本 > 0                         # ④ 分组规划（利润 > 0 才入组）
weight      = 100 × 组内单位利润占比（按绑定模型取平均）  # ⑤ 组内权重，映射 1~100
```

> 完整实现见 `scripts/channel_pricing_plan.py`，包含：中位数基准价、收益预期反推用户价、三分组利润判断、渠道按组拆分、利润导向权重、覆盖度检查与警告（空组 / 单点风险）、Markdown 报告与 JSON 输出。

---

## 九、总结

1. **基准价（内部）**：渠道报价中位数，**只用于内部对上游价格做分类**（低成本/高成本渠道），**不对用户收费**；
2. **平台统一模型定价（对用户的价格）**：一个模型一个价、不分渠道，平台自主定价（参考市场/竞品/目标利润率，可上浮或下浮基准价）；
3. **分组倍率作用在用户价上**：cost-effective（建议 0.8~0.95）/ auto（固定 1.0）/ high-performance（建议 1.05~1.2），实付 = 用户价 × 倍率；调整倍率后务必重跑利润判断，保证每组多个盈利渠道；
4. **用户不分组（重要修正）**：分组挂在 **Key** 上，创建 Key 时选 cost-effective / auto / high-performance；同一用户可创建多个不同分组的 Key；
5. **auto 即均衡型**：按统一模型定价付费，用户不挑档位，平台可完全按利润导向自由路由——对平台同样是利益最大化；
6. **渠道可属多组**：一个渠道按分组拆分成多个条目（复用同一上游 key），或直接配置多组；归属条件是**该组售价下利润 > 0**；
7. **利润导向权重**：每个组内按单位利润分配权重，流量导向最赚钱渠道；
8. **商业利益最大化**：用户创建的 Key 无论落在哪个分组，组内所有渠道均盈利、流量分配最优化，平台在每个分组都能获得最大利益；亏损渠道一律剔除，避免赔本赚吆喝。
