Online AGM and Member Voting System
British Powerlifting ran its governance on spreadsheets, web forms and a manual CSV merge. We replaced the whole pipeline with a voting system built inside the member portal itself — magic-link ballots, live quorum, proxy votes and an audit trail that stands up to scrutiny.

Running a governing body's AGM on a spreadsheet
British Powerlifting is a national governing body with thousands of eligible members spread across the UK. Its annual general meeting is not a formality: members submit motions, comment on them, propose amendments, and vote on resolutions that change the organisation's Articles of Association.
All of that ran on Google Sheets, Google Forms and a CSV merge performed by hand. That arrangement has three problems, and they compound. Identity is the first: a form cannot tell whether the person filling it in is an eligible member, so eligibility had to be reconciled afterwards against a membership list that had moved on in the meantime. Auditability is the second: when a result is close, "trust the spreadsheet" is not an answer, and a spreadsheet cannot show who changed what, when, or why. Timing is the third: the Articles set notice periods and voting windows in clear days, and nothing in a form checks them.
The organisation did not need a ballot vendor bolted onto the side. It needed the vote to live where the membership data already lived — inside the member portal we build and maintain for them — so that eligibility, ballots and results are one system rather than three that have to be reconciled.
What We Built
A complete meeting lifecycle — motions, comments, amendments and voting — inside the organisation's existing portal. Screens below are shown with sample data.

The meeting runs itself, until someone decides otherwise
A meeting has four independent stages — motion submission, comments, amendments and voting — and each one can be opened by hand or scheduled to open and close on a date. Companion actions fire alongside a transition, so publishing the motions when the comment window opens is one setting rather than a task someone has to remember on a Tuesday evening.
The dashboard tells the administrator what state the meeting is actually in: which stage is live, what closes next, whether the scheduler is running, and whether a stage has been closed by hand while its schedule says it should be open. Every one of those checks is advisory. The board stays in control; the system just stops it being surprised.

Results computed live, published deliberately
Tallies are computed from the ballots in real time, so the board can watch a vote land. Publishing them is a separate, explicit action — nothing reaches the public page until someone flips the switch.
Quorum is tracked against the threshold set for that meeting, and if it is not met every motion is marked not passed automatically. Pass and fail use the Companies Act thresholds the resolution type demands: strictly above 50% for an ordinary resolution, 75% or above for a special one. Withdrawn and superseded motions still appear on the results with a note explaining why, rather than quietly disappearing — the transparency matters more than the tidiness.

Knowing whether members actually engaged
Turnout is the number everyone quotes, but it is the end of a funnel, not the whole of it. The engagement view follows members from eligible, through requesting a sign-in link, to signing in, to commenting or proposing an amendment, to casting a ballot — so a drop-off can be located rather than guessed at.
Activity is plotted across the whole voting window, and engagement is broken down per motion, which tends to reveal which resolutions members cared about and which passed without anyone much noticing.
Built to the Articles, not around them
Most of the difficulty in a governance system is not the ballot. It is everything that has to be true about the ballot afterwards.
The Articles are checked on every save. Notice periods, the voting window and the comment window are all defined in clear days, and the system checks them as the meeting is configured — 60 days' notice for an AGM, 21 for an EGM, voting open at least 14 days before the meeting and closed at least 48 hours before it. The checks warn; they never block. A board that has a good reason to proceed anyway can, and the warning is recorded.
A tie has a defined answer. Where an ordinary resolution ties, the Articles give the Chairman a casting vote. The system detects the tie, records the casting vote with its reason, and adjusts the displayed tally without ever touching the underlying ballots. If a later invalidation changes the tally, the casting vote is flagged as stale rather than left silently wrong.
Eligibility is frozen at the moment of voting. Each ballot captures the member's status, age, membership number and name as they were when it was cast. A member whose record is later edited or lapses cannot be retrospectively disenfranchised, which is precisely the sort of thing a losing side asks about.
Nothing is deleted. A ballot can be invalidated, with a reason and an author, and the invalidation can be reversed; the raw data survives either way. Comments are hidden rather than removed. Every motion edit is a snapshot that can be walked backwards. Every sensitive action — opening a stage, publishing results, overriding quorum, invalidating a vote, or simply reading the audit pages — is logged with who, when, why and from where, and the whole ballot set exports to CSV for an external scrutineer.
What the System Does
Everything below replaced a step that was previously manual, or a risk that was previously carried on trust.
What it became
The system was not built once and left alone. At the 2026 AGM the membership passed a resolution creating FastVote — a single-issue members' ballot decided entirely electronically on shorter notice than a full EGM requires. We built it as a third meeting type alongside AGM and EGM, with its own timing rules, a two-thirds-of-directors trigger, an explanatory memorandum, a members' counter-statement right, and an independent scrutineer named before the poll opens.
That is the argument for building governance software inside the organisation's own system rather than renting it. When the membership votes to change how it votes, the change is a feature, not a renegotiation with a supplier.
The same pattern runs through our other work for membership bodies — the BICSc assessment and audit apps used by hundreds of registered auditors, and the ECA's proposal portal. If you run a professional body, trade association or governing body, our membership organisation software page sets out how we approach this kind of work.
Frequently Asked Questions
They do not need one. A member enters their name, membership number and date of birth, and the system emails a time-limited sign-in link to the address already held on their membership record. Name matching tolerates accents, hyphens, apostrophes and spacing differences, so O'Brien and Smith-Jones behave sensibly. The response looks identical whether or not the details matched, so the form cannot be used to confirm that someone is a member.
No. One ballot per member per meeting is enforced by a unique constraint in the database rather than by application code, so two submissions arriving at the same moment cannot both succeed. A member can review what they submitted afterwards on their own ballot page, but they cannot change it.
Nothing to their vote. Each ballot stores a snapshot of the member's eligibility — active status, age, membership number, name and email — as at the moment it was cast. If the record is later edited, or the membership lapses, the ballot already cast remains valid. This prevents anyone being retrospectively disenfranchised by an administrative change.
Every ballot is retained, including any that have been invalidated, and invalidation is reversible and always carries a reason and an author. Administrators can review votes per motion, per session or per voter, and export the whole set to CSV for an independent scrutineer. Every sensitive action is logged with who did it, when, why and from which IP address — including administrators opening the audit pages themselves.
Yes. A member may cast a ballot on behalf of another eligible member who has appointed them, and both identities are recorded against that ballot. Abstentions are recorded per motion and are excluded from the majority calculation, which is what both ordinary and special resolution thresholds require.
Almost certainly, though we would expect to start from your Articles rather than from this system. The parts that generalise are the member authentication, the ballot integrity and the audit trail; the parts that do not are the notice periods, thresholds and meeting types your own governing documents specify. Tell us how your AGM works and we can scope it — start with a free quote or a strategy call.
Need help building your ideas?
Tell us where you're headed and we'll come back with our thoughts, a realistic plan and a rough cost estimate. Scorchsoft is a UK-based team of app, portal and AI developers, working in-house from Birmingham's Jewellery Quarter.
