Skip to main content

example-timezone-boundary

Reference — generated from the toolkit

Source of truth: toolkit/scaffold/memory/example-timezone-boundary.md. Edit it there; this page is regenerated on build.

Symptom: renewals for policyholders acting between midnight and 01:00 UK time (during BST) were dated one day early, tripping the "effective date precedes cover start" validation.

Root cause: renewal date computed from a UTC timestamp, then compared against a cover-start date stored in UK local time. During BST the UK local date rolls at 23:00 UTC — so between 00:00 and 01:00 local, a UTC-derived date is still on the previous day.

Fix: compute renewal dates in Europe/London, not UTC; compare dates in the same zone. Never mix a UTC instant with a local date in date arithmetic.

Verification: boundary test at 00:30 BST (23:30 UTC the previous day) asserts the renewal date equals the local calendar date; regression added to the date-arithmetic suite.