The fine print
Exactly how Bloc works
The home page is the short version. This page is the full method, for anyone who wants to check our reasoning. Every rule here is what the software actually does today.
1. A race, start to finish
- Before rating opens: we publish the candidates, the poll we’re using, and the list of candidates who can win with our votes. That list is fixed from here on.
- Rating is open (about 10 days): every member in that district gets a ballot and rates each candidate 0–5 stars. Sending a ballot is the promise. Members can change their ratings, or back out of the race, until rating closes.
- Rating closes, and we announce the pick before official ballots are mailed, so members who vote by mail or vote early get the pick in time.
- Election day: members vote for the pick on their official ballot.
- Afterward: we publish the official result next to what we planned, and, once we can measure it, how many members actually voted.
2. Who can win with us
Before anyone rates, we work out which candidates would finish first if every Bloc vote went to them. Internally this is called the feasible set. On the site we call it the list of candidates who can win with us.
What goes in
- A public poll: each candidate’s share of the vote, plus its margin of error.
- A cautious estimate of Bloc’s votes: the share of total turnout we expect members to actually deliver. It’s deliberately low. Being wrong in the cautious direction just means we pass on some races we could have won.
The test
- We simulate the poll 4,000 times, nudging each candidate’s share at random by an amount that matches the poll’s margin of error (a normal distribution with standard deviation equal to the margin divided by 1.96).
- In each simulation we move Bloc’s votes: members are assumed to start out split the same way as everyone else, and all of them switch to the candidate being tested.
- A candidate can win with us if they come out clearly in first place in at least 60% of the simulations.
The stability check
Polls can be off by more than chance alone suggests. So we rerun the whole test twice more: once with one full margin of error shifted from the poll leader to the runner-up, and once the other way around. If the list changes in either direction, we don’t trust it, and we make no binding pick for that race. The probabilities are still published.
How many members a district needs
The calculator on the home page gives a recruiting target: members = turnout × typical margin ÷ share of members who vote. It counts only the votes Bloc adds to the runner-up and ignores the extra swing from members who would otherwise have voted for the leader, so it errs on the high side. Until we can measure real turnout, we assume 3 in 4 members vote. Margins vary a lot from race to race, so this is a target for a typical race, not a promise for any particular one.
Locked in advance
The list is published before rating opens. If something changes later, for example if we find out fewer members will turn out than planned, names can be removed. Names can never be added. That way nobody can tweak the list to suit the ratings once they’re in.
3. How ratings are counted
We use STAR voting (Score Then Automatic Runoff).
- Score round: add up every candidate’s stars. The two highest totals become the finalists.
- Automatic runoff: each ballot counts as one vote for whichever finalist it rated higher. A ballot that rates both finalists the same counts as “no preference.” The finalist with more votes wins.
Stars are a score, not a ranking. 5 is best and 0 is worst. On a ranked ballot “1” means first, but here 1 star is near the bottom.
Two counts, both published
- Members’ favorite: STAR across every candidate. This is the honest signal of who members want.
- Bloc’s pick: STAR across only the candidates who can win with us. This is who members are asked to vote for.
Often they’re the same person. When they’re not, both names go on the results page.
Ties
- A tie for a finalist spot goes to whichever tied candidate more ballots preferred head-to-head.
- A tie in the runoff goes to the finalist with more total stars.
- Anything still tied is settled by a published lot: a SHA-256 hash of the race and candidate IDs. Anyone can rerun it.
4. When there’s no pick
An unreliable pick would waste members’ trust, so we would rather sit a race out. There is no binding pick when:
- Nobody can win with us: no candidate reaches the 60% line.
- The list isn’t stable: shifting the poll by one margin of error changes who qualifies.
- We wouldn’t change anything: the only candidate who can win with us is the one already leading.
- Too few members took part: fewer than half of the members invited to the race sent ratings.
In each case we still publish the ratings, the members’ favorite, and the reason there is no pick.
5. Three numbers we never mix up
- Invited: members who were sent the race. A big list doesn’t mean a lot of votes.
- Rated: members who sent ratings and made the promise. Members who skipped or backed out aren’t counted here.
- Delivered: votes we can show were actually cast, measured after the election. This is Bloc’s real power. Until we’ve measured it, we leave it blank. We never guess.
We never add these together or report one as if it were another.
6. Privacy and checking the count
Two separate systems
The registrar knows who you are: your name, address, and date of birth. When you join, it gives you a random 256-bit token and keeps only a fingerprint of it (a SHA-256 hash). The tally stores that fingerprint next to your star ratings and never sees your name.
Published ballots
Once rating closes, and only if at least 50 members rated (so no single ballot stands out enough to point to a person), every ballot is published with its 8-character confirmation code and no names. You get your code when you rate. Look it up, confirm it matches, and rerun the count yourself.
Your official ballot
Bloc never sees how you voted in the real election, and it can’t. Your secret ballot stays secret. Many states publish whether each registered voter voted. That is how we plan to measure turnout, and only as a total across all members.
7. Harbor, by the numbers
These are the live numbers behind the example on the home page, straight from the software. Harbor, its candidates, and its poll are made up.
8. What isn’t built yet
This is an early working version. Here’s what it doesn’t do yet:
- Voter verification: the practice version takes your word that you’re a registered voter. It doesn’t check a voter file yet.
- Real polls: Harbor’s poll is invented. Real races will use published or commissioned polls.
- Turnout measurement: “Delivered” stays blank until we can measure it from public turnout records.
- Independent counting: the tally is not yet run by a separate organization.