Forum Academy Marketplace Showcase Pricing Features

Seeking Solution for Weighted Voting Calculation

Here’s the scenario: I have a list of stock tickers, and users can vote a ticker up or down. Initially, I used a simple calculation where the percentage was derived from the individual vote count divided by the total votes. However, I realized that as the number of votes increases over time, each individual vote’s impact may become less significant.

To mitigate this dilution issue, I’ve considered implementing a weighted voting system. One approach I’m exploring is assigning higher weights to more recent votes, giving more importance to recent opinions rather than older ones. For example, I thought of doubling the weight of votes received within the last 7 days.

However, I’m concerned that even with this approach, the weighting may still become diluted as the overall vote count increases. I want to ensure that the calculation remains fair and accurately represents the voting trends over time.

I would greatly appreciate any insights or suggestions on how to address this issue effectively. Are there any alternative approaches or more sophisticated methods that could be employed to handle the weight calculation? Perhaps a decaying weight scheme or other techniques that take into account both recency and the overall vote count?

Thank you in advance.

In my opinion that would just be giving each vote the same weight…biasly giving more recent votes more weight seems to be unfair to earlier votes.

If this is for the purposes of giving a user a sense of how might something of improved or became worse, you can just give the user an ability to filter votes by dates and let them see the trends for themselves instead of manipulating the importance of each vote unfairly.

What is the use case though? What is it about the stock that users are voting on? Is this something that is supposed to be votes of ‘buy’ ‘sell’ etc. as that to me is the only type of vote that would matter for a stock. If so, I would still say only fair way to show votes and have time associated is to give user a filter to filter votes by dates.

You are correct but for my use case I actually need to have a bias to newer votes because they are voting on dynamic things which become deprecated over time, thus I need to ‘wipe clean’ older votes.

Apologies for not making this clear before and apologies for the general vagueness, I am trying to not advertise my idea too much lol!

In an case, I think I have finally found a solution, so for anyone who needs a voting system which shows percentage of votes next to each line and which weights more recent votes, the answer is a time decay weighting. In my case, if a ‘Thing’ has not received a vote for 3 days, it will go to a ‘decay phase’ whereby it will have 20% of it’s current votes removed each 3 days. This decaying stops when it gets a fresh vote.

Glad you found a solution.

Don’t worry about that. The same ideas are had by many more people than you think, so no idea is typically unique. Most of what matters is follow through on the idea. Another thing to keep in mind is that most people have their own ideas they want to pursue and likely will not give up and jump to try and beat somebody else at developing a project based on somebody else’s idea.

General rule of thumb, the more people you tell about your idea, while you are actively following through on a plan to execute the idea, the better, as you’ll have more people who may be able to help you more if they know what you are doing.

1 Like

Yes that is all very true. I will probably have to share as I develop the app because I think there’s going to be various coding things which I may get stuck on!