How the question decides the answer

Change nothing about the voters. Change only what the ballot asks. Watch the winner change.

A committee of seven has a shared fund and four things to spend it on. Each member has told you, honestly, how much they want each one. Nobody is strategising and nobody changes their mind below.

The only thing that changes is the shape of the ballot — and with it, the winner.

Figure 2

How should the shared fund be spent this quarter?

Pick a way of counting. The preference table above the buttons never changes; only the question being asked of it does.

How each group of members rates each option, from 0 to 5
7 membersRepair the roofFund the apprenticeshipBuy the toolingHold in reserve
Three members who use the building daily
Two members who train newcomers
Two members who do the work itself

The ballot asks: Which single option do you want most?

  1. Repair the roof3 first choices
  2. Fund the apprenticeship2 first choices
  3. Buy the tooling2 first choices
  4. Hold in reserve0 first choices

Repair the roof wins with 3 of 7. Four of the seven members rated it zero. Nothing was counted wrongly — this is what “pick one” is for, and it is why the option most people can live with can lose to the one a large minority loves.

Computed by methodSpec(id).aggregate() — src/lib/domain/methods/

Counting heads, or asking about harm

The five above all rank things. The deepest split in the list is not between them, but between asking who is in favour and asking can anyone see harm here. Same room, same question, two readings.

Figure 3a

As a yes/no vote

5 of 7 vote yes. A simple majority carries it, and the two objections become a number.

On the table: Sign the roof contract at the quoted price.

Yes
5
No
2
Abstain
0

Carried

Computed by methodSpec("single_choice").aggregate()

Figure 3b

As a consent decision

The identical ballots, read as consent. One reasoned objection is enough, so the proposal does not pass — and the reasons survive as text the group has to answer.

On the table: Sign the roof contract at the quoted price.

  • The quote is a year old and the contractor has not re-surveyed the roof since the storm.

  • Signing this quarter spends the reserve we agreed to hold until the audit closes.

Not passed — 2 objections to resolve

Computed by methodSpec("consent").aggregate()

The 6 methods, and what each is for

Every line below is read from the method’s own definition — the same object that validates the ballot, writes the text you sign, and counts the result.

MethodAsksKind
Yes / nosingle_choiceEach member votes yes, no, or abstain. Abstaining counts toward quorum but not toward the result.Decision
ConsentconsentAgree, abstain, or object with a reason. Any single reasoned objection stops the proposal — consent asks whether anyone sees harm, not who has the most votes.Decision
ApprovalapprovalApprove every option you find acceptable — as few or as many as you like. The option with the most approval wins.Ranking
Dot allocationdotSpend 5 dots across the options however you like. The dots are the priority.Ranking
ScorescoreRate each option from 0 to 5. The highest average wins.Ranking
Ranked (Borda)rankedPut the options in your order of preference. Earlier places earn more points; anything you leave out ties for last.Ranking