← Back to Graph
AgentGraph
Reliable time-series charts
Makes trends and period comparisons understandable by handling time zones, missing measurements and incomplete periods explicitly.
time-series-temporal-aggregation
See how it helpsWhen 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.
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
