Extension:WatchAnalytics/de-formal

The WatchAnalytics extension leverages the table to show statistics on how well-guarded an individual page and the wiki as a whole is, as well as to invite users to watch and review neglected pages.

Note that there has been very little consideration so far for making this extension configurable for public wikis. All features were designed with enterprise use in mind, and before calling this extension, configuration options must be available to protect users' privacy.

Download
You can download the code, in .zip format, here.

You can also download the code directly via Git from the MediaWiki source code repository. From a command line in the extensions/ directory, run the following:

To view the code online, including version history for each file, go here: .

User rights

 * To enable the Page Scores for users, they need to be granted the  right (by default this is only enabled for admins).
 * To allow a user to clear reviews using Special:ClearPendingReviews, they need to be granted the  right (default: sysop).

Page scores
On each page in the main namespace (or any namespace added to the $egWatchAnalyticsPageScoreNamespaces variable) two scores are displayed near the heading which indicate how well the page is being watched in general (the "scrutiny") and the total number of people who have reviewed the latest version of the page. Clicking on these scores brings you to the PageStatistics special page.

Special:PageStatistics
Provides explanations of what "scrutiny" and "reviewers" mean. Below this it lists the page editors in order of number of revisions, who is watching the page, and whether or not they have reviewed the latest revision. At the bottom of the page it has a chart showing how many reviewers the page had at any given time in the past. In future versions this data will be used to determine an average length of time for the page to get n-reviewers, thus making it possible to find pages that tend to not be reviewed quickly.

Special:WatchAnalytics
The WatchAnalytics special page provides information about pages, users and the overall state of watchers on the wiki.

Page information
For pages it provides information like the number of people watching, the number people who have reviewed the latest revision, and the "watch quality" of the page. Watch quality refers to how well the watchers of the page do at quickly reviewing changes to the page. Right now the algorithm for this number is pretty poor, and in future uses it will hopefully provide better page scoring.

User information
Provides similar information but for users. This includes how many pages the user is watching, how many pending reviews they have, how long their oldest review is, etc. This table can be filtered by user group and page category, which can be helpful to see how sub-organizations (e.g. creating a group type "Engineering") are doing at watching certain pages.

User-page relationship visualization
A D3.js force-directed graph showing how users are watching pages. Users are represented by orange dots around the outside, and pages are represented by blue dots. Lines between users and pages indicate that the user is watching the page. If the line is red it means that the user has not seen the most recent version of the page. Note that this visualization will not work well for very large wikis.

Special:PendingReviews
This special page is a simplified version of Special:Watchlist. Special:Watchlist is very daunting for new editors and has a lot of unnecessary information even for seasoned editors. Pending Reviews shows which pages the user has not seen the latest version (of pages in the user's watchlist). These pages are prioritized by how important it is for the wiki to have the page reviewed, which right now is entirely determined by how many people have reviewed the page. In the future it will hopefully take into account revision scoring methods.

ApprovedRevs
If you have Extension:Approved Revs 1.0+ installed Special:PendingReviews will now show pages needing approval below your pending reviews. Clicking on the pending approval will show you the diff between the current edit and the last approved version of the page. There is also an "approve" button which allows you to approve the page from the diff page.

Compatibility: WatchAnalytics 3.0+ works on wikis that either don't have ApprovedRevs installed or have ApprovedRevs 1.0+. It will not work with earlier versions of approved revs.

Watch suggestions
Below the user's list of pending reviews there are suggestions for other pages the user should watch. These are determined by finding all pages linked to or from the user's watchlist. These pages are then ranked by how many watchlist pages link to/from the page, how many watchers the page currently has, and how much traffic the page gets. Pages with few watchers and a lot of traffic are thus highly prioritized.

Special:ClearPendingReviews
This special page allows users with the 'clearreviews' right (default: sysop) to clear pending reviews for a given time period based on category and/or page title. This may come in handy for any maintenance done on the wiki such as using ReplaceText where an admin creates large amounts of reviews.

Maintenance scripts
addCategoryToWatchlist.php
 * forgivePendingReviews.php: used to clear reviews. This script has not been used by the author in a long time, and users should only execute it after backing up their database. Make sure it does what you want before using.
 * watchAnalyticsRecordState.php: records the user and page watch state (how many watchers, how many pending, etc).
 * Adds every page in a category (or categories) to a user's (or multiple users') watchlist. Called like:

Version history

 * 0.3.0 - 2015-07-01 - First officially numbered version
 * 1.0.0 - 2016-11-07 - Switch to extension.json; drop support for MW < 1.25
 * 2.0.0 - 2018-11-19 - Add Special:ClearPendingReviews; add pagination to Special:PendingReviews; open links in new tab; many bug fixes
 * 2.0.1 - 2018-11-27 - Make CSS configurable; bug fixes
 * 3.0.0 - 2019-02-24 - Show Approved Revs info in Special:PendingReviews; bug fixes
 * 3.1.0 - 2019-03-20 - Add diff to 'unreview' banner and Special:PendingReviews; bug fixes
 * 3.1.1 - 2019-03-22 - Improve diff display
 * 3.2.0 - 2020-06-12 - Add nav button during page review; remove $egWatchAnalyticsHidePrintScores; bug fixes
 * 4.0.0 - 2023-03-04 - Fix major bugs; minor UI update; replace deprecated hooks; translation added
 * 4.1.0 - 2023-03-29 - More bug fixes

Future considerations

 * Add user preferences to allow users to choose to use Pending Reviews or not
 * Allow user to choose how many results to display in Pending Reviews
 * Allow disabling of the force-directed graph visualization (since it may not work with large wikis)