Cultflicks Video Streaming
Cultflicks is a SaaS based streaming platform that became popular for streaming unpopular movies. It had sold subscriptions for a long time but eventually, the growth stalled. The company wanted to improve its product offering for casual viewers by adding a pay-per-view subscription model. This would mean that subscribers would only pay for the content that they watched and if they didn’t watch anything, they wouldn’t be charged for that month.
After a successful advertising campaign, Cultflicks now has customers across two different subscription levels. Premium subscribers, who pay a standard monthly fee for all content, and pay-per-view subscribers whose monthly charge will vary depending on their consumption each month.
The Cultflicks example stream will provide a batch flow that records viewing statistics, classifies users according to their usage, and processes data into billable information. This stream highlights:
An actual stream flow from raw data
Data enrichment
User classification to multiple use cases, like billing, notification, settlement and analytics
A step-by-step preview of data transformation from "raw usage data" to data that the business can gain insight from, for example, data related to churn or upselling opportunities.
Functions Used and Stream Breakdown
Part A - Input Data Simulation, Enrichment of User & Movie title information, and Calculation of View Percentage
Count: Triggers the stream to run as many times as specified in the configuration
View simulator (Script): Collects data from a single source
Enrich user info (Script): Enriches the collected data with user information
Enrich title info (Script): Enriches the data with movie title information
Calculate view percent (Map): Calculates the viewing percentage per movie
Part B - Aggregating Total View Time, Classifying the User and Sending Billing Information
Aggregate view time (Data Aggregator): Aggregates the total view time per user, both actual view time and potential maximum view time
Classify user (Script: Classifies the user into "heavy, standard, light" (based on view time) and churn risk (yes/no) based on view completion percentage
Format for billing (Field Organizer): Formatting and renaming input data fields for billing
To Billing (No Operation): Sends the billing information and classification info and nudging messages into the billing system
Part C - Performing View Completion Check
View completion check (Route): Routes data into two different paths for movie titles that were viewed to completion and not viewed to completionÂ
Part D - Counting Movies Viewed to Completion and Sending Aggregated Data for Partner Billing
Count completed (Data Aggregator): Counts how many movies were viewed to completion
Format for settlement (Field Organizer):Â Formatting and renaming input data fields for settlement
To partner settlement (No Operation):Â Sends the aggregated number of view seconds per movie IP owner
Part E - Counting Movies Not Viewed to Completion and Sending Aggregated Data for External Analytics
Count not completed (Data Aggregator): Counts how many movies were and weren't viewed to completion
Format for analytics (Field Organizer): Formatting and renaming input data fields for analytics
To analytics (No Operation): Sends analytics to an external system