1.9 KiB
Reflection: Derive Report Watermarks From Business Facts
Trigger
The user corrected the proposed monthly cutoff source: the Opera XML filename has no date, and the monthly “更新至”
must come from the table's ARRIVAL field.
Expected Behavior
Identify the authoritative business field before deriving a report period or label. Use the committed facts actually included in the report, not transport metadata, upload names, request time or a nearby technical date.
Actual Behavior
Earlier planning left the cutoff derivation policy open and existing code accepted a request cutoff, which allowed a
7.30 filename even though the maximum included ARRIVAL was 7.27.
Root Cause
- Source identity was conflated with business time.
- An internal request field was trusted without reconciling it to the generated dataset.
- The output label was validated structurally but not against the report's semantic maximum date.
Evidence
- User correction on 2026-07-30.
- The pre-fix manual workbook was named “更新至7.30” while included rows ended at
ARRIVAL=2026-07-27. - The repaired live report stores
as_of_date=2026-07-27and core validation enforces equality with max includedARRIVAL.
Lesson
For derived period labels, trace the value to the authoritative business column and assert it again against the final dataset. Filenames and wall-clock timestamps are provenance/audit data, not business watermarks unless the domain explicitly says otherwise.
Action
- Encode max-included-
ARRIVALin ADR-001 and durable business rules. - Derive worker scope through
daily_version_idlookups rather than payload/filename dates. - Reject any non-empty monthly report whose stored
as_of_datediffers from its maximum includedARRIVAL.
Promotion
Promoted to ADR-001, the data flow, business rules, migration column comment and monthly core/worker tests.