# Rate Code 与结算价格 ## 安全立场 Rate Code 必须由当前证据和本 reference 唯一支持。不要只凭 room code 猜。若 channel、market、room text、UP marker、price、breakfast、restaurant 或 supplier 上下文不足,输出人工复核。 ## 已知规则 | 场景 | Typical Rate Code | | --- | --- | | QBD 普通 DBL/TWN 且无 `U` 或 Upgrade marker | `GRPA1-900` | | QBD `U-DBL` / `U-TWN` / `U-TRP` 或 Upgrade marker | `GRPA2-850UP` 或对应 UP rate code | | LianTai 普通 DBL/TWN 或 Sup DBL/Sup TWN | `GRP1-900` | | LianTai `U-DBL` / `U-TWN` | `WHO1-850UP` | | LianTai `ST+K` / `2卧1厅` / `FAMILY 1` 且价格 1200 | `WHO3-1200` | 价格示例: - 850 -> `WHO1-850UP` - 900 -> `GRP1-900` - 1000 -> `WHO2-1000` - 1200 -> `WHO3-1200` 渠道和上下文优先于单纯价格。 ## `U-` 例如 `U-1200`: - 数字部分视为 settlement price / price marker。 - 保留 `rate_code_raw = "U-1200"`。 - 数字命中已知规则时输出命中。 - 数字不可读或未覆盖时人工复核。 - 绝不写入 confirmation/reservation/booking reference 字段。 ## 控房/配额默认 示例: - `U-DBL` -> room `RM2`,settlement price 850。 - `U-TWN` -> room `RM3`,settlement price 850。 - `U-TRP` / `FAM` -> room `RM4`,settlement price 1275。 仅当事件明确是 new Allotment / Control Block、房型唯一映射,且当前没有不同明确规则时使用。 ## 手工价格 当需要人工维护 settlement price: ```json { "rate_code": null, "settlement_price": null, "manual_settlement_price_required": true, "manual_price_reason_code": "", "price_evidence": [] } ``` 手工价格仍要求目标、日期/room items、price text 和系统上下文安全。 ## 复合价格 对于 `2000THB+500`、`1800+500`、`2000THB*2 +500*2`: - 只用可分离的 base room price 判断 Rate Code / settlement price。 - additional component 交给 `52-fix-charge.md`。 - 不得把组件相加后当单一房价。 ## 人工复核 - channel/market 未知或冲突。 - raw room type 无法唯一映射。 - UP marker 与普通 rate path 冲突。 - price marker 不可读。 - price 未命中任何规则。