Why: API day buckets and Web day buckets are computed with different timezone assumptions (API vs browser local time), so returned dates don’t always map to chart x-axis keys. For example, it is 10PM in my time zone but API is capturing my logs in UTC so they are the next day which is not yet displayed in chart
Scope: Web + API (recommended), not API-only.
API: define and return explicit day contract (date in YYYY-MM-DD, timezone = UTC, granularity = day), and group consistently.
Web: render using API day keys/contract (not browser-local day generation), zero-fill missing days in range, keep click drilldown aligned.
Now (safe/default): canonical UTC day buckets for everyone (we will adapt to timezone if future tickets).
Acceptance criteria:
Non-zero summary rows always produce visible bars.
Same API response renders the same chart across different client timezones.
Bar click shows correct conference list/count for that day/status.
Tests:
Boundary timestamps around midnight UTC/local.
FE mapping test for date-key alignment + zero-fill.
Why: API day buckets and Web day buckets are computed with different timezone assumptions (API vs browser local time), so returned dates don’t always map to chart x-axis keys. For example, it is 10PM in my time zone but API is capturing my logs in UTC so they are the next day which is not yet displayed in chart
Scope: Web + API (recommended), not API-only.
API: define and return explicit day contract (date in YYYY-MM-DD, timezone = UTC, granularity = day), and group consistently.
Web: render using API day keys/contract (not browser-local day generation), zero-fill missing days in range, keep click drilldown aligned.
Now (safe/default): canonical UTC day buckets for everyone (we will adapt to timezone if future tickets).
Acceptance criteria:
Non-zero summary rows always produce visible bars.
Same API response renders the same chart across different client timezones.
Bar click shows correct conference list/count for that day/status.
Tests:
Boundary timestamps around midnight UTC/local.
FE mapping test for date-key alignment + zero-fill.