feat(statistics): holiday and event context for investor analytics #161
Labels
No labels
blocked
bug
enhancement
high-priority
low-priority
needs-info
needs-triage
ready-for-agent
ready-for-human
referenced
research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gabogg/hikcentral#161
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Maintainer request
Open holidays must remain included in statistics. Add an events concept and deck presentation for holidays and events, giving investors and analysts context for unusual figures. Example: a major World Cup match draws crowds to the mall screens without changing opening hours or being a holiday.
An event annotation is distinct from a schedule exception: it may explain unusual traffic without changing hours or implying a sensor fault. Treat this as analytical context, not proof of causation.
Further triage required
Related: #108 (schedule terminology), #114 (scheduled configuration changes).
This captures an accepted product direction, not a completed implementation specification. Keep needs-triage until the interview settles these decisions.
Confirmed triage resolution — 2026-09-27
This resolution supersedes the further-triage list above. Maintainer confirmed the complete shared understanding and authorized publication.
Accepted scope and behavior
and exceptional closures. Rename UI wording and documentation first; retain
compatible API routes and storage names.
remain in statistics. Holidays may have different operating hours; event
annotations do not change hours or imply closure, faulty data or causation.
events. Any overlap marks the entire facility business cycle as an Event Day.
An event spanning the reset marks both cycles.
uncertainty estimates, sample maturity or Usual Weekday Baselines. Independent
integrity checks still run; passing days can remain trusted for statistics.
from future learning and usual comparisons; do not automatically recompute the
existing calibration. A separately reviewed recalculation remains separate work.
edit history and require a reason for changes affecting completed days.
All users authorized to view statistics can read the annotations.
marked dates and a context list in week/month views, and context in statistics
exports. Comparisons remain descriptive and do not claim event causation.
marker that can optionally supply special hours. Renovations and emergency
closures remain schedule exceptions without automatically becoming holidays.
The current code's classification of every dated override as a holiday must
not define the new domain distinction.
a timed interval or a range of whole business days. Input uses facility time
with its timezone shown. Timed intervals require start before end and exclude
their end instant; an event ending exactly at reset does not mark the next cycle.
Structured event categories are not required for the first release.
eligibility to days no longer marked as holidays or events, subject to their
independent quality checks. Preserve already-applied calibration and edit history.
eligibility rules. Preserve their operating hours and closure settings; do not
infer holiday identity from entry names.
matching operating hours, while never supplying that baseline themselves. Show
the existing insufficient-baseline reason when there are too few usable days.
Implementation and verification
Separate schedule overrides, holiday identity, event annotations, calibration learning eligibility and statistical data quality. Preserve #113's historical schedule rules and #114's effective-date rules: historical context edits do not silently change operating hours or applied calibration; prospective holiday hours follow the existing schedule activation rules.
Acceptance checks cover reset-boundary overlap, overlapping events, whole-business-day ranges, independent integrity verdicts, exclusion from every learning/uncertainty/maturity/baseline source, eligible atypical-day comparisons, historical edits and removals, admin authorization and edit reasons, classification of existing calendar entries, all three deck views and context-bearing statistics exports. Initial comparisons use the usual-weekday behavior specified above; no additional event KPI or event-filter feature is required by this resolution.
#108 owns the UI/docs terminology rename. Record #113/#114 as prerequisites for affected schedule-history and activation behavior; ready-for-agent denotes a settled specification and does not waive these dependencies. Application implementation remains follow-up work.
gabogg referenced this issue2026-09-27 23:39:54 +00:00
gabogg referenced this issue2026-09-28 09:00:59 +00:00
Maintainer decisions, 2026-10-02 (from PR #178's first review, r11)
is_holiday = 1as well, so past holidays stay out of the Usual Weekday Baseline. There must be one source of holiday identity, not two that can disagree.trust_spike_window).Whether holidays should be excluded from statistics at all is a separate open question, tracked in #202 (
needs-triage). It doesn't change the rules above for now.🤖 Generated with Claude Code