---
topic: Feature flags for Playlist Pages
last_updated: 2026-03-16
---

# Playlist Pages Feature Flags

## Split.io Flags — ows-playlist (Python)

Defined in: `/Users/cbeesley/code/ows-playlist/playlist/queries/constants.py`

| Flag Name | Constant | Purpose |
|-----------|----------|---------|
| `insights_filter_incorrect_playlists` | `INSIGHTS_FILTER_INCORRECT_PLAYLISTS` | Filter out known-bad playlists |
| `insights_playlist_v2_current_past` | `INSIGHTS_PLAYLIST_V2_CURRENT_PAST` | Current/past tracklist v2 UI |
| `insights_primary_playlist_type` | `INSIGHTS_PRIMARY_PLAYLIST_TYPE` | Use PRIMARY_PLAYLIST_TYPE column — this field is a sub-categorization only (flags "Hot Hits" designation); it is NOT one of the three circular header metrics |
| `insights_disable_playlists_cache` | `INSIGHTS_DISABLE_PLAYLISTS_CACHE` | Disable Redis cache for playlists |
| `insights_playlist_page_hourly_playlists` | `INSIGHTS_PLAYLIST_PAGE_HOURLY_PLAYLISTS` | Gates hourly playlist data access |
| `insights_playlist_page_apple_music_playlists` | `INSIGHTS_PLAYLIST_PAGE_APPLE_MUSIC_PLAYLISTS` | Gates Apple Music playlists |
| `insights_playlist_page_hide_compilation_art` | `INSIGHTS_PLAYLIST_PAGE_HIDE_COMPILATION_ART` | Hides compilation artwork; surfaces INFERRED_COMPILATION flag |
| `insights_playlist_current_tracklist_preaggregated` | `INSIGHTS_PLAYLIST_CURRENT_TRACKLIST_PREAGGREGATED` | Use pre-aggregated current tracklist table |
| `show_sme_data` | `SHOW_SME_DATA` | Show Sony Music data |

## Split.io Flags — graphql-analytics (TypeScript)

Defined in: `src/connectors/ows-playlist/constants.ts`

| Constant | Value | Purpose |
|----------|-------|---------|
| `INSIGHTS_PLAYLIST_PAGE_HIDE_COMPILATION_ART_KEY` | `'insights_playlist_page_hide_compilation_art'` | Passed to ows-playlist; enables `inferredCompilation` in tracklist response |
| `STOREFRONT_ENABLED_KEY` | `'storefront_enabled'` | Enables storefront-aware queries |

Also referenced:

| Flag (graphql-knowledge) | Purpose |
|--------------------------|---------|
| `INSIGHTS_PLAYLIST_PAGE_HOURLY_PLAYLISTS` | Controls whether `hourly_playlists` included in metadata filter subquery |

## Split.io Flags — frontend-insights (TypeScript)

Defined in: `src/constants/featuresFlags.ts`

### Playlist-specific flags

| Constant | Split.io Name | Purpose |
|----------|--------------|---------|
| `INSIGHTS_PLAYLIST_PAGE_NAVIGATION` | `insights_playlist_page_navigation` | Playlist page navigation (persistent, DO NOT REMOVE class) |
| `INSIGHTS_PLAYLISTS_STORE_GRAPHS` | `insights_playlists_store_graphs` | Store-level graphs on playlists |
| `INSIGHTS_STORE_FRONT_FIX` | `insights_store_front_fix` | Storefront parameter handling bug fix |
| `INSIGHTS_STORE_FILTER_HIDDEN_APPLY_BUTTON` | `insights_store_filter_hidden_apply_button` | UX change: hidden apply button in store filter |
| `INSIGHTS_PRODUCT_PAGE_PLAYLISTS_TAB` | `insights_product_page_playlists_tab` | Product page playlists tab |
| `INSIGHTS_ARTIST_PLAYLISTS` | `insights_artist_playlists_tab` | Artist page playlists tab |
| `INSIGHTS_SONG_PLAYLISTS_PERFORMANCE` | `insights_song_playlists_performance` | Song playlists performance section |
| `INSIGHTS_ARTIST_PLAYLISTS_PERFORMANCE` | `insights_artist_playlists_performance` | Artist playlists performance |
| `INSIGHTS_PRODUCT_PLAYLISTS_PERFORMANCE` | `insights_product_playlists_performance` | Product playlists performance |
| `INSIGHTS_POT_FILTERS_V3` | `insights_pot_filters_v3` | PoT filter updates v3 (product page) |
| `INSIGHTS_DAILY_EXPORT` | `insights_daily_export` | Daily export feature |
| `INSIGHTS_MINIPLAYER_PLAYLISTS` | `insights_miniplayer_playlists` | Miniplayer on playlists (persistent, DO NOT REMOVE) |

### Flags no longer in frontend-insights featureFlags.ts (not here by design)

The following flags are owned by backend services, not frontend:

- `insights_playlist_page_hourly_playlists` — ows-playlist
- `insights_playlist_page_apple_music_playlists` — ows-playlist
- `insights_playlist_current_tracklist_preaggregated` — ows-playlist
- `insights_playlist_page_hide_compilation_art` — ows-playlist + graphql-analytics

## Flag Flow for `inferredCompilation`

1. frontend-insights: (no flag needed — just reads field if present)
2. graphql-analytics: checks `insights_playlist_page_hide_compilation_art` → passes `insights_playlist_page_hide_compilation_art=true` to ows-playlist
3. ows-playlist: reads `INSIGHTS_PLAYLIST_PAGE_HIDE_COMPILATION_ART` FF → includes `INFERRED_COMPILATION` field in response from `V_PLAYLISTS_BY_PLAYLIST_CURRENT_TRACKLIST`
