Page MenuHomePhabricator

Update Articles read & Minutes spent slide for Year in Review
Closed, ResolvedPublic5 Estimated Story Points

Description

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.
  • 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.
  • 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

  1. 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.
  1. 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.
  1. Ensure sharing individual slide still works well

Test notes

  1. 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.
  2. Ensure that you see the reading slide first
  3. Ensure number of minutes and article count looks accurate.
  4. 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.

Event Timeline

Tsevener set the point value for this task to 5.Aug 26 2025, 2:05 PM

Moving this into Ready for future sprints since most of this work can be started and we'll slot in the percentage calculation near the end. Please move back to blocked when we are fully blocked on the rest of this task by that.

Update: Denominator information can be found in T402445.

Tsevener triaged this task as Medium priority.Aug 29 2025, 2:01 PM

I have a couple of blockers here. Screenshot for reference:

Screenshot 2025-09-08 at 5.59.32 PM.png (1×614 px, 441 KB)

  1. @SNowick_WMF I need to know the average number of articles a person reads in a year. My 3,647 number here is a placeholder.
  2. @JTannerWMF @SChekfa-WMF The old V2 version of this slide would fall back to the generic/collective slides if the user did not read at least 5 articles. I have kept this logic but I can easily change it. Should I also hide this slide if users read for < 1 hour? Right now I am cutting off partial hours and rounding down.
  3. @ABorbaWMF This also means most of our testing shows 0 hours, since it is difficult to read articles for multiple hours when testing. Perhaps I can add a developer setting that treats minutes or seconds as hours, so that you could raise these hours more easily when testing?

We are going with minutes instead of hours, which should make testing a little easier.

@ABorbaWMF Let me know if you would still like a developer settings toggle.

For Average Articles Read I do not have a way to split Users by Language for Yearly Data to calculate separate EN and Non EN average pages viewed yearly, it seems better to use a universal count for iOS and Android users:
335 is the best avg we have to use.

App User Avg Articles Read: 335
Minutes per Article (Estimated): 3.0
Avg Minutes Spent Reading: 1005
Avg Hours Spent Reading: 16 hours, 45m

Data

@SChekfa-WMF

New design review build - Staging 7.8.2 (105):

  1. Delete all Wikipedia apps. Fresh install this Staging build. Log in on device, EN primary app language, US device region.
  2. Visit several articles. Spend 1+ minutes total looking at articles.
  3. Go to developer settings, turn on YiR V3.
  4. In Settings, go to Year in Review, toggle off and back on (don't do this too fast).
  5. Year in Review should show in Profile. Ensure time spent slide displays as expected. 2nd sentence should be English collective sentence.
  6. Go to app settings, switch app language to Test Wiki.
  7. Go back to Year in Review in Profile. Ensure time spent slide displays as expected. 2nd sentence should be non-English collective sentence.

Hi @Tsevener! Quick question: is the minutes spent number in the slide their actual minutes spent reading (based on https://phabricator.wikimedia.org/T388070)? Or is it an estimate using a formula from @SNowick_WMF

@HNordeenWMF

Quick question: is the minutes spent number in the slide their actual minutes spent reading (based on https://phabricator.wikimedia.org/T388070)?

Yes, it is the number of seconds they spent on each article for the year, aggregated and turned into minutes. There is also the microsite sentence added to this slide - "People spent an estimated 2.4 billion hours—nearly 275,000 years!—reading English Wikipedia in 2025. ", which just came from the microsite slide. I don't think @SNowick_WMF estimated it but I could be wrong.

@Tsevener great, thanks! Yes, that years calculation will come from the microsite.

HNordeenWMF renamed this task from Update Logic for Personalized Hours spent slide for Year in Review to Update Articles read & Minutes spent slide for Year in Review.Sep 24 2025, 6:13 PM

Use the following buckets for user percentile rank calcs - only above average users will se the rank sentence: NEW Rank Readers

Appears to be fixed on 7.8.5 (5867)

Tested on iPhone 16 on iOS 26, iPad 12.9 on iPadOS 26, and iPhone 11 on iOS 18. Tested on all themes, and a few languages (English, French, Turkish)

HNordeenWMF claimed this task.