# P8→NS1/RNS1 缺失项 #5：看板数据的实时性标识

## 简要结论
- 状态：❌ 未解决
- 风险等级：🟠 中
- 三个看板页面均无"数据更新于 XX:XX"的展示，后端 API 响应中也无数据截止时间字段。

## 详细审查

### 审查范围
- `apps/backend/app/schemas/xcx_board.py`（三个 Response schema）
- `apps/miniprogram/miniprogram/pages/board-finance/board-finance.wxml`
- `apps/miniprogram/miniprogram/pages/board-coach/board-coach.wxml`
- `apps/miniprogram/miniprogram/pages/board-customer/board-customer.wxml`
- 全局搜索关键词：`更新于`、`updated_at`、`dataTime`、`updateTime`、`截止`

### 发现

1. **后端 Schema 无数据截止时间字段**
   - `CoachBoardResponse`：仅包含 `items` 和 `dim_type`
   - `CustomerBoardResponse`：仅包含维度数据列表
   - `FinanceBoardResponse`：仅包含 6 个 Panel，无时间戳
   - 三个 Response 均无 `data_updated_at`、`snapshot_time` 等字段

2. **前端页面无数据更新时间展示**
   - 全局搜索 `更新于`、`updated_at`、`dataTime`、`updateTime`、`截止` 在 board 相关文件中均无匹配
   - 三个看板页面的 WXML 模板中无任何时间戳展示区域

3. **财务看板有"预估"标签但非实时性标识**
   - `board-finance` 中有 `isCurrentMonth` 判断，当月数据显示"（预估）"后缀
   - 这是数据性质标识，不是数据截止时间

### 证据

```python
# 三个 Response schema 均无时间戳字段
class CoachBoardResponse(CamelModel):
    items: list[CoachBoardItem]
    dim_type: str

class FinanceBoardResponse(CamelModel):
    overview: OverviewPanel
    recharge: RechargePanel | None
    revenue: RevenuePanel
    cashflow: CashflowPanel
    expense: ExpensePanel
    coach_analysis: CoachAnalysisPanel
    # 缺少: data_updated_at / snapshot_time
```

```
# 全局搜索结果
grep "更新于|updated_at|dataTime|updateTime|截止" **/board-*/**
→ No matches found.
```

### 建议
1. **后端**：在三个 BoardResponse 中增加 `data_updated_at: datetime` 字段，返回 DWS 层最后一次 ETL 刷新时间
2. **前端**：在每个看板页面顶部（Tab 下方或筛选栏下方）展示"数据更新于 HH:MM"
3. 数据来源可从 ETL 调度记录表（如 `dws.etl_run_log`）获取最后成功执行时间
4. 建议格式：当天数据显示"更新于 14:30"，非当天显示"更新于 03-20 14:30"
