← Back to Internal system builders
See how it helps
Reliable time-series charts
Makes trends and period comparisons understandable by handling time zones, missing measurements and incomplete periods explicitly.
time-series-temporal-aggregation
Team members using this skill
When is it useful?
Use when a daily or monthly chart could suggest a change caused by calendar boundaries or incomplete data.
What does it help you do?
- Aligns reporting periods to the chosen time zone, including daylight-saving changes.
- Shows missing measurements as gaps and distinguishes them from genuine zero activity.
- Labels unfinished periods and moving averages so comparisons retain their meaning.
Try asking this
Build a daily sales chart for Budapest time. Mark today as incomplete, show missing imports as gaps and compare equivalent weekdays from the previous period. Include an import outage and a daylight-saving change in the sample. A missing day must remain a gap, while a verified zero-sales day appears as zero.
Detailed documentation
Read the skill’s original instructions, examples and checks in their authored language.
Show less
Time Series & Temporal Aggregation
Use this skill when building time-series charts, date-range comparisons, rolling windows, or multi-granularity temporal views.
Explicit Timezone & Bucket Alignment
- Bucket in the Target Display Timezone, Not Accidental Browser Local Time:
- Store and transmit timestamps in UTC ISO-8601 or epoch milliseconds, and bucket daily/weekly/monthly aggregations explicitly in the agreed reporting timezone (e.g., workspace timezone or UTC) using timezone-aware calendar arithmetic (
Intl.DateTimeFormat,Temporal, or server-sideAT TIME ZONE). - Display the active reporting timezone (
UTC,Europe/Budapest, etc.) next to the date range picker.
- Store and transmit timestamps in UTC ISO-8601 or epoch milliseconds, and bucket daily/weekly/monthly aggregations explicitly in the agreed reporting timezone (e.g., workspace timezone or UTC) using timezone-aware calendar arithmetic (
- Handle Irregular Calendar Lengths & DST Transitions:
- Account for 23-hour and 25-hour Daylight Saving Time days when plotting hourly series.
- When comparing months (
28–31days) or leap years, clarify whether comparisons align by day-of-month index, elapsed days, or day-of-week (e.g., aligning Monday to Monday so weekend dips do not create false weekday anomalies).
Missing Buckets, Partial Periods & Rolling Windows
- Never Fill Missing Time Buckets with
0Unconditionally:- Distinguish sparse event streams (where zero rows in a bucket genuinely mean
0orders/clicks in that hour, provided ingestion was healthy) from missing telemetry/measurements (where no sample was recorded, which must remainnulland render as a gap).
- Distinguish sparse event streams (where zero rows in a bucket genuinely mean
- Mark Incomplete Current Periods ("Partial Bucket"):
- When viewing daily/weekly/monthly series that include the current in-progress bucket (today, this week, this month), style the trailing segment distinctly (dashed line, hatched bar, or "In progress" badge) so a partial day/month is never mistaken for a sudden cliff drop.
- Labeled Smoothing & Moving Averages:
- Never replace raw volatility with a smoothed curve (
basisspline or moving average) without telling the viewer. Plot raw points/bars as muted context and overlay the explicitly labeled rolling window (7-day moving average) on top.
- Never replace raw volatility with a smoothed curve (
Checklist
- Are time buckets aligned to the explicit reporting timezone rather than implicit browser local time?
- Are missing measurements (
nullgaps) distinguished from observed0counts? - Is the current in-progress time bucket visually marked as partial so it does not look like a sudden drop?
- Are period-over-period overlays (
YoY,MoM, prior period) aligned sensibly for weekday/calendar shifts?
Included files 1
SKILL.md
