2026-10-23 更新。时间系列第 17—21 章已按 Launcher 0.1.38 / CLI 0.1.25 整体复审待阅。#158~#161 复测通过,空值输出与诊断说明同步;教学端口 40 次 CLI 查询执行、2 次 HTTP 执行及 3 项预期拒绝通过,见升级与验证。旧版初验与故障证据保留。
从“按日期计算”,走向“让 AI 理解业务中的时间”:选对日期、确定期间、解释缺失,区分流量与存量,再分析业务耗时和客户随时间的变化。常用规则尽量固化到语义模型,让 AI 选择范围和指标,不必每次重新推导。
按 四章重点实操,加一章选讲 组织,正式占第 17—21 章。按用户最新要求,同期群也在本批完成,正文只交代最小必要的阶段计算,不提前展开整套 Compose/CTE 接口。
| 专题 | 深度 | 主要业务问题 | 数据安排 |
|---|---|---|---|
| 一:期间比较与窗口计算 | 重点,现第十七章 | 比上月/去年怎样?累计多少?最近一段表现如何? | 沿用 Chinook 与现有时间 QM |
| 二:业务日期、日历与可比期间 | 重点 | 按什么日期?哪些天算业务期间?本月未结束,怎样公平比较? | 从 Chinook 缺日现象出发,再选 WWI 的实际日期字段;增加明确标注的教学日历 |
| 三:存量、快照与历史时点 | 重点,现第十九章 | 月底余额/库存是多少?怎样算平均存量?历史归属按当时还是现在? | 独立教学流水、变更日与连续日快照,明确未知历史;未部署 WWI |
| 四:业务耗时、逾期与时效 | 重点,现第二十章 | 从开始到完成多久?哪些还没完成?超时占多少? | 11 条独立教学事件,固定截止,模型适配 SQLite 自然小时 |
| 五:同期群、复购与留存 | 选讲,现第二十一章 | 同批客户后续表现怎样?多久没有购买?观察时间是否足够? | Chinook 样本内首购,加独立虚构边界表;不虚构注册时间或访问日志 |
专题二的第十八章正文使用 Chinook 加教学日历、模拟入库时间,未切换 WWI;初验在 Launcher 0.1.36 改用普通日期属性声明角色,14 项执行和 1 项拒绝通过;当前 0.1.38 代表回归也已核对,见实操记录。WWI 留给后续确有业务数据需要的专题,不为更换案例先铺整套环境。
保留第十七章的同比、环比、YTD/MTD、LAG、calendar/observed 滚动,不再扩写为时间需求大全。
主问题:“截至某日,本月比上月同期怎样?”用同一个问题串起日期选择、统计截止和期间对齐。
timeWindow。now、-7D 等日期表达式解析,但具体入口和时区行为待实测;历史样例不能拿机器当天直接当业务当前日。引擎落点: 日期维度、多个日期关联、普通 slice/groupBy、固定计算字段;业务日切点可评估固定的计算日期轴,不能只改字段描述。先验证日历为主表的关联方案,必要时在准备层形成完整日序列,再通过 TM/QM 查询。自定义工作日和财年属于建模规则,不宣称有一个通用 timeWindow 开关。
带一下: ISO 周与跨年周、财年/财季、营业日切点、时区及夏令时;星期/月份的简单周期分布可作短例,不展开季节性分解。跨时区先明确源时间含义和转换规则,不让 AI 猜。
验收: 日期轴不串用;补齐前后金额一致;零值与未知不混淆;跨月/跨年/短月边界符合约定;两期覆盖长度及截止可解释。新的周历或部分期间能力逐项验证,不能由月同比通过推断。
主问题:“本月发生多少”和“月底还剩多少”,为什么不能用同一个 SUM?
MAX(balance) 代替最新余额,也不能只取全表最大的日期就认为覆盖了所有对象。引擎落点: 日期筛选、聚合及 TM/QM;0.1.38 已验证“每对象 MAX 日期 → 对应记录 → 目录 LEFT JOIN”的完整嵌套路径,以及日快照和日均。不会因有 LAG、MAX 或窗口函数就宣称存在通用的期末值/历史查询算子。
验收: 期初+变动=期末;对象无当日记录时处理正确;缺期初明确报告;不跨日期累加余额;加权平均可逐段复算。没有真实历史的数据不冒充 WWI 原始快照。
主问题:“处理通常要几天?哪些仍未完成或已经逾期?”
引擎落点: 文档中的日期差、条件表达式、固定/临时计算字段、slice/having 与条件聚合。日期差单位、跨日取整、空值和实际方言必须先测;完成后的常用口径进入 TM/QM,查询端仅选范围和分组。
带一下: 工作时长扣除周末/假期需要业务日历;单位营业/运行时长的效率指标必须有可靠时长分母。复杂暂停恢复、多次返工和完整事件漏斗留后续组合分析,不在这里堆接口。
验收: 同日、跨日、缺结束时间、恰好达到阈值、结束早于开始;已完成与未完成分母正确;固定参考日期后结果可复现。观察尚未结束的对象不与已观察完整周期的对象直接比较最终表现。
主问题:“不同月份首次购买的客户,之后的复购表现怎样?”
引擎落点: MIN、客户—月去重与固定月份属性,加上 Compose 分阶段聚合/关联;0.1.36 已实际验证。引擎返回同期群规模及实际购买人数,结果整理脚本按固定观察截止补零/空并计算比例;不是原生留存 DSL,也没有在准备层预先计算首购结果。
验收: 手工选择少量客户追踪;每客户每月只计一次;月偏移正确;人数、分母和未到观察期一致;不越过用户可见历史追查隐藏数据。
| 业务需求 | 安排 |
|---|---|
| 同比、环比、累计、滚动、前期值 | 专题一重点,保留已有实操 |
| 多日期角色、日历、缺期、可比期间与数据截止 | 专题二重点 |
| 期初期末、余额库存与平均存量 | 专题三重点;历史归属与修订值带一下 |
| 耗时、逾期、未完成与分段分布 | 专题四重点;营业/工作时长带一下 |
| 同期群、复购、留存 | 专题五选讲,组合查询后再实践;流失/回流带一下 |
| 季节性和周期性 | 专题二带星期/月分布;不做完整时间序列分解 |
| 复杂漏斗与事件路径 | 移交分阶段与组合分析系列 |
| 归因窗口、领先滞后关系 | 组合分析中简述;延迟相关不等于因果,不承诺通用归因能力 |
| 预测与剩余时间估计 | 说明依赖外部统计/预测方法,本系列不做专章;不以 LLM 直接猜数替代预测 |
| 实时流处理、复杂事件匹配、双时间历史管理 | 当前不展开 |
| 能力 | 当前依据 | 对大纲的约束 |
|---|---|---|
| 月同环比、YTD/MTD、LAG、calendar/observed 滚动 | 0.1.35 已有 Chinook SQLite 实测 | 可保留正文;不扩大到所有粒度、数据库和聚合器 |
| 日期角色、自维度/独立日期维表、多个日期关联 | 第十八章已在 0.1.36 上验证普通日期属性、角色和用途的 JSON/Markdown,以及日历与跨年周字段 | #155 旧版失败留在历史记录;其他新增日期关联仍需验证 |
| 相对日期、计算日期轴 | 对应提交中的 RelativeDateParser 及时间窗口设计 | 源码存在解析和规划路径;公开入口、基准日、时区及新计算轴场景待实测 |
| 日期差、条件表达式、窗口和聚合表达式 | 0.1.38 实测 DATEDIFF、TIMESTAMPDIFF、非法参数拒绝及原耗时模型回归 | 日历日期差、完整单位与小数耗时有不同用途;其他方言仍需实际验证 |
| QM 多 TM JOIN、聚合 JOIN;Compose 校验/预览/执行 | 基础第十四章、第十八章日历及 0.1.38 期末记录/同期群实际形状 | 嵌套右侧列传播问题已修复;通过结论仍限定已验形状,不推广为任意组合 |
| 自定义日历、完整时间轴、快照与历史有效期 | 需要业务数据、模型或准备层;时间窗口设计明确未包办自定义日历和补齐 | 不写成原生自动补日历、自动还原历史 |
| 通用留存、因果归因、预测 | 第二十一章只验证购买同期群组合方案,不支持原生通用能力承诺 | 留存按组合方案选讲;归因与预测仅说明分工 |
主要参考:
189b8b5617c724193a1943e65a849806628a28e1,新场景尚未实测。第 17—21 章按“一 → 二 → 三 → 四 → 五”阅读,本轮已按 0.1.38 更新并整体自审,交用户统一审阅。旧故障与替代方案转入历史记录,正文采用已验证的新用法。旧 18/19 语义 SQL 草稿文件未覆盖,仍为历史素材编号。
| 现稿 | 当前实操落点 |
|---|---|
| 第十九章:存量与快照 | 直接嵌套 JOIN、期末与空历史、完整性、流水与日均;0.1.38 已验证 |
| 第二十章:业务耗时 | 日历差/完整单位与小数小时分开;固定模型回归及一秒阈值通过 |
| 第二十一章:同期群 | 首购、去重、分母、跨年、观测零与未观测;发行包与教学代表回归通过 |
各章仍按“业务问题 → 确认口径与数据 → 创建/修改模型 → 查询 → 独立核对”推进,创建与查询分步,提示词保持简短。查询 Markdown 由引擎实时生成,结束列出本章 Foggy 知识点。WWI 是否有适用字段和历史先探查,教学补充数据保留来源与生成规则;不为演示虚构源库事实。
本轮自审:第十七章负责计算,专题二负责期间定义,三负责存量,四负责耗时,五负责对象随时间变化;共同的权限、元数据和回归方法引用前文,不重复介绍。新增专题都标出数据前提与验收,未将设计文档或 capability 标记当作新场景已通过。