标准推广日志 HTML 诊断
把同一品牌可取得的标准推广逐轮日志合并分析,输出一个可离线打开的 HTML。网页必须包含完整覆盖范围、稳定预警、门店结论、逐日图表和日时段明细,不能把关键内容拆到网页之外。
执行
- 定位同一品牌的全部标准 CSV。尽可能纳入完整历史,不要只取最新一天;不同品牌分开生成。
- 运行:
python3 scripts/generate_html_report.py --input "<CSV1绝对路径>" "<CSV2绝对路径>" --output "<报告.html>"
- 读取终端输出的
OUTPUT_JSON,确认 HTML 存在并核对覆盖天数、工作日/周末天数、有效日时段数、90%以上预警数和100%持续预警数。 - 在 Codex 中打开生成的 HTML,并把文件交付给用户;同时用中文概括最可靠的时段结论及覆盖不足的预警。
输入与判断
- 至少识别轮次时间、门店名和时段名;其它兼容字段与异常公式见 references/rules.md。
- 空值表示未知,不解释为零或正常。缺少必要字段时停止并指出字段,不把零售版日志猜测转换成标准版。
- 全天数据均可参与,不设置10:00或10:30截断。
- 先按自然日判断异常,再按“门店 × 工作日/周末 × 固定时段 × 同一问题”汇总,禁止跨天拼接连续轮次。
多日时段预警(硬规则)
- 工作日为周一至周五,周末为周六、周日,两类证据不得混算。
- 命中率 = 命中日数 ÷ 该时段有效观察天数。缺少该时段有效数据的日期不进入分母,也不补零。
- 达到90%必须输出“高频预警”;达到100%必须输出“持续预警”。网页必须展示命中日/观察日和百分比。
- 只有1个有效观察日的100%预警仍需展示,但标为“覆盖有限”,不得与3/3天、2/2天写成同等强度的稳定结论。
- 90%以下不进入稳定预警区,仍保留在对应日期的明细证据中。
HTML 交付要求
- 单文件、自包含、可离线打开;CSS、JavaScript、数据和SVG图表全部嵌入,不使用CDN或外部字体。
- 首页先展示覆盖范围、预警总数和按证据强度排序的结论;门店导航可直接跳转。
- 固定时段是页面的首要视觉信息:优先结论卡以大字号独占展示时段,门店名、工作日/周末、规则和建议均作为次级信息;预警表、图表标签与明细表中的时段字号也必须明显大于普通正文。
- 每家门店展示稳定预警、预算信息以及按日期分组的完整图表和日时段表。
- 每个固定时段使用相同展示宽度,时段内轮次按顺序等距,不按真实时间比例排列;无数据位置保留固定空间。
- 报价画阶梯线,逐轮花费画柱形,理论花费画虚线;不绘制调价散点。
- 鼠标移入任一轮次的图表位置时,必须立即显示固定时段、轮次时间、报价、实际花费和理论花费,并高亮当前轮次;不可只依赖浏览器延迟出现的原生提示。
- 页面须适配宽屏和手机、支持横向滚动、折叠日期、打印及全文搜索。
- 结论和表头使用中文;技术字段只可存在于网页内嵌数据中,不出现在运营结论。
- 异常判断公式只用于计算和证据核验,面向运营人员的提示必须改写为直白结果语言。例如,“达到上限后连续3轮实际消耗不高于理论消耗”展示为“报价已经顶到上限,钱还是花不出去”;“至少3轮触达下限且实际消耗超过理论消耗150%”展示为“多次压到最低报价,钱仍然花得太快”。
异常口径
- P0:未触下限,单轮实际消耗超过理论消耗500%,优先下调上限0.1元。
- P1:时段内至少3轮触达下限且实际消耗超过理论消耗150%,下调起始价/下限0.1元。
- P2:连续3轮可上调且实际消耗不高于理论消耗,或达到上限后连续3轮实际消耗不高于理论消耗,试探上调相应边界0.1元。
- 同一时段可命中多条规则;展示命中次数、首次证据窗口及建议,冲突建议必须并列呈现而非相互覆盖。
失败处理
- 输出前创建目标目录;同名报告可以覆盖,因为用户明确要求重新生成同一交付物。
- 若HTML生成失败,保留具体CSV、字段或编码错误;不上传日志到外部服务。