In today's competitive digital landscape, retaining existing customers is crucial for subscription-based businesses like music streaming platforms. Research shows that it costs 5x less to retain an existing customer compared to acquiring a new one. Despite this, many companies focus on user acquisition while neglecting the warning signs of discontent and disengagement among their current subscribers.

Problem Statement

Churn in music streaming services is not always a straightforward "goodbye." Users may pause their subscriptions, downgrade to a lesser or free plan, or simply disengage without formally canceling. Traditional churn analysis often misses these nuances, leading to inaccurate metrics and missed intervention opportunities.

Objective

The objective of this project is to build a data-driven churn analysis and retention dashboard for a music streaming platform, enabling stakeholders to proactively identify churned and at-risk subscribers based on actual plan activity. The dashboard should track subscriber behavior and plan engagement over time, segmented by month, plan type, and geography.

Skills Demonstrated

This project demonstrates critical skills in:

  • Data generation and simulation using ChatGPT
  • Advanced SQL for churn analytics
  • Problem-solving and research
  • Dashboard design using Figma
  • Data engineering and cleaning

Data Dictionary

The dataset used in this churn analysis project was synthetically generated to simulate real-world behavior of subscribers on a music streaming platform. The data closely mimics user lifecycle patterns, including joining, subscribing to plans, streaming content, and potentially churning.

Main Users - User Profile Table

| Field Name | Type | Description |

|---|---|---|

| User_ID | STRING | Unique ID for each user |

| Name | STRING | User’s full name |

| Age | INTEGER | Age of user |

| Region | STRING | U.S. region |

| State | STRING | U.S. state |

| City | STRING | User’s city and state |

Plan_history - Subcription Plan History Table

| Field Name | Type | Description |

|---|---|---|

| User_ID | STRING | Foreign key to main user table |

| Plan | STRING | Plan type subscribed to |

| Start_Date | DATE | Start of plan |

| End_Date | DATE | End of plan |

| Price | FLOAT | Price of the plan |

Streming Log - User Streaming Activity Table

| Field Name | Type | Description |

|---|---|---|

| Stream_Date | DATE | Date user streamed content |

| User_ID | STRING | Foreign key to main user table |

| Stream_Duration_Minutes | INTEGER | Duration of session in minutes |

SQL Code

The dataset used in this churn analysis project was synthetically generated using ChatGPT. Several new insights-driving columns such as churn classification, churn type, and lost revenue were calculated using SQL and Python to ensure consistency, automation, and analytical depth.

Data Modeling

This allows Tableau to connect live to the database, enabling real-time automation and smoother integration.

Dashboard Link

A sample of the raw data can be found below:

| User_ID | Plan | Start_Date | End_Date | Price |

|---|---|---|---|---|

| USER-00023 | Individual Premium | 2024-03-01 | 2024-04-01 | 9.99 |

Conclusion

This project empowers music streaming platforms to retain more users, reduce acquisition costs, and drive long-term revenue growth through data-backed decision-making.

Recommendations

To further improve the churn analysis dashboard, consider incorporating additional features such as:

  • User satisfaction ratings
  • Churn reasons
  • Lost revenue calculations
  • Real-time monitoring and alert systems