---
id: "0002"
date: 2026-07-06
status: Accepted
supersedes:
superseded-by:
affected-paths: [lib/reportgen/renderer.rb, lib/reportgen/formatter.rb]
affected-components: []
---

# 0002 — Store all report timestamps in UTC; render in the client's local timezone

## Context

Report records carry timestamps sourced from the Finch API. Clients are spread across timezones, and showing a single canonical timezone (or an unlabeled one) on rendered reports has caused confusion in the past about when an event actually occurred.

## Decision

All timestamps are stored in UTC end to end. Rendering must convert to the requesting client's configured local timezone before display; nothing in the rendering path should print a UTC timestamp unconverted.

## Consequences

Storage stays unambiguous and comparable across clients. Rendering code is responsible for timezone conversion, and any renderer or formatter that skips this step will show incorrect local times to clients.

## Alternatives rejected

Storing timestamps pre-converted per client was considered and rejected: it would make cross-client aggregation and storage comparisons unreliable.
