[ Add-on Support Thread ] 🏆️Anki Leaderboard by Shige

Thanks, changing leaderboard from +0 to +4 same as in Anki fixed it.

1 Like

More ideas:

-Add Hall of Fame showing the total reviews of all time for each user

-Highscore or Records Board

-Add flairs (medicine, language, law etc…)

1 Like

Perhaps it is possible to add all time to past leaderboards history.
(e.g. yesterday, a week, a month, all time)

I think it would be good to show the history of past leagues, or summarize them.

Might be good to use flairs for leaderboard, like countries. Groups are often private so it may not be preferable to use them for leaderboard.

2 Likes

In the XP formula, days studied is impacted by the " * Leadearboard: Config → Settings → General → The next day starts […] hours past midnight" ?

My issue is because the season start, and i study for 10 minutes for test, and my user not showing up on the league even many syncs. My “The next day starts” is config to 04h.
Now is UTC+3 00:32. I need to wait for UTC+3 04:00 to work?

1 Like

Hi thanks for the question. The start date of the season is not affected by changes in settings it is 00:00 UTC. You need to restart Anki to reflect the start of the season, otherwise it will be activated after 6 hours.

Season scores are calculated for 2 weeks at a time, not for each day, and you can sync every few days during the season, so there is no problem if you do not sync immediately. (After the season it will not be able to sync.) But if users suddenly appear at the top of the list at the end of a season they may be suspected of cheating, so if your score is close to the top I recommend you to sync regularly.

Yes, but XP formula uses ‘days studied’. So in my case, ‘days studied’ only works after 4hs after midnight.

Yesterday, even I’ve been study for more then 10 minutes, my user not showing on the league.

Today (4hs after midnight) after study 7 minutes, my user appear on the league.

So i figure out, “The next day starts” affect the star of season for me.

1 Like

Oh yeah, you know more about how the Leaderboard works than me. According to the code the data is sent based on 0:00 UTC, but the data calculation is based on the time set by the user, in this case if the time is early the data will be empty even if it is sent, so finally “The next day starts” affects correctly as you say.

Now, about the Leagues…

I think we need to apply some filters because right now it seems unfair.

Look at the Alpha League. The user ER | 3 is studying for about 9 hours. Nine hours! A human being cannot do that.

So, I believe this user might be using an ‘automatic’ mode to flip cards while they sleep.

Can we filter out users who use auto-reveal, auto-answer, and other add-ons? Maybe we can filter users that always flipping cards every X seconds, so may be suspicious.

Another variable I’m considering is ‘Maximum answer seconds’ because we could use it to segment different types of students—for example, medical students (more than 1 minute) and language learners (less than 1 minute).

What do you think?

1 Like

In my opinion it is possible to do more than 9 hours of Anki. e.g. learners may be using Anki full time:

  1. A student uses Anki for school work and also uses Anki in free time.
  2. A student is in school vacation and studies full time every day.
  3. A student spends the whole year studying for exams of difficult universities.
  4. A learner is doing Anki during long vacations.
  5. A learner is already retired and spends all day doing Anki.

In such cases the learner can study as well as work. It’s not unusual to work 12 hours a day at a full time job, so I think the limit is probably about 15 hours.

The review method that makes the seconds almost the same is also used by normal learners. e.g. Set Auto Advance to 7 sec and set Action to Good. If the answer is correct nothing is done and auto answer, if the answer is wrong press Again. This method reduces the workload of learners as they can review with very few clicks.

Similar features are under development at this time. e.g. Users can optionally specify the number of seconds to batch hide users who reviews too fast. In the same way, users who are too slow can be hidden in batches. A prototype of this feature is the seconds and :police_car_light:Siren added in the last update, if I develop this feature more it will be possible to batch hide all users who are showing the Siren.

1 Like

Im my opinion… no way…

  1. A student uses Anki for school work and also uses Anki in free time.

No school use anki as main tool. If student is a school student, impossible to use anki 9 hours.

  1. A student is in school vacation and studies full time every day.

A student in vacation, with no family, no tv, no pets? No way

  1. A student spends the whole year studying for exams of difficult universities.

Anki never is the only way to prepare for a exam. 1 day to 9 hours, ok, but no every day in the average, no way

  1. A learner is doing Anki during long vacations.
  2. A learner is already retired and spends all day doing Anki.

Same above…

The point is… this is unfair…

Similar features are under development at this time. e.g. Users can optionally specify the number of seconds to batch hide users who reviews too fast. In the same way, users who are too slow can be hidden in batches. A prototype of this feature is the seconds and :police_car_light:Siren added in the last update, if I develop this feature more it will be possible to batch hide all users who are showing the Siren.

But how this works with leagues? Hide a user in league, make changes on the user position, promotion or demotion?

1 Like

Though it’s not a common way, it is possible to use Anki as a main tool. Anki’s notes are unlimited, so you can put information for one book in one note. If the learner already has a lot of cards, they can review them on mobile anywhere. If there is a feature missing from Anki, users can add almost anything they want to it using templates or add-ons.

If I remember correctly, the Anki community of medical students sometimes report using Anki for more than 8 hours (Anki review time only, not total study time). And some Anki users challenge the limits of what humans can memorize, not how much they should study.

According to some statistics, about 80% of the students do not like to study, but about 20% of them like to study and a few of them love to study. For these learners, studying is like entertainment, so they do not get tired even after many hours of studying.

As you said leagues are calculated even if you Hide, so there needs to be some workaround.

But my guess is that the global leaderboard may not work in the future anyway. So far the number of users is increasing by about 1000 per month, so it is very likely that the number of users will double within this year, and then continue to increase after that. In such a case there will be too many users and the ranks will probably be meaningless for most of them.

I think a workaround for this is to add a league for groups. e.g. only gather friends or trusted users, and cheaters can be banned by the administrator. So I plan to develop something like that in the future.

I think a workaround for this is to add a league for groups. e.g. only gather friends or trusted users, and cheaters can be banned by the administrator. So I plan to develop something like that in the future.

I think the best way to solve this is to increase the number of leagues. Creating leagues by group might not be the best approach. Many users don’t have enough friends, and leagues are a great way to stay motivated without knowing the people you’re competing against.

I believe leagues should grow infinitely. I don’t see a reason to limit the number of names or even use numbers, letters from the alphabet, or hexadecimal.

The fact is that leagues should expand freely, always maintaining an average of 100 people per league. This would provide motivation while avoiding something meaningless, like a Delta league with 50,000 people (just an example).

Another possible approach is to do what Duolingo did: create parallel leagues. In each new session, you are placed in a league at your level, but multiple identical leagues at the same level run simultaneously. I don’t really like this approach because if a friend studies with you, they might end up in a parallel league, even if you’re at similar levels. But in any case, it’s an alternative.

I believe the first solution—simply increasing the number of leagues—is easier and could potentially be implemented immediately with little effort. Just add a new level below all the others, and anyone joining in the new season would be placed in this new level. Those who get relegated at the end of the season would also move to it, automatically adjusting all levels over time.

Solutions for names:
Combine letters with gemstones, for example:

  • Delta Gold
  • Delta Silver
  • Delta Bronze

There are many gemstones that could still be used…

Use hexadecimal:

  • A1, A2, A3, B1, etc.

Regards…

1 Like

I agree with you that the more users the more interesting it is. The problem with that way is that if the number of users increases too much, the loading time will also increase too much. e.g. If the number of users increases by 10 times the loading time will probably exceed 1 minute, the server will most likely not be able to process it.

This problem can be solved by improving the efficiency of the code, but the same problem will occur again if the number of users increases too much. A reliable solution is to split the server, if users are split in half the processing will be halved thus doubling the speed. For now the top development priority is to support such an increase in users, all other features are useless if they do not work at a minimum.

It is an interesting approach, I think it could probably support a very large number of users. I’ll look into it.

Such names sound good, I’ll use them for something later.

Two things you need to do:

First: Stop showing the global list. As you said, it doesn’t make sense anymore.

Second: Stop showing other leagues. Only display the league level the user is in.

Then, your server will be happy. :wink:

Regards.

1 Like

I disagree with this, I do wish to see other leagues so that I can gauge where I’ll be at my current level if I go to so and so league.

Your solution to create the number of leagues will be a little harder to implement. Imagine there is a new learner who is at the bottom (say 20 leagues total) who spends quite some time per day on their cards. If you would increase them from one league to the next one by one, then they’ll take a long time (8-9 months if it is 2 weeks per league) to reach the top 5 leagues. Will they still have a reason to stay in the leaderboard if they’re not progressing through the leagues fast enough?

1 Like

I encountered this issue. Any idea why this happened?

1 Like

It’s probably a rare error, an icon may have failed to download, I’ll adjust it later. If this happens repeatedly please contact me again.

1 Like

I disagree with this, I do wish to see other leagues so that I can gauge where I’ll be at my current level if I go to so and so league.

You may want that, but it’s not viable in a large system. As I said, on Duolingo, you can’t view another league. This solution works great for them, and I believe it will work great for us as well.

Maybe a website version to view members of all leagues would be more reasonable to maintain. But downloading all users from all leagues every time you sync the add-on would be a big challenge.

Your solution to create the number of leagues will be a little harder to implement.

As a developer, I don’t think something is necessarily harder to implement—it just depends on the approach. In fact, this solution might even be easier compared to other options.

If you would increase them from one league to the next one by one, then they’ll take a long time (8-9 months if it is 2 weeks per league) to reach the top 5 leagues. Will they still have a reason to stay in the leaderboard if they’re not progressing through the leagues fast enough?

Why do you need to reach the top 5 leagues quickly? The focus of the leagues is consistency.
Again, look at Duolingo’s leagues. Right now, they have 10 leagues.
If we have more, that’s not a problem. If you’re in league 99 and you don’t see league 98, you’ll still be motivated to fight to reach league 98. Then, you’ll fight again to get to 97. Of course, this is just an example.

The key point is that if the number of members per league stays around 100 people, users will remain motivated.

then they’ll take a long time (8-9 months if it is 2 weeks per league)

What’s the problem? Duolingo has 10 leagues, and when my wife and I rushed through them, it took us about a year, and we still weren’t in the top league. That’s how leagues work—you need to work hard to move up.

1 Like

With the new format, change the column name from “minutes” to “hours”:

1 Like

Technically I think those are all developable, If I add some workarounds it should work. It would be ideal if the display could be changed in the options.

Thanks, I’ll correct it later.