日期:自然日与业务日
期间:财务周、月、季、年
规则:4-4-5、关账与闰周
状态:开放、预关账、已关账
比较:同比周与可比期间
结论:时间不是一个日期字段就够了
订单按自然日发生,门店按营业日复盘,财务按关账期间确认。直接用日期函数计算月份,会让经营报表与财务报告落入不同边界。
应建立共享日历维度,把每个日期映射到业务日、财务周、财务月、季度和年度,并声明默认分析视角。
4-4-5 日历需要显式规则
4-4-5 周历按完整周组织季度,年度可能出现第 53 周。模型要记录周起始日、期间编号、闰周处理和每个版本的生效范围。
不要把财务月简单写成自然月别名,也不要用固定 28 或 35 天推算未来期间。
业务日期与事件时间分开
跨午夜营业、时区、延迟入账和退款会使事件时间与归属日期不同。事实表同时保留原始时间、标准时区时间和业务归属日期,规则变化时才能追溯。
关账后调整应记录调整期间和原期间,避免静默改写已发布数字。
比较必须选择可比期间
去年同日、同周序号、同财务期间和同营业天数回答不同问题。节假日移动和第 53 周尤其会扭曲同比。
指标语义应声明默认比较方法,并向用户展示当前区间、对照区间及完整度。
用边界日期完成验收
测试年末跨期、月末关账、跨午夜门店、闰年、53 周和迟到数据,核对日、周、月汇总与财务台账。
BuildTable 可作为组织日历与指标时间语义的候选工具;日历生成、关账状态、历史版本与调整处理需在项目中确认。
