Background
In V2 of Year in Review there was a slide for logged-in users that showed the number of articles they read this year. We want to update the copy and logic of the slide.
Task
EN Wiki
- Maintain the illustration but update the color schemes as advised by design
- Title should include the following variables
- Minutes spent
- # of articles read
- Year
- The first sentence (50%) should use the formula provided by @SNowick_WMF to place what percent the user is in for readers globally: https://docs.google.com/spreadsheets/d/1fzdsQbC41Cw9bUH_n7CWx3O7WCLVs4dWaQQ_SXhROf8/edit?gid=542339239#gid=542339239.
- Example copy for Heavy user
- You spent 924 minutes reading 350 articles in 2025
- We estimate that puts you in the top 50% of Wikipedia readers globally. The average person reads 335 articles a year.
- People spent an estimated 2,XXX,XXX,XXX hours—around 275,000 years!—reading English Wikipedia in 2025.
- Example copy for Light user
- You spent 14 minutes reading 24 articles in 2025
- People spent an estimated 2,XXX,XXX,XXX hours—around 275,000 years!—reading English Wikipedia in 2025.
- Example copy for Heavy user
- The first sentence should also include:
- Average amount of articles users
- The second sentence should include the collective reading hours for English Wikipedia
Non EN Wiki
- Maintain the illustration but update the color schemes as advised by design
- Title should include the following variables
- Minutes spent
- # of articles read
- Year
- The first sentence (50%) should use the formula provided by @SNowick_WMF to place what percent the user is in for readers globally: https://docs.google.com/spreadsheets/d/1fzdsQbC41Cw9bUH_n7CWx3O7WCLVs4dWaQQ_SXhROf8/edit?gid=542339239#gid=542339239. Do not show this sentence if the user is not in the top 50% or better.
- Example copy for Heavy user
- You spent 924 minutes reading 350 articles in 2025
- We estimate that puts you in the top 50% of Wikipedia readers globally. The average person reads 335 articles a year.
- Wikipedia had XX,XXX,XXX articles across over X active languages this year. You joined millions in expanding knowledge and exploring diverse topics.
- Example copy for Light user
- You spent 14 minutes reading 24 articles in 2025
- Wikipedia had XX,XXX,XXX articles across over X active languages this year. You joined millions in expanding knowledge and exploring diverse topics.
- Example copy for Heavy user
- The first sentence should also include:
- Average amount of articles users
- The second sentence should have copy from the non-EN collective slide about # of languages available
Engineering Notes
- Update YearInReviewReadCountSlideDataController's populateSlideData method:
- Modify "read count" calculation:
- Do not fetch from legacy page views anymore. Instead get data from WMFPageViewsDataController's fetchPageViewCounts method.
- Add "Number of hours" calculation:
- Fetch all page views from the year from WMFPageViewsDataController. Each CDPageView has a numberOfSeconds. Aggregate those values so that we have a final count of hours across all page views. Ensure number of hours is persisted with slide data.
- Add "top X percent" calculation:
- Calculate a personalized percentage from the read count and number of hours calculations above, against denominators provided by @SNowick_WMF. (see T402445). Ensure percentage is persisted with slide data.
- Question: Not sure how we can get down to a single percentage here with two data points - number of articles and number of hours.
- Modify "read count" calculation:
- Create new V3 slide
- Lean on WMFYearInReviewSlideStandardViewModel + WMFYearInReviewSlideStandardView for this. Ensure new slide is only inserted when V3 developer setting is enabled, otherwise use old copy for V2. Slides are inserted in WMFYearInReviewViewModel. Ensure the correct collective sentence is inserted at the end of the body text for EN vs non-EN.
- Ensure sharing individual slide still works well
Test notes
- Fresh install TestFlight 7.8.5. Log into an account. Navigate to lots of articles, spent time (1+ minutes) reading articles. Go to developer settings, enable YiR V3. Go to Profile > Year in Review.
- Ensure that you see the reading slide first
- Ensure number of minutes and article count looks accurate.
- Ensure that if you read 335 articles or less, you do not see the "We estimate that puts you in the top..." sentence.
Note: Unsure how we can test the top % calculation, since we would need to have QA read hundreds of articles. We have edited the code and confirmed the percentage ranges are working with temp hardcoded values in development / code review.
