277.OTT PLATFORMS IN INDIA — PROC FORMAT | PROC CONTENTS | PROC SORT | PROC PRINT | PROC FREQ | PROC MEANS | PROC SUMMARY | PROC UNIVARIATE | PROC TABULATE | PROC REPORT | PROC TRANSPOSE | PROC SQL | PROC RANK | PROC SGPLOT | MACROS

OTT PLATFORMS IN INDIA — PROC FORMAT | PROC CONTENTS | PROC SORT | PROC PRINT | PROC FREQ | PROC MEANS | PROC SUMMARY | PROC UNIVARIATE | PROC TABULATE | PROC REPORT | PROC TRANSPOSE | PROC SQL | PROC RANK | PROC SGPLOT | MACROS

 /*CREATING THE DATASET OF INDIA OTT LANDSCAPE*/

SECTION 1: FORMATS & SETUP

PURPOSE: Create user‑friendly value labels for flags and business categories. 

proc format;

  value yesno 0='No'

              1='Yes';

  value $model 'SVOD'='SVOD (Subscription)'

               'AVOD'='AVOD (Ad‑Supported)'

               'TVOD'='TVOD (Transactional)'

               'Hybrid'='Hybrid (Mix)'

               'Sports'='Sports‑centric';

  value $region 'Pan‑India'='Pan‑India'

                'Hindi'='Hindi'

                'Telugu'='Telugu'

                'Tamil'='Tamil'

                'Bengali'='Bengali'

                'Malayalam'='Malayalam'

                'Kannada'='Kannada'

                'Marathi'='Marathi'

                'Multi‑regional'='Multi‑regional';

run;

Log:

NOTE: Format YESNO has been output.
NOTE: Format $MODEL has been output.
NOTE: Format $REGION has been output.

SECTION 2: DATA CREATION

PURPOSE: Create a realistic OTT platforms dataset with > 25 observations. 

data ott_india_raw;

  length Platform_ID 8 Name $40 ParentCompany $40 HQ_City $20 Model $10

         Regional_Focus $15 Genres $40 Notes $60;

  length Launch_Year_India 8  Price_Monthly_INR 8 Annual_Price_INR 8

         Subscribers_Mn 8 MAUs_Mn 8 Originals_Count_2024 8 Avg_IMDB_Originals 8

         FourK_Support 8 Offline_Downloads 8 Ad_Tier_Flag 8 Sports_Rights_Flag 8;

  infile datalines dsd truncover;

  input Platform_ID Name :$40. ParentCompany :$40. HQ_City :$20.

        Model :$10. Regional_Focus :$15. Genres :$40. Launch_Year_India

        Price_Monthly_INR Annual_Price_INR Subscribers_Mn MAUs_Mn

        Originals_Count_2024 Avg_IMDB_Originals FourK_Support Offline_Downloads

        Ad_Tier_Flag Sports_Rights_Flag Notes :$60.;

  format FourK_Support Offline_Downloads Ad_Tier_Flag Sports_Rights_Flag yesno.

         Model $model. Regional_Focus $region.;

  label Name='Platform Name' ParentCompany='Parent Company' HQ_City='HQ (India)'

        Model='Business Model' Regional_Focus='Regional Focus' Genres='Popular Genres'

        Launch_Year_India='Launch Year (India)' Price_Monthly_INR='Monthly Price (INR)'

        Annual_Price_INR='Annual Price (INR)' Subscribers_Mn='Subscribers (Mn, India est)'

        MAUs_Mn='Monthly Active Users (Mn)' Originals_Count_2024='Originals Count (till 2024)'

        Avg_IMDB_Originals='Avg IMDb of Originals' FourK_Support='4K Support'

        Offline_Downloads='Offline Downloads' Ad_Tier_Flag='Has Ad Tier'

        Sports_Rights_Flag='Sports Rights';

  datalines;

1,"Netflix India","Netflix, Inc.","Mumbai","SVOD","Pan‑India","Drama, Thriller, Comedy",2016,649,4999,8.2,16.5,220,7.1,1,1,1,0,"Premium global originals"

2,"Amazon Prime Video","Amazon","Bengaluru","SVOD","Pan‑India","Action, Drama, Comedy",2016,299,1499,20.5,35.0,180,7.0,1,1,0,1,"Bundled with Prime"

3,"Disney+ Hotstar","Disney","Mumbai","Hybrid","Hindi","Drama, Sports, Reality",2015,299,899,40.0,50.0,150,6.8,1,1,1,1,"Large sports slate"

4,"SonyLIV","Sony Pictures","Mumbai","SVOD","Hindi","Thriller, Sports, Reality",2014,299,999,15.0,22.0,120,6.9,1,1,1,1,"Original thrillers"

5,"ZEE5","Zee Entertainment","Mumbai","Hybrid","Multi‑regional","Drama, Soap, Reality",2018,199,699,34.0,40.0,140,6.5,1,1,1,0,"Strong TV library"

6,"JioCinema","Reliance","Mumbai","AVOD","Pan‑India","Movies, Sports",2019,0,0,85.0,120.0,60,6.0,1,1,1,1,"Scale via telco"

7,"MX Player","Times Internet","Mumbai","AVOD","Pan‑India","Drama, Reality",2018,0,0,58.0,95.0,70,5.9,0,1,1,0,"High AVOD reach"

8,"ALTBalaji/ALTT","Balaji Telefilms","Mumbai","SVOD","Hindi","Romance, Drama",2017,100,300,3.2,6.0,95,5.8,0,1,1,0,"Niche originals"

9,"Eros Now","Eros Media","Mumbai","SVOD","Hindi","Movies, Music",2012,99,399,12.0,18.0,85,6.0,0,1,1,0,"Movie catalogue"

10,"ShemarooMe","Shemaroo","Mumbai","SVOD","Multi‑regional","Classics, Devotional",2019,149,799,4.0,7.5,45,6.2,0,1,1,0,"Legacy catalogue"

11,"Sun NXT","Sun TV Network","Chennai","SVOD","Tamil","Movies, Serials",2017,99,799,12.5,16.0,55,6.1,0,1,1,0,"South focus"

12,"Hoichoi","SVF","Kolkata","SVOD","Bengali","Thriller, Drama",2017,149,999,2.8,5.2,120,7.2,0,1,0,0,"Bengali originals"

13,"Aha","Arha Media","Hyderabad","SVOD","Telugu","Comedy, Drama",2020,199,699,3.9,6.8,110,6.7,0,1,0,0,"Telugu focus"

14,"Lionsgate Play","Lionsgate","Mumbai","SVOD","Pan‑India","Hollywood, Thriller",2020,149,999,3.5,5.5,65,7.0,1,1,1,0,"Premium imports"

15,"Apple TV+","Apple","Mumbai","SVOD","Pan‑India","Drama, Sci‑Fi",2019,99,1499,1.8,3.0,45,7.7,1,1,0,0,"High‑quality originals"

16,"YouTube Premium","Google","Hyderabad","SVOD","Pan‑India","Creators, Music",2018,139,1299,7.0,28.0,25,7.0,1,1,1,0,"Ad‑free YouTube"

17,"Discovery+ (IN)","Warner Bros. Discovery","New Delhi","SVOD","Pan‑India","Docu, Lifestyle",2020,199,399,4.5,8.0,35,7.1,1,1,1,1,"Factual + sports tie‑ins"

18,"TVF Play","TVF","Mumbai","AVOD","Hindi","Comedy, Slice‑of‑life",2016,0,0,2.0,4.5,25,7.8,0,1,1,0,"Cult web shows"

19,"Stage","Stage OTT","Gurugram","SVOD","Hindi","Haryanvi, Rajasthani",2019,199,999,1.2,2.1,35,7.0,0,1,0,0,"Dialect content"

20,"Ullu","Ullu Digital","Mumbai","SVOD","Hindi","Bold, Thriller",2018,198,1488,3.0,5.0,70,5.5,0,1,1,0,"Adult drama"

21,"Chaupal","Chaupal OTT","Mohali","SVOD","Punjabi","Movies, Serials",2021,99,799,0.9,1.5,40,6.1,0,1,0,0,"Punjabi focus"

22,"Planet Marathi","Planet Marathi","Mumbai","SVOD","Marathi","Movies, Serials",2021,99,699,0.6,1.2,30,6.0,0,1,0,0,"Marathi focus"

23,"ManoramaMAX","MM TV","Kochi","SVOD","Malayalam","News, Serials",2019,99,999,1.5,2.8,35,6.2,0,1,1,0,"Malayalam focus"

24,"Koode","Studio Mojo","Kochi","AVOD","Malayalam","Movies, Serials",2020,0,0,0.7,1.3,20,5.8,0,1,1,0,"Malayalam AVOD"

25,"Namma Flix","Indie","Bengaluru","SVOD","Kannada","Movies",2020,99,599,0.5,0.9,18,5.9,0,1,0,0,"Kannada films"

26,"ReelDrama","AM Television","Guwahati","SVOD","Multi‑regional","Assamese, Bodo",2020,99,499,0.3,0.6,15,5.7,0,1,0,0,"Northeast focus"

27,"Docubay","IN10 Media","Mumbai","TVOD","Pan‑India","Documentary",2019,0,0,0.8,1.4,10,7.3,1,1,0,0,"Documentary rental"

28,"Tata Play Binge","Tata Play","Mumbai","Hybrid","Pan‑India","Aggregator",2020,249,1499,6.5,10.0,0,.,1,1,1,0,"Super‑app aggregator"

29,"Vi Movies & TV","Vodafone Idea","Mumbai","AVOD","Pan‑India","Movies, TV",2016,0,0,5.0,8.5,12,5.5,0,1,1,0,"Telco bundle"

30,"JioTV","Reliance Jio","Mumbai","AVOD","Pan‑India","Live TV",2016,0,0,60.0,90.0,0,.,0,0,1,1,"Live channels"

31,"Crunchyroll (IN)","Sony","Mumbai","SVOD","Pan‑India","Anime",2017,99,999,1.1,2.0,40,7.5,1,1,0,0,"Anime focus"

32,"BBC Player (IN)","BBC Studios","Mumbai","SVOD","Pan‑India","Drama, Docu",2023,299,1799,0.4,0.7,20,7.0,1,1,0,0,"British TV"

;

run;

proc print;run;

Output:

ObsPlatform_IDNameParentCompanyHQ_CityModelRegional_FocusGenresNotesLaunch_Year_IndiaPrice_Monthly_INRAnnual_Price_INRSubscribers_MnMAUs_MnOriginals_Count_2024Avg_IMDB_OriginalsFourK_SupportOffline_DownloadsAd_Tier_FlagSports_Rights_Flag
11Netflix IndiaNetflix, Inc.MumbaiSVOD (Subscription)Pan‑IndiaDrama, Thriller, ComedyPremium global originals201664949998.216.52207.1YesYesYesNo
22Amazon Prime VideoAmazonBengaluruSVOD (Subscription)Pan‑IndiaAction, Drama, ComedyBundled with Prime2016299149920.535.01807.0YesYesNoYes
33Disney+ HotstarDisneyMumbaiHybrid (Mix)HindiDrama, Sports, RealityLarge sports slate201529989940.050.01506.8YesYesYesYes
44SonyLIVSony PicturesMumbaiSVOD (Subscription)HindiThriller, Sports, RealityOriginal thrillers201429999915.022.01206.9YesYesYesYes
55ZEE5Zee EntertainmentMumbaiHybrid (Mix)Multi‑regionaDrama, Soap, RealityStrong TV library201819969934.040.01406.5YesYesYesNo
66JioCinemaRelianceMumbaiAVOD (Ad‑Supported)Pan‑IndiaMovies, SportsScale via telco20190085.0120.0606.0YesYesYesYes
77MX PlayerTimes InternetMumbaiAVOD (Ad‑Supported)Pan‑IndiaDrama, RealityHigh AVOD reach20180058.095.0705.9NoYesYesNo
88ALTBalaji/ALTTBalaji TelefilmsMumbaiSVOD (Subscription)HindiRomance, DramaNiche originals20171003003.26.0955.8NoYesYesNo
99Eros NowEros MediaMumbaiSVOD (Subscription)HindiMovies, MusicMovie catalogue20129939912.018.0856.0NoYesYesNo
1010ShemarooMeShemarooMumbaiSVOD (Subscription)Multi‑regionaClassics, DevotionalLegacy catalogue20191497994.07.5456.2NoYesYesNo
1111Sun NXTSun TV NetworkChennaiSVOD (Subscription)TamilMovies, SerialsSouth focus20179979912.516.0556.1NoYesYesNo
1212HoichoiSVFKolkataSVOD (Subscription)BengaliThriller, DramaBengali originals20171499992.85.21207.2NoYesNoNo
1313AhaArha MediaHyderabadSVOD (Subscription)TeluguComedy, DramaTelugu focus20201996993.96.81106.7NoYesNoNo
1414Lionsgate PlayLionsgateMumbaiSVOD (Subscription)Pan‑IndiaHollywood, ThrillerPremium imports20201499993.55.5657.0YesYesYesNo
1515Apple TV+AppleMumbaiSVOD (Subscription)Pan‑IndiaDrama, Sci‑FiHigh‑quality originals20199914991.83.0457.7YesYesNoNo
1616YouTube PremiumGoogleHyderabadSVOD (Subscription)Pan‑IndiaCreators, MusicAd‑free YouTube201813912997.028.0257.0YesYesYesNo
1717Discovery+ (IN)Warner Bros. DiscoveryNew DelhiSVOD (Subscription)Pan‑IndiaDocu, LifestyleFactual + sports tie‑ins20201993994.58.0357.1YesYesYesYes
1818TVF PlayTVFMumbaiAVOD (Ad‑Supported)HindiComedy, Slice‑of‑lifeCult web shows2016002.04.5257.8NoYesYesNo
1919StageStage OTTGurugramSVOD (Subscription)HindiHaryanvi, RajasthaniDialect content20191999991.22.1357.0NoYesNoNo
2020UlluUllu DigitalMumbaiSVOD (Subscription)HindiBold, ThrillerAdult drama201819814883.05.0705.5NoYesYesNo
2121ChaupalChaupal OTTMohaliSVOD (Subscription)PunjabiMovies, SerialsPunjabi focus2021997990.91.5406.1NoYesNoNo
2222Planet MarathiPlanet MarathiMumbaiSVOD (Subscription)MarathiMovies, SerialsMarathi focus2021996990.61.2306.0NoYesNoNo
2323ManoramaMAXMM TVKochiSVOD (Subscription)MalayalamNews, SerialsMalayalam focus2019999991.52.8356.2NoYesYesNo
2424KoodeStudio MojoKochiAVOD (Ad‑Supported)MalayalamMovies, SerialsMalayalam AVOD2020000.71.3205.8NoYesYesNo
2525Namma FlixIndieBengaluruSVOD (Subscription)KannadaMoviesKannada films2020995990.50.9185.9NoYesNoNo
2626ReelDramaAM TelevisionGuwahatiSVOD (Subscription)Multi‑regionaAssamese, BodoNortheast focus2020994990.30.6155.7NoYesNoNo
2727DocubayIN10 MediaMumbaiTVOD (Transactional)Pan‑IndiaDocumentaryDocumentary rental2019000.81.4107.3YesYesNoNo
2828Tata Play BingeTata PlayMumbaiHybrid (Mix)Pan‑IndiaAggregatorSuper‑app aggregator202024914996.510.00.YesYesYesNo
2929Vi Movies & TVVodafone IdeaMumbaiAVOD (Ad‑Supported)Pan‑IndiaMovies, TVTelco bundle2016005.08.5125.5NoYesYesNo
3030JioTVReliance JioMumbaiAVOD (Ad‑Supported)Pan‑IndiaLive TVLive channels20160060.090.00.NoNoYesYes
3131Crunchyroll (IN)SonyMumbaiSVOD (Subscription)Pan‑IndiaAnimeAnime focus2017999991.12.0407.5YesYesNoNo
3232BBC Player (IN)BBC StudiosMumbaiSVOD (Subscription)Pan‑IndiaDrama, DocuBritish TV202329917990.40.7207.0YesYesNoNo


PURPOSE: Clean and derive additional KPI fields for analysis. 

data ott_india;

  set ott_india_raw;


  /* Defensive caps on values */

  if Price_Monthly_INR < 0 then Price_Monthly_INR = .;

  if Annual_Price_INR < 0 then Annual_Price_INR = .;


  /* Derive effective monthly price if annual given */

  Eff_Monthly_From_Annual = round(Annual_Price_INR/12, 0.1);


  /* Derive price per original (avoid division by zero) */

  if Originals_Count_2024 > 0 then 

      Price_per_Original = Annual_Price_INR / Originals_Count_2024;

  else Price_per_Original = .;


  /* Tenure (years since India launch; cap at 0 minimum) */

  Tenure_Yrs = max(0, year(today()) - Launch_Year_India);


  /* Price segment */

  length Price_Segment $10;

  if Price_Monthly_INR = 0 then Price_Segment = 'Free';

  else if Price_Monthly_INR < 150 then Price_Segment = 'Budget';

  else if Price_Monthly_INR < 300 then Price_Segment = 'Mid';

  else Price_Segment = 'Premium';

run;

proc print data=ott_india; 

 Var Platform_ID Name ParentCompany HQ_City Price_Monthly_INR Annual_Price_INR                   Eff_Monthly_From_Annual Price_per_Original  Tenure_Yrs Price_Segment;

run;

Output:

ObsPlatform_IDNameParentCompanyHQ_CityPrice_Monthly_INRAnnual_Price_INREff_Monthly_From_AnnualPrice_per_OriginalTenure_YrsPrice_Segment
11Netflix IndiaNetflix, Inc.Mumbai6494999416.622.72279Premium
22Amazon Prime VideoAmazonBengaluru2991499124.98.32789Mid
33Disney+ HotstarDisneyMumbai29989974.95.993310Mid
44SonyLIVSony PicturesMumbai29999983.38.325011Mid
55ZEE5Zee EntertainmentMumbai19969958.34.99297Mid
66JioCinemaRelianceMumbai000.00.00006Free
77MX PlayerTimes InternetMumbai000.00.00007Free
88ALTBalaji/ALTTBalaji TelefilmsMumbai10030025.03.15798Budget
99Eros NowEros MediaMumbai9939933.34.694113Budget
1010ShemarooMeShemarooMumbai14979966.617.75566Budget
1111Sun NXTSun TV NetworkChennai9979966.614.52738Budget
1212HoichoiSVFKolkata14999983.38.32508Budget
1313AhaArha MediaHyderabad19969958.36.35455Mid
1414Lionsgate PlayLionsgateMumbai14999983.315.36925Budget
1515Apple TV+AppleMumbai991499124.933.31116Budget
1616YouTube PremiumGoogleHyderabad1391299108.351.96007Budget
1717Discovery+ (IN)Warner Bros. DiscoveryNew Delhi19939933.311.40005Mid
1818TVF PlayTVFMumbai000.00.00009Free
1919StageStage OTTGurugram19999983.328.54296Mid
2020UlluUllu DigitalMumbai1981488124.021.25717Mid
2121ChaupalChaupal OTTMohali9979966.619.97504Budget
2222Planet MarathiPlanet MarathiMumbai9969958.323.30004Budget
2323ManoramaMAXMM TVKochi9999983.328.54296Budget
2424KoodeStudio MojoKochi000.00.00005Free
2525Namma FlixIndieBengaluru9959949.933.27785Budget
2626ReelDramaAM TelevisionGuwahati9949941.633.26675Budget
2727DocubayIN10 MediaMumbai000.00.00006Free
2828Tata Play BingeTata PlayMumbai2491499124.9.5Mid
2929Vi Movies & TVVodafone IdeaMumbai000.00.00009Free
3030JioTVReliance JioMumbai000.0.9Free
3131Crunchyroll (IN)SonyMumbai9999983.324.97508Budget
3232BBC Player (IN)BBC StudiosMumbai2991799149.989.95002Mid


SECTION 3: QUICK STRUCTURE & VIEWS

PURPOSE: Inspect metadata and first rows for sanity. 

proc contents data=ott_india varnum; run;

Output:

The CONTENTS Procedure

Data Set NameWORK.OTT_INDIAObservations32
Member TypeDATAVariables23
EngineV9Indexes0
Created09/02/2025 19:08:20Observation Length360
Last Modified09/02/2025 19:08:20Deleted Observations0
Protection CompressedNO
Data Set Type SortedNO
Label   
Data RepresentationSOLARIS_X86_64, LINUX_X86_64, ALPHA_TRU64, LINUX_IA64  
Encodingutf-8 Unicode (UTF-8)  
Engine/Host Dependent Information
Data Set Page Size131072
Number of Data Set Pages1
First Data Page1
Max Obs per Page363
Obs in First Data Page32
Number of Data Set Repairs0
Filename/saswork/SAS_work1511000155AC_odaws01-apse1-2.oda.sas.com/SAS_work4C11000155AC_odaws01-apse1-2.oda.sas.com/ott_india.sas7bdat
Release Created9.0401M8
Host CreatedLinux
Inode Number1082209
Access Permissionrw-r--r--
Owner Nameu63247146
File Size256KB
File Size (bytes)262144
Variables in Creation Order
#VariableTypeLenFormatLabel
1Platform_IDNum8  
2NameChar40 Platform Name
3ParentCompanyChar40 Parent Company
4HQ_CityChar20 HQ (India)
5ModelChar10$MODEL.Business Model
6Regional_FocusChar15$REGION.Regional Focus
7GenresChar40 Popular Genres
8NotesChar60  
9Launch_Year_IndiaNum8 Launch Year (India)
10Price_Monthly_INRNum8 Monthly Price (INR)
11Annual_Price_INRNum8 Annual Price (INR)
12Subscribers_MnNum8 Subscribers (Mn, India est)
13MAUs_MnNum8 Monthly Active Users (Mn)
14Originals_Count_2024Num8 Originals Count (till 2024)
15Avg_IMDB_OriginalsNum8 Avg IMDb of Originals
16FourK_SupportNum8YESNO.4K Support
17Offline_DownloadsNum8YESNO.Offline Downloads
18Ad_Tier_FlagNum8YESNO.Has Ad Tier
19Sports_Rights_FlagNum8YESNO.Sports Rights
20Eff_Monthly_From_AnnualNum8  
21Price_per_OriginalNum8  
22Tenure_YrsNum8  
23Price_SegmentChar10  

proc sort data=ott_india out=ott_sorted; 

    by Model descending Subscribers_Mn; 

run;

proc print data=ott_sorted (obs=12);

  Var Platform_ID Name ParentCompany HQ_City Model descending Subscribers_Mn; 

  title 'Top 12 Rows by Model and Subscribers';

run; title; 

Output:

Top 12 Rows by Model and Subscribers

ObsPlatform_IDNameParentCompanyHQ_CityModelSubscribers_Mn
16JioCinemaRelianceMumbaiAVOD (Ad‑Supported)85.0
230JioTVReliance JioMumbaiAVOD (Ad‑Supported)60.0
37MX PlayerTimes InternetMumbaiAVOD (Ad‑Supported)58.0
429Vi Movies & TVVodafone IdeaMumbaiAVOD (Ad‑Supported)5.0
518TVF PlayTVFMumbaiAVOD (Ad‑Supported)2.0
624KoodeStudio MojoKochiAVOD (Ad‑Supported)0.7
73Disney+ HotstarDisneyMumbaiHybrid (Mix)40.0
85ZEE5Zee EntertainmentMumbaiHybrid (Mix)34.0
928Tata Play BingeTata PlayMumbaiHybrid (Mix)6.5
102Amazon Prime VideoAmazonBengaluruSVOD (Subscription)20.5
114SonyLIVSony PicturesMumbaiSVOD (Subscription)15.0
1211Sun NXTSun TV NetworkChennaiSVOD (Subscription)12.5

PURPOSE: Frequency cuts for categorical distribution. 

proc freq data=ott_india;

  tables Model Regional_Focus Price_Segment / nocum;

  tables Model*Regional_Focus / nocol norow nopercent;

run;

Output:

The FREQ Procedure

Business Model
ModelFrequencyPercent
AVOD (Ad‑Supported)618.75
Hybrid (Mix)39.38
SVOD (Subscription)2268.75
TVOD (Transactional)13.13
Regional Focus
Regional_FocusFrequencyPercent
Bengali13.13
Hindi721.88
Kannada13.13
Malayalam26.25
Marathi13.13
Multi‑regiona39.38
Pan‑India1443.75
Punjabi13.13
Tamil13.13
Telugu13.13
Price_SegmentFrequencyPercent
Budget1443.75
Free721.88
Mid1031.25
Premium13.13
Frequency
Table of Model by Regional_Focus
Model(Business Model)Regional_Focus(Regional Focus)
BengaliHindiKannadaMalayalamMarathiMulti‑regionaPan‑IndiaPunjabiTamilTeluguTotal
AVOD (Ad‑Supported)
0
1
0
1
0
0
4
0
0
0
6
Hybrid (Mix)
0
1
0
0
0
1
1
0
0
0
3
SVOD (Subscription)
1
5
1
1
1
2
8
1
1
1
22
TVOD (Transactional)
0
0
0
0
0
0
1
0
0
0
1
Total
1
7
1
2
1
3
14
1
1
1
32

PURPOSE: Descriptive stats for price & scale variables. 

proc means data=ott_india n mean std min p25 median p75 max maxdec=1;

  var Price_Monthly_INR Annual_Price_INR Subscribers_Mn MAUs_Mn Originals_Count_2024 Avg_IMDB_Originals;

  class Model;

run;

Output:

The MEANS Procedure

Business ModelN ObsVariableLabelNMeanStd DevMinimum25th PctlMedian75th PctlMaximum
AVOD (Ad‑Supported)6
Price_Monthly_INR
Annual_Price_INR
Subscribers_Mn
MAUs_Mn
Originals_Count_2024
Avg_IMDB_Originals
Monthly Price (INR)
Annual Price (INR)
Subscribers (Mn, India est)
Monthly Active Users (Mn)
Originals Count (till 2024)
Avg IMDb of Originals
6
6
6
6
6
5
0.0
0.0
35.1
53.2
31.2
6.2
0.0
0.0
36.9
54.1
27.7
0.9
0.0
0.0
0.7
1.3
0.0
5.5
0.0
0.0
2.0
4.5
12.0
5.8
0.0
0.0
31.5
49.3
22.5
5.9
0.0
0.0
60.0
95.0
60.0
6.0
0.0
0.0
85.0
120.0
70.0
7.8
Hybrid (Mix)3
Price_Monthly_INR
Annual_Price_INR
Subscribers_Mn
MAUs_Mn
Originals_Count_2024
Avg_IMDB_Originals
Monthly Price (INR)
Annual Price (INR)
Subscribers (Mn, India est)
Monthly Active Users (Mn)
Originals Count (till 2024)
Avg IMDb of Originals
3
3
3
3
3
2
249.0
1032.3
26.8
33.3
96.7
6.7
50.0
416.3
17.9
20.8
83.9
0.2
199.0
699.0
6.5
10.0
0.0
6.5
199.0
699.0
6.5
10.0
0.0
6.5
249.0
899.0
34.0
40.0
140.0
6.7
299.0
1499.0
40.0
50.0
150.0
6.8
299.0
1499.0
40.0
50.0
150.0
6.8
SVOD (Subscription)22
Price_Monthly_INR
Annual_Price_INR
Subscribers_Mn
MAUs_Mn
Originals_Count_2024
Avg_IMDB_Originals
Monthly Price (INR)
Annual Price (INR)
Subscribers (Mn, India est)
Monthly Active Users (Mn)
Originals Count (till 2024)
Avg IMDb of Originals
22
22
22
22
22
22
178.1
1116.7
4.9
8.8
68.3
6.6
126.1
953.3
5.5
9.6
53.8
0.6
99.0
300.0
0.3
0.6
15.0
5.5
99.0
699.0
1.1
2.0
35.0
6.0
144.0
999.0
3.1
5.4
45.0
6.8
199.0
1299.0
7.0
16.0
95.0
7.0
649.0
4999.0
20.5
35.0
220.0
7.7
TVOD (Transactional)1
Price_Monthly_INR
Annual_Price_INR
Subscribers_Mn
MAUs_Mn
Originals_Count_2024
Avg_IMDB_Originals
Monthly Price (INR)
Annual Price (INR)
Subscribers (Mn, India est)
Monthly Active Users (Mn)
Originals Count (till 2024)
Avg IMDb of Originals
1
1
1
1
1
1
0.0
0.0
0.8
1.4
10.0
7.3
.
.
.
.
.
.
0.0
0.0
0.8
1.4
10.0
7.3
0.0
0.0
0.8
1.4
10.0
7.3
0.0
0.0
0.8
1.4
10.0
7.3
0.0
0.0
0.8
1.4
10.0
7.3
0.0
0.0
0.8
1.4
10.0
7.3

PURPOSE: Summarize by region/model to get totals and averages. 

proc summary data=ott_india nway;

  class Regional_Focus Model;

  var Subscribers_Mn MAUs_Mn Annual_Price_INR Originals_Count_2024;

  output out=agg_region_model (drop=_type_ _freq_) sum= / autoname;

run;

proc print data=agg_region_model;run;

Output:

ObsRegional_FocusModelSubscribers_Mn_SumMAUs_Mn_SumAnnual_Price_INR_SumOriginals_Count_2024_Sum
1BengaliSVOD (Subscription)2.85.2999120
2HindiAVOD (Ad‑Supported)2.04.5025
3HindiHybrid (Mix)40.050.0899150
4HindiSVOD (Subscription)34.453.14185405
5KannadaSVOD (Subscription)0.50.959918
6MalayalamAVOD (Ad‑Supported)0.71.3020
7MalayalamSVOD (Subscription)1.52.899935
8MarathiSVOD (Subscription)0.61.269930
9Multi‑regionaHybrid (Mix)34.040.0699140
10Multi‑regionaSVOD (Subscription)4.38.1129860
11Pan‑IndiaAVOD (Ad‑Supported)208.0313.50142
12Pan‑IndiaHybrid (Mix)6.510.014990
13Pan‑IndiaSVOD (Subscription)47.098.713492630
14Pan‑IndiaTVOD (Transactional)0.81.4010
15PunjabiSVOD (Subscription)0.91.579940
16TamilSVOD (Subscription)12.516.079955
17TeluguSVOD (Subscription)3.96.8699110


PURPOSE: Distribution checks for price and ratings. 

proc univariate data=ott_india;

  var Price_Monthly_INR Annual_Price_INR Avg_IMDB_Originals;

  histogram Price_Monthly_INR Annual_Price_INR Avg_IMDB_Originals;

  inset n mean std p5 p95 / pos=ne;

run;

Output:

The UNIVARIATE Procedure

Variable: Price_Monthly_INR (Monthly Price (INR))

Moments
N32Sum Weights32
Mean145.78125Sum Observations4665
Std Deviation132.284818Variance17499.2732
Skewness1.79792103Kurtosis5.59714236
Uncorrected SS1222547Corrected SS542477.469
Coeff Variation90.7419976Std Error Mean23.384873
Basic Statistical Measures
LocationVariability
Mean145.7813Std Deviation132.28482
Median99.5000Variance17499
Mode99.0000Range649.00000
  Interquartile Range100.00000
Tests for Location: Mu0=0
TestStatisticp Value
Student's tt6.233998Pr > |t|<.0001
SignM12.5Pr >= |M|<.0001
Signed RankS162.5Pr >= |S|<.0001
Quantiles (Definition 5)
LevelQuantile
100% Max649.0
99%649.0
95%299.0
90%299.0
75% Q3199.0
50% Median99.5
25% Q199.0
10%0.0
5%0.0
1%0.0
0% Min0.0
Extreme Observations
LowestHighest
ValueObsValueObs
0302992
0292993
0272994
02429932
0186491

The UNIVARIATE Procedure

Histogram for Price_Monthly_INR

The UNIVARIATE Procedure

Variable: Annual_Price_INR (Annual Price (INR))

Moments
N32Sum Weights32
Mean864.53125Sum Observations27665
Std Deviation918.363024Variance843390.644
Skewness3.00347329Kurtosis13.0771025
Uncorrected SS50062367Corrected SS26145110
Coeff Variation106.226701Std Error Mean162.34518
Basic Statistical Measures
LocationVariability
Mean864.5313Std Deviation918.36302
Median799.0000Variance843391
Mode0.0000Range4999
  Interquartile Range649.50000
Tests for Location: Mu0=0
TestStatisticp Value
Student's tt5.325266Pr > |t|<.0001
SignM12.5Pr >= |M|<.0001
Signed RankS162.5Pr >= |S|<.0001
Quantiles (Definition 5)
LevelQuantile
100% Max4999.0
99%4999.0
95%1799.0
90%1499.0
75% Q3999.0
50% Median799.0
25% Q1349.5
10%0.0
5%0.0
1%0.0
0% Min0.0
Extreme Observations
LowestHighest
ValueObsValueObs
03014992
029149915
027149928
024179932
01849991

The UNIVARIATE Procedure

Histogram for Annual_Price_INR

The UNIVARIATE Procedure

Variable: Avg_IMDB_Originals (Avg IMDb of Originals)

Moments
N30Sum Weights30
Mean6.54333333Sum Observations196.3
Std Deviation0.67091463Variance0.45012644
Skewness0.1284044Kurtosis-1.1890157
Uncorrected SS1297.51Corrected SS13.0536667
Coeff Variation10.2534074Std Error Mean0.12249169
Basic Statistical Measures
LocationVariability
Mean6.543333Std Deviation0.67091
Median6.600000Variance0.45013
Mode7.000000Range2.30000
  Interquartile Range1.00000
Tests for Location: Mu0=0
TestStatisticp Value
Student's tt53.41859Pr > |t|<.0001
SignM15Pr >= |M|<.0001
Signed RankS232.5Pr >= |S|<.0001
Quantiles (Definition 5)
LevelQuantile
100% Max7.80
99%7.80
95%7.70
90%7.40
75% Q37.00
50% Median6.60
25% Q16.00
10%5.75
5%5.50
1%5.50
0% Min5.50
Extreme Observations
LowestHighest
ValueObsValueObs
5.5297.212
5.5207.327
5.7267.531
5.8247.715
5.887.818
Missing Values
Missing
Value
CountPercent Of
All ObsMissing Obs
.26.25100.00

The UNIVARIATE Procedure

Histogram for Avg_IMDB_Originals

PURPOSE: High‑level business table for leadership decks. 

proc tabulate data=ott_india format=8.1;

  class Model Price_Segment;

  var Subscribers_Mn MAUs_Mn Annual_Price_INR Originals_Count_2024;

  table Model all,

        (Subscribers_Mn MAUs_Mn Originals_Count_2024)*(mean sum) Annual_Price_INR*mean

        * (Price_Segment all);

run;

Output:

 Subscribers (Mn, India est)Monthly Active Users (Mn)Originals Count (till 2024)Annual Price (INR)
Mean
Price_SegmentAll
MeanSumMeanSumMeanSumBudgetFreeMidPremium
Business Model35.1210.753.2319.331.2187.0.0.0..0.0
AVOD (Ad‑Supported)
Hybrid (Mix)26.880.533.3100.096.7290.0..1032.3.1032.3
SVOD (Subscription)4.9108.48.8194.368.31503.0834.8.1126.04999.01116.7
TVOD (Transactional)0.80.81.41.410.010.0.0.0..0.0
All12.5400.419.2615.062.21990.0834.80.01097.94999.0864.5


PURPOSE: Executive report with computed KPIs. 

proc report data=ott_india nowd;

  column Name Model Regional_Focus Subscribers_Mn MAUs_Mn Annual_Price_INR Originals_Count_2024 Price_per_Original Tenure_Yrs;

  define Name / display;

  define Model / group;

  define Regional_Focus / group;

  define Subscribers_Mn / analysis mean format=8.1 'Subs (Mn)';

  define MAUs_Mn / analysis mean format=8.1 'MAUs (Mn)';

  define Annual_Price_INR / analysis mean format=8. 'Avg Annual INR';

  define Originals_Count_2024 / analysis mean 'Originals';

  define Price_per_Original / computed format=8.1 'INR per Original';

  define Tenure_Yrs / analysis mean 'Tenure (yrs)';

  compute Price_per_Original;

    Price_per_Original = _c6_ / max(_c7_,1);

  endcomp;

run;

Output:

Platform NameBusiness ModelRegional FocusSubs (Mn)MAUs (Mn)Avg Annual INROriginalsINR per OriginalTenure (yrs)
TVF PlayAVOD (Ad‑Supported)Hindi2.04.50250.09
Koode Malayalam0.71.30200.05
JioCinema Pan‑India85.0120.00600.06
MX Player  58.095.00700.07
Vi Movies & TV  5.08.50120.09
JioTV  60.090.0000.09
Disney+ HotstarHybrid (Mix)Hindi40.050.08991506.010
ZEE5 Multi‑regiona34.040.06991405.07
Tata Play Binge Pan‑India6.510.0149901499.05
HoichoiSVOD (Subscription)Bengali2.85.29991208.38
SonyLIV Hindi15.022.09991208.311
ALTBalaji/ALTT  3.26.0300953.28
Eros Now  12.018.0399854.713
Stage  1.22.19993528.56
Ullu  3.05.014887021.37
Namma Flix Kannada0.50.95991833.35
ManoramaMAX Malayalam1.52.89993528.56
Planet Marathi Marathi0.61.26993023.34
ShemarooMe Multi‑regiona4.07.57994517.86
ReelDrama  0.30.64991533.35
Netflix India Pan‑India8.216.5499922022.79
Amazon Prime Video  20.535.014991808.39
Lionsgate Play  3.55.59996515.45
Apple TV+  1.83.014994533.36
YouTube Premium  7.028.012992552.07
Discovery+ (IN)  4.58.03993511.45
Crunchyroll (IN)  1.12.09994025.08
BBC Player (IN)  0.40.717992090.02
Chaupal Punjabi0.91.57994020.04
Sun NXT Tamil12.516.07995514.58
Aha Telugu3.96.86991106.45
DocubayTVOD (Transactional)Pan‑India0.81.40100.06


PURPOSE: Pivot a quick matrix of model vs 4K support counts. 

proc freq data=ott_india noprint;

  tables Model*FourK_Support / out=freq_4k (drop=percent);

run;

proc transpose data=freq_4k out=pivot_4k prefix=FourK_;

  by Model;

  id FourK_Support;

  var count;

run;

proc print data=pivot_4k;run;

Output:

ObsModel_NAME__LABEL_FourK_NoFourK_Yes
1AVOD (Ad‑Supported)COUNTFrequency Count51
2Hybrid (Mix)COUNTFrequency Count.3
3SVOD (Subscription)COUNTFrequency Count139
4TVOD (Transactional)COUNTFrequency Count.1


SECTION 4: SQL ANALYSIS

PURPOSE: Use PROC SQL for joins, views, windows, and filters. 

/*Compute total subs per model */

proc sql;

  create table model_totals as

  select Model, sum(Subscribers_Mn) as Total_Model_Subs

  from ott_india

  group by Model;

quit;

proc print data=model_totals;

run;

Output:

ObsModelTotal_Model_Subs
1AVOD (Ad‑Supported)210.7
2Hybrid (Mix)80.5
3SVOD (Subscription)108.4
4TVOD (Transactional)0.8

/* Join back to compute share */

proc sql;

  create table model_shares as

  select a.Name, a.Model, a.Subscribers_Mn,

         b.Total_Model_Subs,

         case 

            when b.Total_Model_Subs>0 

            then a.Subscribers_Mn / b.Total_Model_Subs

            else .

         end as Share_in_Model format=percent8.2

  from ott_india as a

  left join model_totals as b

  on a.Model=b.Model;

quit;

proc print data=model_shares(obs=10);

run;

Output:

ObsNameModelSubscribers_MnTotal_Model_SubsShare_in_Model
1JioCinemaAVOD (Ad‑Supported)85.0210.740.34%
2KoodeAVOD (Ad‑Supported)0.7210.70.33%
3TVF PlayAVOD (Ad‑Supported)2.0210.70.95%
4Vi Movies & TVAVOD (Ad‑Supported)5.0210.72.37%
5MX PlayerAVOD (Ad‑Supported)58.0210.727.53%
6JioTVAVOD (Ad‑Supported)60.0210.728.48%
7Tata Play BingeHybrid (Mix)6.580.58.07%
8ZEE5Hybrid (Mix)34.080.542.24%
9Disney+ HotstarHybrid (Mix)40.080.549.69%
10Lionsgate PlaySVOD (Subscription)3.5108.43.23%


SECTION 5: RANKING & VISUALS

PURPOSE: Rank platforms by subscribers within model and overall. 

proc rank data=ott_india out=ranked ties=low descending;

  var Subscribers_Mn;

  ranks Rank_Overall;

run;

proc sort data=ott_india out=tmp_model;

  by Model;

run;

proc rank data=tmp_model out=ranked_by_model ties=low descending;

  by Model;

  var Subscribers_Mn;

  ranks Rank_in_Model;

run;

proc print data=ranked_by_model(obs=10);

var  Platform_ID Name ParentCompany HQ_City Model Subscribers_Mn Rank_in_Model ;

 run;

Output:

ObsPlatform_IDNameParentCompanyHQ_CityModelSubscribers_MnRank_in_Model
16JioCinemaRelianceMumbaiAVOD (Ad‑Supported)85.01
27MX PlayerTimes InternetMumbaiAVOD (Ad‑Supported)58.03
318TVF PlayTVFMumbaiAVOD (Ad‑Supported)2.05
424KoodeStudio MojoKochiAVOD (Ad‑Supported)0.76
529Vi Movies & TVVodafone IdeaMumbaiAVOD (Ad‑Supported)5.04
630JioTVReliance JioMumbaiAVOD (Ad‑Supported)60.02
73Disney+ HotstarDisneyMumbaiHybrid (Mix)40.01
85ZEE5Zee EntertainmentMumbaiHybrid (Mix)34.02
928Tata Play BingeTata PlayMumbaiHybrid (Mix)6.53
101Netflix IndiaNetflix, Inc.MumbaiSVOD (Subscription)8.25


PURPOSE: Simple bar charts for leadership (requires SAS/GRAPH or ODS Graphics). 

ods graphics on;

proc sgplot data=ott_india;

  vbar Model / response=Subscribers_Mn stat=sum datalabel;

  title 'Total Subscribers by Model';

run; title;

Output:


proc sgplot data=ott_india;

  vbar Regional_Focus / response=MAUs_Mn stat=sum datalabel;

  title 'MAUs by Regional Focus';

run; title; ods graphics off;

Output:



SECTION 6: DATA QUALITY & UTILITIES

PURPOSE: Macro toolkit for common analytics workflows. 

PURPOSE (macro): Append one new OTT row to an existing dataset. 

%macro add_ott(ds=ott_india,

               Platform_ID=., Name=, ParentCompany=, HQ_City=, Model=, Regional_Focus=,

               Genres=, Launch_Year_India=., Price_Monthly_INR=., Annual_Price_INR=.,

               Subscribers_Mn=., MAUs_Mn=., Originals_Count_2024=., Avg_IMDB_Originals=.,

               FourK_Support=0, Offline_Downloads=0, Ad_Tier_Flag=0, Sports_Rights_Flag=0,

               Notes=);

  data &ds.;

    set &ds. end=eof;

    output;

    if eof then do;

      Platform_ID=&Platform_ID.; Name="&Name."; ParentCompany="&ParentCompany."; HQ_City="&HQ_City.";

      Model="&Model."; Regional_Focus="&Regional_Focus."; Genres="&Genres.";

      Launch_Year_India=&Launch_Year_India.; Price_Monthly_INR=&Price_Monthly_INR.; Annual_Price_INR=&Annual_Price_INR.;

      Subscribers_Mn=&Subscribers_Mn.; MAUs_Mn=&MAUs_Mn.; Originals_Count_2024=&Originals_Count_2024.; Avg_IMDB_Originals=&Avg_IMDB_Originals.;

      FourK_Support=&FourK_Support.; Offline_Downloads=&Offline_Downloads.; Ad_Tier_Flag=&Ad_Tier_Flag.; Sports_Rights_Flag=&Sports_Rights_Flag.;

      Notes="&Notes.";

       Re‑compute derived fields 

      Eff_Monthly_From_Annual = round(Annual_Price_INR/12,0.1);

      if Originals_Count_2024>0 then Price_per_Original = Annual_Price_INR / Originals_Count_2024; else Price_per_Original = .;

      Tenure_Yrs = max(0, year(today()) - Launch_Year_India);

      if Price_Monthly_INR=0 then Price_Segment='Free';

      else if Price_Monthly_INR<150 then Price_Segment='Budget';

      else if Price_Monthly_INR<300 then Price_Segment='Mid';

      else Price_Segment='Premium';

      output;

    end;

  run;

  proc print data=&ds.(obs=10);

  run;

%mend;


%add_ott(ds=ott_india, Platform_ID=33, Name=NewRegionalOTT, ParentCompany=StartUp, HQ_City=Indore,

         Model=SVOD, Regional_Focus=Hindi, Genres=Drama, Launch_Year_India=2024,

         Price_Monthly_INR=129, Annual_Price_INR=899, Subscribers_Mn=0.2, MAUs_Mn=0.5,

         Originals_Count_2024=10, Avg_IMDB_Originals=6.3, FourK_Support=0, Offline_Downloads=1, Ad_Tier_Flag=1, Sports_Rights_Flag=0,

         Notes=Pilot);

Output:

ObsPlatform_IDNameParentCompanyHQ_CityModelRegional_FocusGenresNotesLaunch_Year_IndiaPrice_Monthly_INRAnnual_Price_INRSubscribers_MnMAUs_MnOriginals_Count_2024Avg_IMDB_OriginalsFourK_SupportOffline_DownloadsAd_Tier_FlagSports_Rights_FlagEff_Monthly_From_AnnualPrice_per_OriginalTenure_YrsPrice_Segment
11Netflix IndiaNetflix, Inc.MumbaiSVOD (Subscription)Pan‑IndiaDrama, Thriller, ComedyPremium global originals201664949998.216.52207.1YesYesYesNo416.622.72279Premium
22Amazon Prime VideoAmazonBengaluruSVOD (Subscription)Pan‑IndiaAction, Drama, ComedyBundled with Prime2016299149920.535.01807.0YesYesNoYes124.98.32789Mid
33Disney+ HotstarDisneyMumbaiHybrid (Mix)HindiDrama, Sports, RealityLarge sports slate201529989940.050.01506.8YesYesYesYes74.95.993310Mid
44SonyLIVSony PicturesMumbaiSVOD (Subscription)HindiThriller, Sports, RealityOriginal thrillers201429999915.022.01206.9YesYesYesYes83.38.325011Mid
55ZEE5Zee EntertainmentMumbaiHybrid (Mix)Multi‑regionaDrama, Soap, RealityStrong TV library201819969934.040.01406.5YesYesYesNo58.34.99297Mid
66JioCinemaRelianceMumbaiAVOD (Ad‑Supported)Pan‑IndiaMovies, SportsScale via telco20190085.0120.0606.0YesYesYesYes0.00.00006Free
77MX PlayerTimes InternetMumbaiAVOD (Ad‑Supported)Pan‑IndiaDrama, RealityHigh AVOD reach20180058.095.0705.9NoYesYesNo0.00.00007Free
88ALTBalaji/ALTTBalaji TelefilmsMumbaiSVOD (Subscription)HindiRomance, DramaNiche originals20171003003.26.0955.8NoYesYesNo25.03.15798Budget
99Eros NowEros MediaMumbaiSVOD (Subscription)HindiMovies, MusicMovie catalogue20129939912.018.0856.0NoYesYesNo33.34.694113Budget
1010ShemarooMeShemarooMumbaiSVOD (Subscription)Multi‑regionaClassics, DevotionalLegacy catalogue20191497994.07.5456.2NoYesYesNo66.617.75566Budget


PURPOSE (macro): Quick profile (structure + univariate + basic frequencies). 

%macro quick_profile(ds=ott_india);

  proc contents data=&ds. varnum; run;

  proc means data=&ds. n mean std min median p95 max; var Price_Monthly_INR Annual_Price_INR Subscribers_Mn MAUs_Mn; run;

  proc freq data=&ds.; tables Model*Price_Segment / nopercent nocol norow; run;

%mend;


%quick_profile(ds=ott_india);

Output:

The CONTENTS Procedure

Data Set NameWORK.OTT_INDIAObservations34
Member TypeDATAVariables23
EngineV9Indexes0
Created09/02/2025 19:55:23Observation Length360
Last Modified09/02/2025 19:55:23Deleted Observations0
Protection CompressedNO
Data Set Type SortedNO
Label   
Data RepresentationSOLARIS_X86_64, LINUX_X86_64, ALPHA_TRU64, LINUX_IA64  
Encodingutf-8 Unicode (UTF-8)  
Engine/Host Dependent Information
Data Set Page Size131072
Number of Data Set Pages1
First Data Page1
Max Obs per Page363
Obs in First Data Page34
Number of Data Set Repairs0
Filename/saswork/SAS_work1511000155AC_odaws01-apse1-2.oda.sas.com/SAS_work4C11000155AC_odaws01-apse1-2.oda.sas.com/ott_india.sas7bdat
Release Created9.0401M8
Host CreatedLinux
Inode Number1087665
Access Permissionrw-r--r--
Owner Nameu63247146
File Size256KB
File Size (bytes)262144
Variables in Creation Order
#VariableTypeLenFormatLabel
1Platform_IDNum8  
2NameChar40 Platform Name
3ParentCompanyChar40 Parent Company
4HQ_CityChar20 HQ (India)
5ModelChar10$MODEL.Business Model
6Regional_FocusChar15$REGION.Regional Focus
7GenresChar40 Popular Genres
8NotesChar60  
9Launch_Year_IndiaNum8 Launch Year (India)
10Price_Monthly_INRNum8 Monthly Price (INR)
11Annual_Price_INRNum8 Annual Price (INR)
12Subscribers_MnNum8 Subscribers (Mn, India est)
13MAUs_MnNum8 Monthly Active Users (Mn)
14Originals_Count_2024Num8 Originals Count (till 2024)
15Avg_IMDB_OriginalsNum8 Avg IMDb of Originals
16FourK_SupportNum8YESNO.4K Support
17Offline_DownloadsNum8YESNO.Offline Downloads
18Ad_Tier_FlagNum8YESNO.Has Ad Tier
19Sports_Rights_FlagNum8YESNO.Sports Rights
20Eff_Monthly_From_AnnualNum8  
21Price_per_OriginalNum8  
22Tenure_YrsNum8  
23Price_SegmentChar10  

The MEANS Procedure

VariableLabelNMeanStd DevMinimumMedian95th PctlMaximum
Price_Monthly_INR
Annual_Price_INR
Subscribers_Mn
MAUs_Mn
Monthly Price (INR)
Annual Price (INR)
Subscribers (Mn, India est)
Monthly Active Users (Mn)
34
34
34
34
144.7941176
866.5588235
11.7882353
18.1176471
128.2761650
890.1369725
20.1923142
29.2956763
0
0
0.2000000
0.5000000
114.5000000
799.0000000
3.3500000
5.7500000
299.0000000
1799.00
60.0000000
95.0000000
649.0000000
4999.00
85.0000000
120.0000000

The FREQ Procedure

Frequency
Table of Model by Price_Segment
Model(Business Model)Price_Segment
BudgetFreeMidPremiumTotal
AVOD (Ad‑Supported)
0
6
0
0
6
Hybrid (Mix)
0
0
3
0
3
SVOD (Subscription)
16
0
7
1
24
TVOD (Transactional)
0
1
0
0
1
Total
16
7
10
1
34

PURPOSE (macro): Create price segment using optional custom thresholds. 

%macro segment_price(ds=ott_india, b1=150, b2=300);

  data &ds.; set &ds.;

    length Price_Segment $10;

    if Price_Monthly_INR=0 then Price_Segment='Free';

    else if Price_Monthly_INR<&b1. then Price_Segment='Budget';

    else if Price_Monthly_INR<&b2. then Price_Segment='Mid';

    else Price_Segment='Premium';

  run;

  proc print data=&ds.(obs=10);

  run;

%mend;


%segment_price(ds=ott_india, b1=120, b2=250);

Output:

ObsPlatform_IDNameParentCompanyHQ_CityModelRegional_FocusGenresNotesLaunch_Year_IndiaPrice_Monthly_INRAnnual_Price_INRSubscribers_MnMAUs_MnOriginals_Count_2024Avg_IMDB_OriginalsFourK_SupportOffline_DownloadsAd_Tier_FlagSports_Rights_FlagEff_Monthly_From_AnnualPrice_per_OriginalTenure_YrsPrice_Segment
11Netflix IndiaNetflix, Inc.MumbaiSVOD (Subscription)Pan‑IndiaDrama, Thriller, ComedyPremium global originals201664949998.216.52207.1YesYesYesNo416.622.72279Premium
22Amazon Prime VideoAmazonBengaluruSVOD (Subscription)Pan‑IndiaAction, Drama, ComedyBundled with Prime2016299149920.535.01807.0YesYesNoYes124.98.32789Premium
33Disney+ HotstarDisneyMumbaiHybrid (Mix)HindiDrama, Sports, RealityLarge sports slate201529989940.050.01506.8YesYesYesYes74.95.993310Premium
44SonyLIVSony PicturesMumbaiSVOD (Subscription)HindiThriller, Sports, RealityOriginal thrillers201429999915.022.01206.9YesYesYesYes83.38.325011Premium
55ZEE5Zee EntertainmentMumbaiHybrid (Mix)Multi‑regionaDrama, Soap, RealityStrong TV library201819969934.040.01406.5YesYesYesNo58.34.99297Mid
66JioCinemaRelianceMumbaiAVOD (Ad‑Supported)Pan‑IndiaMovies, SportsScale via telco20190085.0120.0606.0YesYesYesYes0.00.00006Free
77MX PlayerTimes InternetMumbaiAVOD (Ad‑Supported)Pan‑IndiaDrama, RealityHigh AVOD reach20180058.095.0705.9NoYesYesNo0.00.00007Free
88ALTBalaji/ALTTBalaji TelefilmsMumbaiSVOD (Subscription)HindiRomance, DramaNiche originals20171003003.26.0955.8NoYesYesNo25.03.15798Budget
99Eros NowEros MediaMumbaiSVOD (Subscription)HindiMovies, MusicMovie catalogue20129939912.018.0856.0NoYesYesNo33.34.694113Budget
1010ShemarooMeShemarooMumbaiSVOD (Subscription)Multi‑regionaClassics, DevotionalLegacy catalogue20191497994.07.5456.2NoYesYesNo66.617.75566Mid



To Visit My Previous Online Streaming Flatform Dataset:Click Here
To Visit My Previous Statistical Evaluation Of Clinical Trials:Click Here
To Visit My Previous Unlocking Retail Insights Dataset:Click Here
To Visit My Previous Sas Interview Questions-1:Click Here



Follow Us On : 


 


--- FOLLOW OUR BLOG FOR MORE INFORMATION.

--->PLEASE DO COMMENTS AND SHARE OUR BLOG.

Comments

Popular posts from this blog

409.Can We Build a Reliable Emergency Services Analytics & Fraud Detection System in SAS While Identifying and Fixing Intentional Errors?

397.If a satellite has excellent signal strength but very high latency, can it still deliver good quality communication? Why or why not?A Sas Study

401.How Efficient Are Global Data Centers? A Complete SAS Analytics Study