Voting Strategies
Voting strategies determine how much weight each voter's vote carries. When you create a proposal, you pick one strategy that defines the rules. Every vote on that proposal is then weighted according to that strategy before results are calculated.
If no strategy is explicitly selected, Vora defaults to One Person, One Vote - every voter has equal weight.
Quick Comparison
| Strategy | How It Works | Complexity | Best For |
|---|---|---|---|
| One Person, One Vote | Every voter gets exactly 1 vote with equal weight | Simple | Simple A/B decisions, fair and transparent votes |
| Multiple Vote (Passion) | Voters can vote multiple times on the same proposal | Medium | Feature prioritization, measuring intensity |
| Group-Based Power | Weight comes from Voter Group membership | Medium | Giving loyal or VIP customers more influence |
| Tenure/Seniority Based | Weight increases with membership duration | Medium | Rewarding long-term community members |
| Engagement Score Based | Weight scales with user engagement activity | Medium | Rewarding active participants |
| Role-Based Tiers | Admin-defined weight per organizational role | Advanced | Hierarchical governance, board vs. member voting |
| Quadratic (Anti-Whale) | Square root of group power - diminishing returns | Advanced | Preventing any single voter from dominating results |
One Person, One Vote
The simplest strategy. Every voter gets exactly 1 vote with a weight of 1.0, regardless of group membership, tenure, or any other factor.
Formula: weight = 1
Parameters: None - this strategy has no configuration options.
When to use it:
- You want maximum fairness - every customer counts equally.
- Simple yes/no or A/B decisions where all opinions matter equally.
- You are just getting started with Vora and want the simplest setup.
Note
This is the default strategy. If you create a proposal without selecting a strategy, Vora will use One Person, One Vote.
Multiple Vote (Passion)
Allows voters to cast multiple votes on the same proposal. Each vote is a separate action - voters can spread votes across different choices or concentrate them on a single choice to express strong preference.
This is sometimes called "passion voting" because it lets voters signal how strongly they feel about an option.
Formula: weight per vote = weight_per_vote setting
Parameters:
| Parameter | Description | Default | Range |
|---|---|---|---|
| Max Votes per User | How many times each user can vote on this proposal | 10 | 2 - 100 |
| Weight per Vote | How much each individual vote counts toward the final tally | 1.0 | 0.1 - 10 |
| Track Passion Score | Record analytics about how users concentrate their votes | On | On / Off |
When to use it:
- Feature prioritization - let customers allocate votes across features to show relative importance.
- Measuring intensity - learn which options voters feel most strongly about, not just which option has the most supporters.
- Brainstorming rounds - when you have many options and want to narrow down the top picks.
Example: A fashion brand creates a proposal with 6 potential new colors. Each customer gets 5 votes. A customer who loves "Ocean Blue" can put all 5 votes on it, while another customer may spread their votes across 3 colors.
Warning
Passion Score analytics (when enabled) track how concentrated each voter's choices are. A voter who puts all votes on one choice has a high passion score; a voter who spreads evenly has a low passion score.
Group-Based Power
Voting weight is determined by the voter's Voter Group membership. Each Voter Group has a configurable voting_power value (set in Member Management > Groups). When a user who belongs to a group votes, their weight equals their group's voting power.
Formula: Depends on the Multi-Group Mode when a user belongs to multiple groups:
- Use Highest Power (default) -
weight = max(group_powers) - Sum All Powers -
weight = sum(group_powers) - Average Powers -
weight = average(group_powers)
Parameters:
| Parameter | Description | Default | Options |
|---|---|---|---|
| Fallback Weight | Weight for users who are not a member of any group | 1.0 | 0 - 100 |
| Multi-Group Mode | How to calculate weight when a user belongs to multiple groups | Use Highest Power | Use Highest Power / Sum All Powers / Average Powers |
When to use it:
- Tiered membership programs - Gold members get 5x the voting power of Silver members.
- VIP customer segments - give top-spending customers more influence.
- Partner and team voting - internal stakeholders get different weight than external customers.
Example: Your organization has three groups:
- "VIP Customers" with voting power 5
- "Regular Customers" with voting power 1
- "Brand Ambassadors" with voting power 3
With Use Highest Power mode: a user who is both a VIP Customer and a Brand Ambassador votes with weight 5 (the highest). With Sum All Powers mode, the same user would vote with weight 8 (5 + 3).
Note
Set the Fallback Weight to 0 if you want only group members to be able to vote. Users without any group membership will have zero voting power and their votes won't affect results.
Tenure/Seniority Based
Voting weight grows over time based on how long the member has been registered. New members start with a base weight, and it increases with each year of membership up to a configurable maximum.
Formula: weight = base_weight + (years_as_member x yearly_bonus), capped at max_weight
Parameters:
| Parameter | Description | Default | Range |
|---|---|---|---|
| Base Weight | Starting voting weight for all users, regardless of tenure | 1.0 | 0.1 - 10 |
| Yearly Bonus | Additional weight gained for each full year of membership | 0.5 | 0.1 - 5 |
| Max Weight | Cap on voting weight to prevent excessive influence | 5.0 | 1 - 100 |
When to use it:
- Rewarding loyalty - customers who have been with you for years get a stronger voice.
- Community maturity - experienced members are more likely to understand the context of decisions.
- Retention incentive - gives members a reason to stay engaged long-term.
Example: With the default settings (base = 1.0, bonus = 0.5/year, max = 5.0):
| Member Since | Years | Weight Calculation | Final Weight |
|---|---|---|---|
| Today | 0 | 1.0 + (0 x 0.5) = 1.0 | 1.0 |
| 1 year ago | 1 | 1.0 + (1 x 0.5) = 1.5 | 1.5 |
| 3 years ago | 3 | 1.0 + (3 x 0.5) = 2.5 | 2.5 |
| 8 years ago | 8 | 1.0 + (8 x 0.5) = 5.0 | 5.0 |
| 12 years ago | 12 | 1.0 + (12 x 0.5) = 7.0 -> cap | 5.0 |
Engagement Score Based
Voting weight scales with the user's engagement score - a value from 0 to 10 that Vora tracks based on how actively a member participates (voting on proposals, submitting ideas, visiting the platform, etc.).
Formula: weight = base_weight + (engagement_score / 10 x score_multiplier)
Parameters:
| Parameter | Description | Default | Range |
|---|---|---|---|
| Base Weight | Starting voting weight for all users | 1.0 | 0.1 - 10 |
| Score Multiplier | Multiplier applied to the normalized engagement score | 2.0 | 0.5 - 10 |
When to use it:
- Rewarding active participants - voters who regularly engage with your community carry more weight.
- Discouraging drive-by voting - casual visitors who never engage get minimal influence.
- Gamification synergy - engagement score ties directly into Vora's gamification and XP systems.
Example: With default settings (base = 1.0, multiplier = 2.0):
| User | Engagement Score | Weight Calculation | Final Weight |
|---|---|---|---|
| Inactive user | 0.0 | 1.0 + (0.0/10 x 2.0) = 1.0 | 1.0 |
| Casual voter | 3.0 | 1.0 + (3.0/10 x 2.0) = 1.6 | 1.6 |
| Regular member | 6.0 | 1.0 + (6.0/10 x 2.0) = 2.2 | 2.2 |
| Power user | 10.0 | 1.0 + (10.0/10 x 2.0) = 3.0 | 3.0 |
Note
Engagement score updates automatically based on user activity. You can view each member's current score in the Member Management section.
Role-Based Tiers
Define exact voting weights for specific roles in your organization. You map each role (identified by Voter Group name) to a fixed weight value. This gives you precise control over governance hierarchies.
Formula: weight = tier_weights[matched_role] or default_weight if no role matches
The system checks each of the voter's group memberships against the configured role tiers and uses the highest matching weight.
Parameters:
| Parameter | Description | Default |
|---|---|---|
| Role Weight Config | Map of role names to voting weights | founder = 10, board_member = 5, advisor = 3, member = 1 |
| Default Weight | Weight for users with no matching role | 1.0 |
| Role Source | Where to look up roles (Group Name or User Metadata) | Group Name |
When to use it:
- Board governance - board members get 5x weight, advisors get 3x, regular members get 1x.
- Hierarchical organizations - different organizational levels have different decision-making power.
- Custom role structures - define any role-weight mapping that fits your organization.
How role matching works:
When Role Source is set to Group Name (default), Vora checks the voter's Voter Group memberships against your configured role names. The match is exact - the group name must match the role name precisely (case-insensitive).
For example, if you configure a tier for "board_member", only users in a group named exactly "board_member" will receive that weight. Users in a group called "board_member_emeritus" will not match.
Example configuration:
| Role (Group Name) | Weight |
|---|---|
| founder | 10.0 |
| board_member | 5.0 |
| advisor | 3.0 |
| member | 1.0 |
A user who belongs to both the "advisor" and "member" groups would vote with weight 3.0 (the highest match).
Warning
Role names must match group names exactly. If your Voter Group is called "Board Members" (with a space and plural), the role tier must also be "Board Members" - not "board_member". Check your group names in Member Management > Groups.
Quadratic Group Power (Anti-Whale)
An anti-whale mechanism that applies square root scaling to group-based voting power. This gives a diminishing return to high-power voters - doubling your group power does not double your voting weight.
This prevents any single large stakeholder from dominating decisions while still recognizing their greater contribution.
Formula: weight = sqrt(group_power) x coefficient, bounded between floor_weight and ceiling_weight
Parameters:
| Parameter | Description | Default | Range |
|---|---|---|---|
| Coefficient | Multiplier applied after the square root calculation | 1.0 | 0.1 - 5 |
| Minimum Weight | Floor - no voter can have less than this weight | 1.0 | 0 - 10 |
| Maximum Weight | Ceiling - no voter can have more than this weight | 10.0 | 1 - 100 |
| Fallback Weight | Weight for users with no group membership | 1.0 | 0 - 10 |
When to use it:
- Preventing domination - large token holders or high-power group members shouldn't be able to override the majority.
- Fair representation - still rewards higher contribution, but with diminishing returns.
- DAO-style governance - common in decentralized governance models.
Example: With default settings (coefficient = 1.0, floor = 1.0, ceiling = 10.0):
| Group Power | Calculation | Final Weight |
|---|---|---|
| 1 | sqrt(1) x 1 = 1.0 | 1.0 |
| 4 | sqrt(4) x 1 = 2.0 | 2.0 |
| 25 | sqrt(25) x 1 = 5.0 | 5.0 |
| 100 | sqrt(100) x 1 = 10.0 | 10.0 |
| 400 | sqrt(400) x 1 = 20.0 -> cap | 10.0 |
Notice: a user with 100x the group power of another user only gets 10x the voting weight (not 100x). That's the anti-whale effect.
Note
This strategy reads group power from Voter Groups, just like the Group-Based Power strategy. The difference is the square-root scaling. Make sure your groups have meaningful voting power values configured in Member Management > Groups.
Choosing the Right Strategy
Not sure which strategy to pick? Here are some common scenarios:
| Your Situation | Recommended Strategy |
|---|---|
| Simple poll, everyone's opinion matters equally | One Person, One Vote |
| Feature prioritization with many options | Multiple Vote (Passion) |
| VIP or tiered membership program | Group-Based Power |
| Want to reward customers who've been with you for years | Tenure/Seniority Based |
| Want to reward customers who actively participate | Engagement Score Based |
| Board vs. member governance with defined roles | Role-Based Tiers |
| Tiered membership but want to prevent whales from dominating | Quadratic Group Power |
Note
You can change the strategy on a proposal only before the first vote is cast. Once voting begins, the strategy is locked to ensure fairness.