Page MenuHomePhabricator

Impact Module: Recent Editing Activity
Closed, ResolvedPublic

Description

Description

  • A new section in main section of the impact module with information about a person’s recent activity
  • For the initial iteration, we will not include the timescale (30 day, 60 day, 1 year) dropdown, and keep charts at the current 60 day standard. (The second iteration may include this option T220143 ).
  • The “Last edited” value with the following logic:

Within the last day: Today
Between 1-14days: $X days ago
More than 14 days ago: 2+ weeks ago

Current Figma design

Screenshot 2022-09-08 at 11.53.46.png (2×1 px, 364 KB)


Acceptance Criteria

Given I'm viewing my Impact Module,
When I view the Recent Editing Activity,
Then I see a small bar chart documenting the number of edits I made over the last 60 days

Given I'm viewing my Impact Module,
When I view the data under the bar chart,
Then I see Last Edited and Best Streak data.


Completion checklist

Functionality

  • The patches have been code reviewed and merged
  • The task passes its acceptance criteria

Engineering

  • There are existing and passing unit/integration tests
  • Tests for every involved patch should pass
  • Coverage for every involved project should have improved or stayed the same

Design & QA

  • If the task is UX/Design related: it must be reviewed and approved by the UX/Design team
  • Must be reviewed and approved by Quality Assurance.

Documentation

  • Related and updated documentation done where necessary

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
kostajh triaged this task as Medium priority.Jul 19 2022, 4:29 PM

Change 833992 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] User impact: add recent activity section

https://gerrit.wikimedia.org/r/833992

In the description of the task there's the following specification

Within the last day: Today
Between 1-14days: $X days ago
More than 14 days ago: 2+ weeks ago

What's the reason to give an approximate range here? We could leverage the time from now display to moment.js which uses a more precise range scale.

What's the reason to give an approximate range here?

My understanding is this was added to help personalize the data and provide context. I know other contributing apps / sites provide a similar data point.

We could leverage the time from now display to moment.js which uses a more precise range scale.

That makes sense to me, and as long as it's fully localizable, then it seems like a good plan.

Sgs changed the task status from Open to In Progress.Sep 22 2022, 10:48 PM
Sgs moved this task from In Progress to Code Review on the Growth-Team (Sprint 0 (Growth Team)) board.

Should the best streak be framed to the time scale in current use? For now that would be fixed to 60 days but it could change in the future if we decide to add the 30/60/year selector.

image.png (636×1 px, 75 KB)

One consideration if we don't use the selector on the first iteration is that the only way the user can understand the time scale is 60 days is by looking at the dates under the bar chart (or counting the bars and figuring it out).

I think ideally all date-related data will follow the same date-range, so in my opinion the best streak should be relate to the time scale currently viewed.

One consideration if we don't use the selector on the first iteration is that the only way the user can understand the time scale is 60 days is by looking at the dates under the bar chart

This is a good point, and I think we need to make this more clear. The current Impact Module helps clarify this with this copy:
Views since you edited (last 60 days):

@KieranMcCann - how can we make it more clear in the current design which time scale is being viewed (given that we won't have the "Last x days" drop down in this first iteration)?

Screen Shot 2022-09-28 at 8.44.13 AM.png (772×778 px, 60 KB)

Change 833992 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] User impact: add recent activity section

https://gerrit.wikimedia.org/r/833992

@KieranMcCann @BKots-WMF @KStoller-WMF is the minimum unit for a streak 1 day? E.g. if a user creates their account and makes an edit on day one, we should show "Best streak: 1 day" ? or should that only show up once they've edited for more than one day in a row?

Change 836702 had a related patch set uploaded (by Kosta Harlan; author: Kosta Harlan):

[mediawiki/extensions/GrowthExperiments@master] i18n: Use plural for recent activity streak count

https://gerrit.wikimedia.org/r/836702

@KieranMcCann - how can we make it more clear in the current design which time scale is being viewed (given that we won't have the "Last x days" drop down in this first iteration)?

@KStoller-WMF I would use the same method that we use in the current module where we put the timeframe in parenthesis in the heading. Like this...

Screenshot 2022-09-29 at 10.42.49.png (1×2 px, 281 KB)

But I think we would want to remove this when we add the feature to change the timeframe.

@KieranMcCann @BKots-WMF @KStoller-WMF is the minimum unit for a streak 1 day? E.g. if a user creates their account and makes an edit on day one, we should show "Best streak: 1 day" ? or should that only show up once they've edited for more than one day in a row?

My opinion on this is that we should do as you described @kostajh, and show 1 day once someone has made their first edit.

Change 836702 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] i18n: Use plural for recent activity streak count

https://gerrit.wikimedia.org/r/836702

Change 837090 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] User impact: display 60 days in the recent activity panel

https://gerrit.wikimedia.org/r/837090

My opinion on this is that we should do as you described @kostajh, and show 1 day once someone has made their first edit.

Fixed, see:

Screenshot 2022-09-30 at 14.18.08.png (602×754 px, 59 KB)

Some more edge cases for the streak text display:

#In development status quoScenario description & questions
1
Screenshot 2022-09-30 at 12.49.58.png (602×910 px, 64 KB)
A streak that started prior to the time frame in context. Should the best streak text still display it from the beginning of the "most recent best streak"?
2
Screenshot 2022-09-30 at 14.48.49.png (616×758 px, 58 KB)
A streak of several or one day that started and ended prior to the time frame in context. Should we show these streaks in the text display even with an empty bar graph?
3
Screenshot 2022-09-30 at 14.44.51.png (518×760 px, 45 KB)
A newcomer with 0 edits in the time frame in context might get a non-positive display, with "0 days in a row" displayed and labels without empty content. I guess it would be better to hide it until they have made their first edit right?

cc @KStoller-WMF

My opinion on this is that we should do as you described @kostajh, and show 1 day once someone has made their first edit.

Fixed, see:

Screenshot 2022-09-30 at 14.18.08.png (602×754 px, 59 KB)

Some more edge cases for the streak text display:

#In development status quoScenario description & questions
1
Screenshot 2022-09-30 at 12.49.58.png (602×910 px, 64 KB)
A streak that started prior to the time frame in context. Should the best streak text still display it from the beginning of the "most recent best streak"?
2
Screenshot 2022-09-30 at 14.48.49.png (616×758 px, 58 KB)
A streak of several or one day that started and ended prior to the time frame in context. Should we show these streaks in the text display even with an empty bar graph?
3
Screenshot 2022-09-30 at 14.44.51.png (518×760 px, 45 KB)
A newcomer with 0 edits in the time frame in context might get a non-positive display, with "0 days in a row" displayed and labels without empty content. I guess it would be better to hide it until they have made their first edit right?

cc @KStoller-WMF

For the last scenario, I think we are still supposed to show the "Unactivated" state of the impact module for users who have not yet edited:

image.png (782×1 px, 158 KB)

Change 837123 had a related patch set uploaded (by Sergio Gimeno; author: Sergio Gimeno):

[mediawiki/extensions/GrowthExperiments@master] User impact: remove unused dependency vuex

https://gerrit.wikimedia.org/r/837123

Change 837123 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] User impact: remove unused dependency vuex

https://gerrit.wikimedia.org/r/837123

Thanks for these edge cases @Sgs and apologies it seems like these indicate a bit of an oversight on how this would work exactly.

From looking at these my feelings are that:

  • the ‘Last edited’ and ‘Best streak’ data points are more useful when they are not constrained by time and should be from when someone created their account,
  • which leads me to suggest that I think both of these data points would be better placed in the scorecard part of the module and increase the items to four,
  • this would then lead to the logic that all the items in the scorecard show data from the first day of someone creating their account (this was the original intention), and all data below the title ‘Your recent activity (x days)’ was constrained by that timeframe.

Here are updated mockups for how I think this would look:

Screenshot 2022-09-30 at 17.21.39.png (2×2 px, 617 KB)

Apologies if this has caused additional work. Let me know if that makes sense or you need me to clarify anything.

cc. @KStoller-WMF @kostajh

I actually really like this update, it helps reduce the number of different styles on the page and makes it feel easier to quickly parse.
I guess the obvious question is what is the info text associated with the "Best streak" scorecard? I assume it helps define what a streak is, but would it also provide the dates of the streak?

@KStoller-WMF Yes I agree that this change simplifies the number of styles on the page and feels like a visual improvement too.

Regarding the streak dates, I had removed them due to the lack of space in the scorecard but appreciate that the dates may be useful. I think there are two options here: 

  • A. Include the dates in the scorecard, but this will add an additional line and make the scorecard deeper.
  • B. Put the dates inside the info dialog, so they are only revealed when you tap/click the info icon

Screenshot 2022-10-03 at 10.35.45.png (2×1 px, 669 KB)

My personal preference is probably for option A.

Change 837090 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] User impact: display 60 days in the recent activity panel

https://gerrit.wikimedia.org/r/837090

Update on my previous post. After discussion with @RHo we decided it would be a better solution to put the streak dates in the info dialog, as this informartion is secondary to the number of days in the streak and probably doesn’t need to be visible.

So option B from the image below would be the preferred option.

  • A. Include the dates in the scorecard, but this will add an additional line and make the scorecard deeper.
  • B. Put the dates inside the info dialog, so they are only revealed when you tap/click the info icon

Screenshot 2022-10-03 at 10.35.45.png (2×1 px, 669 KB)

I’ve also updated the Figma designs to reflect all the changes discussed above.

cc @KStoller-WMF @Sgs

Sgs changed the task status from In Progress to Open.Oct 18 2022, 5:58 PM
Sgs moved this task from Code Review to QA on the Growth-Team (Sprint 0 (Growth Team)) board.

This can be tested now in beta using a query parameter new-impact=1 on the Homepage or the Impact special pages.

Update on my previous post. After discussion with @RHo we decided it would be a better solution to put the streak dates in the info dialog, as this informartion is secondary to the number of days in the streak and probably doesn’t need to be visible.

So option B from the image below would be the preferred option.

  • A. Include the dates in the scorecard, but this will add an additional line and make the scorecard deeper.
  • B. Put the dates inside the info dialog, so they are only revealed when you tap/click the info icon

Screenshot 2022-10-03 at 10.35.45.png (2×1 px, 669 KB)

I’ve also updated the Figma designs to reflect all the changes discussed above.

cc @KStoller-WMF @Sgs

Just to clarify: "best streak" scorecard should show the user's longest consecutive number of days editing, going back as far as possible (creation of user account)?

We currently have an upper limit of 1000 edits when making this query. I think for newcomers it's not a problem, but for more active users, it's conceivable that they make 1000 edits in the span of a few weeks, and we'd only show them a streak within that time range.

(Side note: I managed to confuse myself with the "best" terminology, because at one point I was summing together number of edits made on each day in a streak, and considering the streak with the highest number of edits to be the "best". Maybe "Longest streak" is more clear.)

We currently have an upper limit of 1000 edits when making this query. I think for newcomers it's not a problem, but for more active users, it's conceivable that they make 1000 edits in the span of a few weeks, and we'd only show them a streak within that time range.

Hmmm, good to know. I think that's fine for now, but we might want to consider an improvement in the future if we really want the homepage to remain relevant to users as they advance on the wikis. A potential solution might be to change the language to "Recent streak" if the user has >1,000 edits?

(Side note: I managed to confuse myself with the "best" terminology, because at one point I was summing together number of edits made on each day in a streak, and considering the streak with the highest number of edits to be the "best". Maybe "Longest streak" is more clear.)

That's a good point. Looks like the Android suggested edits stats just labels it "Streak". Other contributing sites/apps handle this in different ways, I see "longest streak" used in this example.

@KieranMcCann should we stick with "Best" or consider a change?

We currently have an upper limit of 1000 edits when making this query. I think for newcomers it's not a problem, but for more active users, it's conceivable that they make 1000 edits in the span of a few weeks, and we'd only show them a streak within that time range.

Hmmm, good to know. I think that's fine for now, but we might want to consider an improvement in the future if we really want the homepage to remain relevant to users as they advance on the wikis. A potential solution might be to change the language to "Recent streak" if the user has >1,000 edits?

Agree that ideally we want it to go further back in time than this in future, maybe we could file a task for that and could we add a note in the pop-up only for people with >1K edits (based on your last 1000 edits)?

(Side note: I managed to confuse myself with the "best" terminology, because at one point I was summing together number of edits made on each day in a streak, and considering the streak with the highest number of edits to be the "best". Maybe "Longest streak" is more clear.)

That's a good point. Looks like the Android suggested edits stats just labels it "Streak". Other contributing sites/apps handle this in different ways, I see "longest streak" used in this example.

@KieranMcCann should we stick with "Best" or consider a change?

FWIW my vote would be for "Longest streak" as it is clearer.

For T310665: Impact module: summary panel, there is a string that says:

"Your current best streak is $1 {{PLURAL:$1|day|days}} which you achieved between $2.",

We should probably update that as well if we rename "Best streak" to "longest streak".

Just to clarify: "best streak" scorecard should show the user's longest consecutive number of days editing, going back as far as possible (creation of user account)?

@KStoller-WMF @RHo bringing it back to this question, is it the longest streak in 1) last 60 days or 2) since account creation, within the limits of how far back we can query?

For T310665: Impact module: summary panel, there is a string that says:

"Your current best streak is $1 {{PLURAL:$1|day|days}} which you achieved between $2.",

We should probably update that as well if we rename "Best streak" to "longest streak".

Just to clarify: "best streak" scorecard should show the user's longest consecutive number of days editing, going back as far as possible (creation of user account)?

@KStoller-WMF @RHo bringing it back to this question, is it the longest streak in 1) last 60 days or 2) since account creation, within the limits of how far back we can query?

Hiya, I would expect it to be 2) since account creation (with limits to query), esp. given the placement of the streak in the top summary section above the time period selection.

@kostajh Sorry I’ve been off for a few days so just catching up on this now. I’d agree with what has been said so far by @RHo:

  • ‘longest’ rather than ‘best’ as it’s clearer and a better description of the data we are referring to
  • I see the longest streak being from account creation – this was why it was moved up to the top summary section. Also, displaying streak data over a defined time period is problematic as a streak could be broken by the timeframe i.e. if a streak started over 60 days ago.

In T310666#8333281, @RHo wrote:

could we add a note in the pop-up only for people with >1K edits `(based on your last 1000 edits)`?

I added a task for that: T321415 . I'm totally fine with that being worked on immediately, or waiting until after we release the initial version.

Etonkovidova subscribed.

Checked in betalabs - moving to Design Review.

a new user accounta new user makes first edita new user makes the second edit
"Last edited" issue is fixed (T321963 in Code Review)
Screen Shot 2022-11-09 at 4.22.18 PM.png (1×836 px, 95 KB)
Screen Shot 2022-11-09 at 4.25.33 PM.png (930×752 px, 73 KB)
Screen Shot 2022-11-09 at 4.46.02 PM.png (1×820 px, 86 KB)
experienced user with many edits
Screen Shot 2022-11-09 at 5.02.49 PM.png (924×986 px, 88 KB)

Notes
(1) The zeroes (and the blank value for "Longest streak") are displayed to a newcomer. In the comments above (for the edge case #3 in https://phabricator.wikimedia.org/T310666#8275248) there was a suggestion (https://phabricator.wikimedia.org/T310666#8275325) to display the existing Impact module for newcomers with zero edits. Would it be done or we go with zeroes?
(2) At the present the new Impact module doesn't have any tooltips. The existing Impact module has tooltips for links:

Screen Shot 2022-11-09 at 4.05.30 PM.png (936×1 px, 171 KB)
Screen Shot 2022-11-09 at 4.05.38 PM.png (926×842 px, 96 KB)

Looks good to me @Etonkovidova. In response to your questions:

(1) The zeroes (and the blank value for "Longest streak") are displayed to a newcomer. In the comments above (for the edge case #3 in https://phabricator.wikimedia.org/T310666#8275248) there was a suggestion (https://phabricator.wikimedia.org/T310666#8275325) to display the existing Impact module for newcomers with zero edits. Would it be done or we go with zeroes?

In this edge case I think it’s okay to show the new impact module with zeroes, rather than the existing impact module – but I think @RHo .should probably make the final call on this The only small detail that I think looks a bit odd is the lack of any value for the longest streak. Maybe we could simply add a dash ‘–’ when there is nothing to show here?

(2) At the present the new Impact module doesn't have any tooltips. The existing Impact module has tooltips for links:

It would be preferable to add the tooltips in here if possible.

Looks good to me @Etonkovidova. In response to your questions:

(1) The zeroes (and the blank value for "Longest streak") are displayed to a newcomer. In the comments above (for the edge case #3 in https://phabricator.wikimedia.org/T310666#8275248) there was a suggestion (https://phabricator.wikimedia.org/T310666#8275325) to display the existing Impact module for newcomers with zero edits. Would it be done or we go with zeroes?

In this edge case I think it’s okay to show the new impact module with zeroes, rather than the existing impact module – but I think @RHo .should probably make the final call on this The only small detail that I think looks a bit odd is the lack of any value for the longest streak. Maybe we could simply add a dash ‘–’ when there is nothing to show here?

My understanding is that we're going to implement the old Impact module's unactiviated state for the new impact module, T321963: NewImpact module: Implement unactivated state code from Impact.php , and that work is in progress.

(2) At the present the new Impact module doesn't have any tooltips. The existing Impact module has tooltips for links:

It would be preferable to add the tooltips in here if possible.

Filed as T322836: NewImpact module: Add tooltips for articles

(1) The zeroes (and the blank value for "Longest streak") are displayed to a newcomer. In the comments above (for the edge case #3 in https://phabricator.wikimedia.org/T310666#8275248) there was a suggestion (https://phabricator.wikimedia.org/T310666#8275325) to display the existing Impact module for newcomers with zero edits. Would it be done or we go with zeroes?

In this edge case I think it’s okay to show the new impact module with zeroes, rather than the existing impact module – but I think @RHo .should probably make the final call on this The only small detail that I think looks a bit odd is the lack of any value for the longest streak. Maybe we could simply add a dash ‘–’ when there is nothing to show here?

My understanding is that we're going to implement the old Impact module's unactiviated state for the new impact module, T321963: NewImpact module: Implement unactivated state code from Impact.php , and that work is in progress.

@kostajh Apologies, I didn’t realise this had been decided and was in progress. Ignore my comment :)

(1) The zeroes (and the blank value for "Longest streak") are displayed to a newcomer. In the comments above (for the edge case #3 in https://phabricator.wikimedia.org/T310666#8275248) there was a suggestion (https://phabricator.wikimedia.org/T310666#8275325) to display the existing Impact module for newcomers with zero edits. Would it be done or we go with zeroes?

In this edge case I think it’s okay to show the new impact module with zeroes, rather than the existing impact module – but I think @RHo .should probably make the final call on this The only small detail that I think looks a bit odd is the lack of any value for the longest streak. Maybe we could simply add a dash ‘–’ when there is nothing to show here?

My understanding is that we're going to implement the old Impact module's unactiviated state for the new impact module, T321963: NewImpact module: Implement unactivated state code from Impact.php , and that work is in progress.

@kostajh Apologies, I didn’t realise this had been decided and was in progress. Ignore my comment :)

Ack, sorry @kostajh and @KieranMcCann (cc @Sgs) - I just realised that I did in fact propose an addition to the empty state / unactivated state whereby the scorecard section with zeroes is added to the top of the unactivated module, but it was missed in implementing on Phab. See:

image.png (1×1 px, 258 KB)
(and the figma page it's from)

I will update T321963 with this additional requirement and we can discuss if it is feasible for v1 on that task.

@KieranMcCann Given that T321963 was handled separately, does this task pass design review?

@KStoller-WMF Yes looks good to me. Can confirm it passes design review.