# PostHog's November 30 storage migration shortens some event data to 60 and 90 days

PostHog will stop retaining several diagnostic event properties indefinitely and move feature-flag calls out of the main events table on November 30. Some SQL queries and batch exports need changes before the cutover.

The new event storage format is faster in PostHog's benchmarks, but raw $set instructions will expire after 60 days and feature-flag calls after 90. Most ordinary event and person data is unaffected.

- Status: Active
- Published: 2026-11-03T06:36:21+13:00
- Updated: 2026-11-03T06:36:21+13:00
- Categories: Cloud & Infrastructure, Marketing & Distribution, Observability, Conversion & Analytics
- Tags: data retention, feature flags, HogQL, PostHog, product analytics
- Canonical HTML: https://beyondthe.news/dossiers/posthog-november-30-event-property-retention-feature-flag-migration

## What changed

PostHog announced on October 27, 2026 that a storage migration taking effect November 30 will change retention and query behaviour. Raw person-update instructions ($set, $set_once, $unset and $group_set) and selected SDK, replay and feature-flag diagnostic properties will be retained for 60 days from event receipt, rather than indefinitely. Feature flag evaluation events ($feature_flag_called) move to a dedicated flag_evaluations table with 90-day retention and no longer appear in ordinary all-events batch exports. Queries using SELECT *, SAMPLE or FINAL against these flag calls will error. PostHog reports approximately 35% faster average queries and around twice the speed for common session-based queries in its own replay tests.

## Why it matters

Teams relying on historical event properties, SQL, exports, anomaly investigations or feature-flag audit trails could silently lose access to some diagnostic details or experience query errors. The migration is not a general purge of all events: normal event properties and resolved person properties remain under their existing retention rules. Builders need to identify the affected special fields and workflows before November 30.

## The 60-day rule affects raw instructions, not resolved person data

Raw $set, $set_once, $unset and $group_set instructions on events expire 60 days after receipt, alongside certain $sdk_debug_*, $feature_flag_request_id, replay diagnostic and SDK transport properties. The resulting person properties remain on person records and ordinary events. Historical records received before roughly October 1 lose these raw instructions when the November 30 migration takes effect. The 60-day clock uses receipt time, not the event timestamp.

## Flag calls move out of the events table

PostHog will keep $feature_flag_called in a dedicated flag_evaluations table for 90 days. Standard insights, funnels, cohorts and supported HogQL queries continue to access flag calls, subject to the shorter window. However, queries that use SELECT *, SAMPLE or FINAL for flag calls will error, and exports of all events will stop including new flag calls. Some Paths reports also stop counting them. Workflows and destinations explicitly triggered by flag calls continue to function.

## Some properties disappear, others move

Deprecated flag payload, active-flags, product-tour and survey SDK state fields stop being stored as before. Raw LLM input/output payloads were already moved into an AI observability table with a 30-day retention window; PostHog says removing legacy copies from events does not change the current AI observability product. The company distinguishes these special fields from ordinary custom event properties.

## Performance claims are internal benchmarks

PostHog says its new typed, non-duplicated storage is about 35% faster on average, roughly 50% faster for event-property filtering, and around 2x faster for session queries. These results come from PostHog replaying its own production queries, not an independent benchmark. Queries spanning many custom properties may improve less or become slightly slower.

## Key details

- Announcement published October 27, 2026; storage migration takes effect November 30.
- Raw $set, $set_once, $unset, $group_set and selected diagnostic properties expire after 60 days from event receipt.
- Historical qualifying event properties older than 60 days are removed during cutover.
- $feature_flag_called moves to flag_evaluations with 90-day retention.
- SELECT *, SAMPLE and FINAL queries on flag calls require rewriting; ordinary all-events batch exports stop including flag calls.
- Most standard analytics and explicitly triggered workflows continue to function; ordinary person/event properties are unaffected.
- PostHog reports ~35% average query acceleration and ~2x session-query acceleration in vendor tests.
- Raw AI observability payloads already use separate storage with a 30-day window.

## Builder takeaways

- Search saved HogQL and exports for $feature_flag_called, SELECT *, SAMPLE and FINAL; rewrite affected queries before November 30.
- Identify downstream systems that expect flag calls in all-events exports and arrange a supported alternative.
- Export special historical diagnostic properties now if they are required for incident investigations or compliance; do not assume they remain queryable.
- Distinguish raw $set instructions from the resolved person properties that remain available.
- Validate performance and data availability against your own dashboards after migration.

## What to watch

- The staged migration and customer notifications before November 30.
- PostHog documentation changes and migration guidance for export consumers.
- Any revisions to the 60/90-day windows or supported HogQL behaviour.
- Independent measurements of query performance and reports of dashboard regressions.

## Uncertainties

- The reported speed gains are vendor benchmark results, not independently replicated.
- Actual migration timing may be staged per organisation; November 30 is the stated cutover date for writes.
- Impact depends on which diagnostic fields, exports and queries a customer uses.

## Sources

- [Queries are 2x faster, but we're making some event properties temporary](https://posthog.com/blog/changing-event-storage) — PostHog · primary · 2026-10-27T00:00:00+13:00. Announcement, exact fields, 60/90-day windows, November 30 deadline, internal benchmarks and query caveats.
- [PostHog feature flags troubleshooting: where flag calls are stored](https://posthog.com/docs/feature-flags/troubleshooting) — PostHog · primary documentation · 2026-11-03T00:00:00+13:00. Flag_evaluations migration phases, 90-day retention, query and export compatibility.
- [PostHog event retention documentation](https://posthog.com/docs/data/events-retention) — PostHog · primary documentation · 2026-11-03T00:00:00+13:00. General event retention differs from these special-field exceptions; ordinary event retention varies by plan.

