Skip to main content

Storage limitation, made enforceable.

GDPR Art. 5(1)(e) requires data be kept no longer than necessary — this page shows the live retention windows and cron status that enforce it.

Per-table retention

Live values
TableWindowPolicyWhy this number
analytics.events60 days (~2 months)Hard DELETE on daily cronIndividual page views, journey transitions. Past this window, only the daily aggregate row survives.
analytics.sessions60 days (~2 months)Hard DELETE on daily cronPer-visit metadata: started_at, last_seen, consent_tier. Same retention as events to keep the join clean.
analytics.daily_page_stats365 days (~1 years)Hard DELETE on daily cronPre-aggregated rollups (path / day / count). No individual visitor data — kept longer to draw long-term traffic trends.
analytics.consent_events395 days (~1.1 years)Hard DELETE on daily cronProof of consent (or its withdrawal). 13 months satisfies Art. 7(1) demonstrability without overshooting.
feedback.feedbackManual deletion onlyUser-authored content. We have no automatic expiry; you can request removal at any time and the operator deletes the row.
auth.sessionBetter Auth session expirySessions expire on their own per Better Auth config. Logout invalidates immediately.

Cron status

Live

Loading…

Think this pattern could be better? Tell us how.

Leave feedback