Skip to content

Boost recent reviews and decay old ones

Michael Terry requested to merge mterry/odrs-web:boost-recent-reviews into master

Recent reviews will get a boost in score for up to a year. Then we start depressing their score.

Specifically, we start with a boost of 12 up-votes and reduce that by 1 every month old the review is. After the review is a year old, we no longer boost it and instead start decaying it by 1 down-vote every year old it is.

Some examples:

  • a fresh review will get +12 up-karma
  • an 11-month-old review will get +1 up-karma
  • a 12-month old review will get +1 down-karma
  • a 26-month old review will get +2 down-karma

Does this feel sensible? I chose the timings and weightings arbitrarily.

MR inspired by the discourse conversation here: https://discourse.gnome.org/t/odrs-show-newest-reviews-first/3273/3

I tried this on GIMP. And as you can imagine, the initial changes were large (since we've been showing roughly the same set of reviews for a long time). The following tables show what this change of algorithm will do if you ask for 10 reviews. We drop a lot of old reviews and add a bunch of 2020 reviews. Keeping one solitary well-thought-of 2016 review. I imagine once a change like this is deployed and recent reviews start getting up and down votes, the results might be a little more diverse.

Dropped:
[ {'date': '2016-06-21T15:50:49', 'kd': 1, 'ku': 15, 's': 60, 'v': '2:2.8.16'},
  {'date': '2016-06-27T10:13:52', 'kd': 1, 'ku': 24, 's': 71, 'v': '2.8.16'},
  {'date': '2017-05-27T09:52:14', 'kd': 2, 'ku': 10, 's': 45, 'v': '2.8.22'},
  {'date': '2017-06-28T09:31:25', 'kd': 4, 'ku': 32, 's': 69, 'v': '2.8.22'},
  {'date': '2017-08-13T09:29:42', 'kd': 1, 'ku': 7, 's': 39, 'v': '2.8.22'},
  {'date': '2017-08-23T18:25:11', 'kd': 1, 'ku': 9, 's': 46, 'v': '2.8.18'},
  {'date': '2018-04-07T16:38:06', 'kd': 0, 'ku': 5, 's': 35, 'v': 'stable'},
  {'date': '2018-06-05T21:33:40', 'kd': 0, 'ku': 9, 's': 59, 'v': '2.8.22-1'},
  {'date': '2019-05-08T09:09:04', 'kd': 0, 'ku': 5, 's': 43, 'v': '2.10.8'}]
Added:
[ {'date': '2020-05-02T05:15:29', 'kd': 0, 'ku': 0, 's': 70, 'v': '2.10.18-1'},
  {'date': '2020-05-14T22:42:43', 'kd': 0, 'ku': 0, 's': 70, 'v': '2.10.18-1'},
  {'date': '2020-06-15T05:17:26', 'kd': 0, 'ku': 0, 's': 72, 'v': '2.10.18-1'},
  {'date': '2020-07-26T16:53:23', 'kd': 0, 'ku': 0, 's': 66, 'v': '2.10.20'},
  {'date': '2020-07-27T01:02:45', 'kd': 0, 'ku': 0, 's': 66, 'v': '2.10.20'},
  {'date': '2020-07-29T15:54:00', 'kd': 0, 'ku': 0, 's': 66, 'v': '2.10.20'},
  {'date': '2020-08-03T11:28:23', 'kd': 0, 'ku': 0, 's': 66, 'v': '2.8.22'},
  {'date': '2020-08-10T00:19:25', 'kd': 0, 'ku': 0, 's': 66, 'v': '2.10.20'},
  {'date': '2020-08-11T13:48:06', 'kd': 0, 'ku': 0, 's': 66, 'v': '2.10.20'}]
Kept:
[{'date': '2016-07-28T00:30:12', 'kd': 0, 'ku': 34, 's': 70, 'v': '2.8.16'}]

Merge request reports