Cultflicks Video Streaming
Cultflicks is a streaming entertainment SaaS company that has been popular for streaming very unpopular movies. It has sold subscriptions for a long time but the growth has stalled. The subscription is intended to be free from ads and wants to capture their casual viewers' attention by adding a pay-for-view-time based subscription model that only costs the user in a given month if they have viewed something for that month, otherwise, they are not charged anything for that month. They have recently launched a campaign where they classify users according to the intensity of usage and also view completion time. These classifications are used to nudge users into becoming Premium subscribers or downgrade to pay-for-view-time low-tier subscribers.
The Cultflicks example stream shows a batch flow where viewing statistics are recorded, users are classified according to their usage/views and this data is processed into billable information. This stream highlights:
Actual stream flow from raw data, enrichment, user classification to multiple use cases: billing, notification, settlement, analytics
Preview data transformation step-by-step from "raw usage data" to very business-close data related to churn and up-sell nudging
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