Video streaming
===============

An Indian OTT service: a catalogue of films and series in eight languages, subscribers on four plans, viewing sessions and ratings. Viewing is heavily concentrated on a few hit titles, peaks in the evening, and regional-language titles punch above their catalogue share.

Category: Marketing
Licence: CC0-1.0
Synthetic data generated by DataStride. Places and languages are real; titles and subscribers are fictional.
Build: 940aea8e3b2c8169

ott_plans (4 rows)
  plan_id                INTEGER        [key] Plan identifier.
  plan_name              VARCHAR(20)    Plan.
  monthly_price          DECIMAL(8,2)   Monthly price, INR.
  screens                INTEGER        Simultaneous screens.

ott_titles (400 rows)
  title_id               INTEGER        [key] Title identifier.
  title_name             VARCHAR(80)    Title (fictional).
  title_type             VARCHAR(10)    Movie or series.
  genre                  VARCHAR(20)    Primary genre.
  language               VARCHAR(12)    Original language.
  release_date           DATE           Release on the platform.
  runtime_min            INTEGER        Minutes (per episode for series).
  is_original            INTEGER        1 if produced for the platform.

ott_subscribers (1500 rows)
  subscriber_id          INTEGER        [key] Subscriber identifier.
  city                   VARCHAR(40)    City.
  plan_id                INTEGER        -> ott_plans.plan_id Current plan.
  joined_on              DATE           Subscription start.
  churned_on             DATE           Cancellation date; null while active.
  age_band               VARCHAR(10)    Age band.

ott_views (5000 rows)
  view_id                INTEGER        [key] Viewing session.
  subscriber_id          INTEGER        -> ott_subscribers.subscriber_id Who watched.
  title_id               INTEGER        -> ott_titles.title_id What they watched. A few hits take most views.
  view_date              DATE           Date.
  started_at             TIMESTAMP      Start time; evenings dominate.
  minutes_watched        INTEGER        Minutes watched in the session.
  device                 VARCHAR(12)    Device.

ott_ratings (1500 rows)
  rating_id              INTEGER        [key] Rating identifier.
  subscriber_id          INTEGER        -> ott_subscribers.subscriber_id Who rated.
  title_id               INTEGER        -> ott_titles.title_id Title rated.
  stars                  INTEGER        Rating, 1–5.
  rated_on               DATE           Date rated.

Deliberate data-quality quirks (clean them before you aggregate):
  ott_titles.language: trailing space
