Oshi Leaderboards
Amrayu78
LOL, this is an enhancement to the existing Oshis/Oshi Shrines.
Just mocked this up earlier. I'm sure you will have questions, so feel free to discuss.
I'm also attaching a screenshot.
Amrayu78
Max Romanchenko New feature that's an add-on to Oshi Shrines. No need to rush on this. lol
Max Romanchenko
Amrayu78 Awesome! I can't wait to get started.
Before I proceed with implementation, I’d like to confirm a few details about how the leaderboard system should function - especially regarding time-based logic.
1. All-time vs. Monthly stats
Should sections like "Top Overall Fans", "Most Timeline Entries", "Most Nyans Received" , "Most Collection Images", "Most Titles Added" reflect lifetime totals, or only actions from the current month?
- Rising Stars
Should we calculate Rising Stars based on the point difference since the start of the month?
(This is the simplest and cleanest way to measure growth.)
- Tracking timestamps
Do we need to track the exact date of each user action (e.g. when a title was added or a like was given)?
Currently, these actions don’t store timestamps, so adding that would require changes to how data is stored.
- Deletions
If a user removes a Like or deletes a timeline entry, should this reduce their current stats?
I assume yes - but just want to confirm that’s expected.
- Hall of Fame structure
I'm thinking of using monthly snapshots for this, so we can display frozen stats in the Hall of Fame without affecting current leaderboard data.
For example, if a user had 5 points in July, that’s what we’ll show in the Hall of Fame - even if a Like is removed in August and their current score drops to 4.
This way, past performance remains intact, and we avoid rewriting historical data.
That’s the plan I’m considering - does this approach work for you?
___
Above the Oshi Shrine archive is a great place, I think. I plan to make this block independent so that it can be placed on the Homepage as well.
Amrayu78
Max Romanchenko
- All-time vs. Monthly stats
Should sections like "Top Overall Fans", "Most Timeline Entries", "Most Nyans Received" , "Most Collection Images", "Most Titles Added" reflect lifetime totals, or only actions from the current month?
>> I think both?
----
- Rising Stars
Should we calculate Rising Stars based on the point difference since the start of the month?
(This is the simplest and cleanest way to measure growth.)
>> Yes.
----
- Tracking timestamps
Do we need to track the exact date of each user action (e.g. when a title was added or a like was given)?
Currently, these actions don’t store timestamps, so adding that would require changes to how data is stored.
>> Let's just track it for the month. I don't think we need to track the timestamp, but up to you how you want to grab these analytics.
---
- Deletions
If a user removes a Like or deletes a timeline entry, should this reduce their current stats?
I assume yes - but just want to confirm that’s expected.
>> Yes.
---
- Hall of Fame structure
I'm thinking of using monthly snapshots for this, so we can display frozen stats in the Hall of Fame without affecting current leaderboard data.
>> I'm fine with this approach.
For example, if a user had 5 points in July, that’s what we’ll show in the Hall of Fame - even if a Like is removed in August and their current score drops to 4.
This way, past performance remains intact, and we avoid rewriting historical data.
That’s the plan I’m considering - does this approach work for you?
>> Yup, I'm fine with this approach.
Max Romanchenko
Amrayu78 Hi! Thanks for your answers - super helpful. Just one quick clarification:
You mentioned "both" for monthly and lifetime stats - that makes sense.
Just to confirm:
If we want to show monthly stats like
"Most Timeline Entries (This Month)", or
"Most Titles Added (This Month)",
then we’ll need to track when each timeline entry or title was added (using timestamps).
Currently, that info isn't stored - so I’ll need to adjust how those fields are saved going forward.
Would you be okay with me adding timestamps to those fields, so we can calculate monthly leaderboards accurately? This will change the UI for Top Titles field (it will be more like adding a timeline entry).
Since Rising Stars is based on monthly point growth, we’ll need to track when each action (timeline, title, etc.) was added - otherwise we won’t be able to calculate that section accurately. So it looks like adding timestamps is necessary for that feature to work.
It is also necessary to store the date when the Nyan was received so that the statistics for This Month's Rising Stars are accurate.
___________________________________
Also - to be sure I’m displaying the right data in each section, could you please confirm whether each one should show lifetime totals, or only stats from the current month?
You can just mark each as “All-time” or “This month”:
Section 1. 🏆 Top Overall Fans:
→ ___________
Section 2. 🔥 This Month's Rising Stars:
→ (Assuming this is “This month” — please confirm)
→ ___________
Section 3. 🕒 Most Timeline Entries:
→ ___________
Section 4. 🐾 Most Nyans (Likes) Received:
→ ___________
Section 5. 📸 Most Collection Images:
→ ___________
Section 6. 🎬 Most Titles Added:
→ ___________
Amrayu78
Max Romanchenko
Would you be okay with me adding timestamps to those fields, so we can calculate monthly leaderboards accurately? This will change the UI for Top Titles field (it will be more like adding a timeline entry).
>> I'm fine with you adding timestamps. Will the UI drastically look different?
I'd like all categories to have both "all-time" and "monthly" stats.
We can feature the monthly stats on the archive page and the "hall of fame" overall stats on a separate page?
Max Romanchenko
Amrayu78 Thanks! I want to clarify one last important point - just to make sure I understand how monthly vs all-time logic should work in the leaderboard.
Let’s say a user added a lot of content to their Oshi Shrine in July, but nothing in August.
In August, should they still appear on the leaderboard?
In other words:
Should stats like “Most Timeline Entries” and “Most Titles Added” be based on what the user added this month only?
Or should we just count the total number, regardless of when they were added?
This is important because it changes how we treat time-based data and whether a user is considered "active" this month.
Also, just to confirm:
In the original spec, the “Hall of Fame” showed monthly winners by category, sorted by month.
Now you mentioned that the “Hall of Fame” could show overall stats, and the archive could show monthly stats.
Can you clarify which is which?
_____________________-
To help clarify everything, here are two options for how we could handle time-based logic in the leaderboard feature:
– Option 1: No timestamps (simpler)
We display statistics based on total numbers - for example, total number of timeline entries, collection images, or titles added - regardless of when they were added.
The “🔥 This Month’s Rising Stars” section would not be available, since we don’t track when points were earned.
For the Hall of Fame, I can take monthly snapshots of the current leaderboard at the end of each month. These snapshots could be shown on the archive page or a separate “Hall of Fame” page.
In this case, all statistics are cumulative, and past months are shown using frozen snapshots.
Can be implemented without changing the current storage model.
– Option 2: With timestamps (more flexible)
We store a timestamp whenever a timeline entry, collection image, or top title is added.
This allows us to show stats for specific time periods - for example, “Most Timeline Entries This Month”.
The “🔥 This Month’s Rising Stars” section becomes fully functional, since we know exactly when points were earned.
The existing storage model and UI need to be changed.
____________
I'm still unsure and don't know what's best for you....
I want to start doing something, but I can't without understanding the whole picture.
Sorry for the long text...
Perhaps you will understand my doubts.
Amrayu78
Max Romanchenko
Let’s go with Option 2 (With Timestamps). Please modify the schema to record timestamps for timeline entries, collection uploads, and title additions.
Leaderboard on Oshi Shrine archive/index page = Monthly stats (this keeps it fresh and same names won't always be shown), it'll be a brief look at the leaderboards for the month.
Rising Stars = actions done this calendar month
Hall of Fame = top users per category, stored monthly (an archive of Leaderboard stats; maybe this should be on a separate page)
We can use this logic to build out badges and fan incentives later.
Let me know if this clarifies things for you?
---
Edit: I've updated the Canva mockup with the Hall of Fame. Please check it. Thanks!
Max Romanchenko
Amrayu78 Thank you for your answers. Yes, that clarifies the situation for me.
Could you please approve or correct this scoring logic:
Timeline Entry = 5 pts
Nyan Received = 1 pt
Collection Image = 3 pts
Title Added = 2 pts
_______________
One more question - could you please create a new ticket about updating the MySQL server? It is critically outdated (the current version is 5.7, and I want to update to 8).
I contacted support and they cannot help with this, as it is not part of their responsibilities.
I want to do the job and schedule the date with you. The update will take about 30 minutes. I can do it during off-peak hours in the PST time zone. Please let me know when I can start.
Amrayu78
Max Romanchenko I'm good with the scoring logic. It's correct.
I'll file a canny ticket for you about updating the MySQL server.
Max Romanchenko
Amrayu78 I've made progress on migrating timelines and titles to the new format. This now allows storing timestamps for when specific title or timeline entries were added.
I've also backdated all existing timelines and top titles with their Oshi shrine creation dates. This isn't visible in the UI yet, but if you hover over a title, it will show when it was added to Oshi Shrine (see screenshot). This will also allow you to request information by date.
While working on Shrine, I improved how Cast, Crew, and Music are displayed in the admin panel and editing forms (see screenshot). Instead of showing "Cast 1, Cast 2," etc., it now displays the actual names of the people (see screenshot).
Also, these sections are now collapsed by default.
Please take a look.
Amrayu78
Max Romanchenko looks good! I'm glad we're porting over logic to other parts of the site to make it better. Thank you.
Max Romanchenko
Amrayu78 Yes, I like it too. By the way, the scoring system is already working. It's not displayed anywhere yet, but it's running in the background. I'll start working on the Oshi Leaderboards section soon.
Amrayu78
Max Romanchenko I added 2 more categories after I saw the leaderboards you've created! It looks great by the way. Please check the canva again, I added the new changes.
It's 2 new categories:
- Most Adopted Oshis
- Most Oshi Shrines
Check for a new badge in the canva link for these new additions.