How I Built a Full-Stack Data Pipeline to Analyse Netflix's Global Catalog of 8,797 Titles

How I Built a Full-Stack Data Pipeline to Analyse Netflix's Global Catalog of 8,797 Titles

By Usamah W Maphumulo · January 15, 2026 · Self-initiated portfolio project
PythonPandasMySQLPower BIETLKaggle Dataset
TypeSelf-initiated portfolio project
Dataset8,797 Netflix titles across 197 countries (Kaggle)
ToolsPython (Pandas) · MySQL · Power BI
OutcomeFull-stack pipeline (Python → MySQL → Power BI) surfacing content-strategy insights, including a 67% first-season failure rate
Codegithub.com/usamahwm/Netflix-Analysis

A self-initiated portfolio project built on a publicly available Kaggle dataset containing metadata for 8,797 Netflix titles — countries, movies, TV shows, directors, genres, runtime, release dates, and seasonal distribution.

The scenario was deliberately ambitious: treat Netflix's catalog the way a content strategy team would — not just describe what's in the library, but engineer a pipeline that could answer the questions that actually drive programming budgets: which content survives, which doesn't, and why.

The Problem

The raw dataset was rich but unusable in its current state:

  • Null and placeholder values scattered throughout the director column (4,527 directors listed, many incomplete).
  • Runtime stored as text strings like "90 min" and "2 Seasons" rather than numeric values — making any statistical modelling impossible without transformation.
  • No relational structure — everything lived in a flat CSV with no way to query across dimensions efficiently.
  • No way to answer the most important question of all: what percentage of TV shows actually survive past their first season?

What I Did

Step 1 — Data Engineering in Python

Built an automated ETL pipeline in Pandas: automated handling of null/unknown director entries, scripts to strip suffixes from runtime and season columns and convert them to numeric values, and standardised date formats across the entire dataset.

Step 2 — Database Architecture in MySQL

Rather than keeping the cleaned data in a flat CSV, I migrated it into a relational MySQL database with a structured schema and referential integrity — mimicking a real-world corporate data warehouse, queryable efficiently across dimensions and scalable as new data comes in.

Step 3 — Power BI Dashboard Build

Connected the SQL backend to a three-page interactive dashboard: a full library overview, the movie sector specifically, and the TV show sector specifically — each built around questions a real content strategy team would need answered.

Results

FINDING 01

67% of TV shows never make it past Season 1. Out of 2,665 TV shows, 1,793 (~67%) never progress beyond their first season; only 421 reach a second season. For a content investor or creator, this is the single most important number in the report — the probability that any new show survives its first year is roughly one in three.

FINDING 02

Q3 is Netflix's strategic content surge window. Library growth peaks at roughly 2,350 titles added in Q3, before a slight pullback in Q4 — a deliberate strategy to refresh the catalog ahead of end-of-year holiday viewing, not an organic pattern.

FINDING 03

The 90-minute economic standard. Movie runtime distribution peaks sharply between 90 and 99 minutes — an industry-wide preference that maximises viewer retention while minimising production costs.

FINDING 04

International animation is Netflix's global market entry strategy. The most prolific director in the catalog is Rajiv Chilaka with 19 titles, all international animation — reflecting deliberate use of localised children's content to capture emerging markets.

Why This Matters Beyond Netflix

This project isn't about Netflix specifically — it's a blueprint for what becomes possible when raw data has a proper pipeline behind it. Every business has a version of this dataset: transaction records, customer lists, product catalogs, campaign logs, sitting in spreadsheets with no structured way to query them. The difference between a business that can answer those questions and one that can't isn't the data. It's the pipeline.