StreamVerse Engagement Score
Data science wants a simple "engagement score" per subscriber — average minutes watched per distinct show — to feed into a churn model later. They do not trust the metric for a subscriber who has barely watched anything, so a subscriber has to have reached across a certain number of different shows before they get a score at all. How many is still being argued about, and it will keep moving while the churn model is tuned, so it comes in with the request rather than being fixed in the report.
Watch events
| id | subscriber_id | show_id | watch_minutes | watch_date |
|---|---|---|---|---|
| 1 | 1 | 1 | 45 | 2023-05-01 |
| 2 | 1 | 5 | 60 | 2023-05-03 |
| 3 | 2 | 3 | 20 | 2023-05-02 |
| 4 | 3 | 2 | 55 | 2023-05-05 |
| 5 | 4 | 1 | 40 | 2023-05-06 |
| 6 | 4 | 4 | 70 | 2023-05-08 |
| 7 | 1 | 3 | 25 | 2023-05-10 |
| 8 | 3 | 5 | 50 | 2023-05-11 |
| 9 | 2 | 2 | 30 | 2023-05-12 |
| 10 | 5 | 4 | 65 | 2023-05-14 |
Subscribers
| id | name | plan | signup_date | country |
|---|---|---|---|---|
| 1 | Ana Torres | premium | 2022-11-01 | US |
| 2 | Ben Osei | basic | 2023-01-15 | UK |
| 3 | Chloe Martin | standard | 2023-02-20 | US |
| 4 | Dev Malhotra | premium | 2023-03-10 | IN |
| 5 | Ella Novak | basic | 2023-04-05 | UK |
Input
The DataFrames above are already built for you. One line of input arrives: a whole number, at least 1 — the fewest distinct shows a subscriber must have reached to be given a score.
Task: For subscribers who watched at least that many distinct shows, compute total watch_minutes / number of distinct shows watched, rounded to 2 decimals. Print a dict mapping subscriber name → score, with the subscribers in id order. Anyone below the bar is left out entirely rather than scored and marked.
Sign in to solve this problem
Reading problems is free for everyone — solving them (Run, Submit, and tracking what you've solved) needs an account.
Sign in