Retention
wheremyflow uses two distinct retentions: a short one for raw data, a long one for anonymous aggregates. No off-database archive, no S3 export — retention is fully contained in PostgreSQL.
90 days — raw events
Every individual event (pageviews, clicks, downloads) lives 90 days in the events table. Past that, it's purged by the nightly cron.
This covers:
- Month-over-month comparisons and rolling-quarter views.
- Detailed drill-down (attention zones, per-session scroll).
- Raw CSV exports.
Past 90 days, this data is no longer accessible, neither in the dashboard nor via export.
25 months — aggregates
Once a day, raw events are rolled up into anonymous KPIs:
- Daily unique visitors (computed via HLL, byte-wise MAX merge).
- Pageviews per page per day.
- Breakdown by source / country / browser / device.
- Conversions and custom events.
These aggregates live for 25 months — converging European good practice (EDPB guidance on audience-statistics retention, aligned with the national positions of CNIL, AEPD, Garante and AP). They power the 12-month view and year-over-year comparisons, with no individually reversible data.
Why these durations?
- 90 days: covers operational analytics needs without exceeding the bounds of the audience-measurement exemption under EU frameworks.
- 25 months: a standard for multi-year analytics. Beyond that, usefulness drops (usage patterns drift) with no business gain.
What if I want to keep more?
You can download a ZIP of all your data as CSV from the dashboard ("Download all data (CSV ZIP)" button) and keep them under your own rules. But wheremyflow will never store your raw events past 90 days, nor your aggregates past 25 months.
See Export and erasure.