No. 0 3 8 4 1 7
1Candidate A
2Candidate B
3Candidate C
Tally sheet · first batch
Station 03 · Stream 2
Candidate A0
Candidate B0
Candidate C0
Spoilt0
One stroke, one ballot
Chain of custody
One paper, five hands
The voter
Polling agent
Counting agent
Campaign HQ
Returning officer
TurnoutStation 03 · Stream 2
Type or paste serial numbersType a serial number

Separate serials with , Space Enter

Recent check-ins · this stream
01426:50 AMUndo
01416:50 AMUndo
01406:49 AMUndo
01396:49 AMUndo
Stream turnout142 / 250 · 57%
CountingStation 03 · Stream 2
Saved by Agent 2 while you were typing

Nothing was overwritten. Pick which Candidate A figure to keep.

Yours214
Theirs241
Keep mineTake theirs
Merged as version 4. Both entries stay in the audit log.
Stream result sheetStation 03
Candidate A241
Candidate B187
Candidate C96
Spoilt9
Total533
Counting agent
Returning officer
Verified
APIv1
Tear here
req 7f3a-c812 · 20:42:09 MYT
Election-day tally · Malaysia

Every vote, counted openly.

One live count for polling agents, counting agents and campaign HQ. From the first check-in at the station to the printed result sheet.

Turnout · Counting · Live board · Result sheets English · Bahasa Malaysia · 中文
Fig. 1 · One mark on paper01
01 · The night

The polls close. Three people read out three different numbers, and the rumours start before the count does.

Tally sheet, Station 03412
Photo in the group chat421
Call to the party office409
Illustrative example

One count.
One number.
Everyone sees it.

Five hands.
One paper.

02 · Many hands

Five people touch every count.

OpenVote is built around each of them, not just the person at the laptop.

01

The voter

Where every number begins. Nothing OpenVote does should come between this mark and the count.

02

Polling agent

Types serial numbers at the station. A dropped signal never loses the batch.

03

Counting agent

Enters each candidate's total per stream. If someone saved first, nothing is overwritten.

04

Campaign HQ

Watches turnout and the count land on one live board, without phoning anyone.

05

Returning officer

Signs the sheet that matches the screen HQ is watching.

03 · How a count runs
ATurnout

Agents type serial numbers. Nothing else.

At the station, agents enter electoral-roll serials from their phone. Each check-in lands in the stream's recent list with the time and who entered it, and HQ sees turnout move.

Type one, or paste a whole listSeparate serials with a comma, Space or Enter. Zero-padding and repeated numbers are handled for you.
Undo a slipEvery recent check-in has an Undo next to it, so a mistyped serial is one tap to fix.
BCounting

Two agents, one stream. Nobody gets overwritten.

After polls close, counting agents enter each candidate's total per stream. If someone else saved first, the portal shows both versions side by side and asks which to keep.

Auto-verify or manual reviewEach election chooses. Admins can spot-check or approve from a queue.
CStream result sheet

The sheet everyone signs matches the screen HQ watches.

When a stream is verified, its result sheet prints straight from the browser. Plain HTML, no PDF server, nothing extra to install.

One number from station to HQ. The sheet and the dashboard read the same verified count.
Print one stream or all of them. Single sheets, a batch, or a summary sheet.
04 · Live board

Campaign HQ watches the count land.

Streams report in and the dashboard refreshes every few seconds. A projector view keeps the last numbers on screen even if the session ends.

Streams in0 / 52
Turnout0%
Updated21:30:00
Live
05 · Why rivals can share it

Rival campaigns. One platform. No overlap.

Several constituencies can run on the same deployment. Each one only ever sees its own.

ConstituencyA
ConstituencyB
ConstituencyC
Permissions per electionRoles, overrides and coverage are set for each election. A closed election becomes read-only.
Voter details maskedIC numbers are masked by default. Full records are for people you grant, and every reveal is logged.
Append-only audit logEvery change is recorded. In production the database user cannot edit or delete history.
Phone and passwordNo sign-up, no email. An admin issues each account and a new temporary password when needed.

OpenVote counts. It does not campaign, rank or predict.

Before the next polling day

Run your next count openly.

Tell us the constituency and the election date. We will set up a walkthrough with your polling and counting leads.

hello@openvote.example

Walkthrough requestAbout a minute

We will use your details only to arrange the walkthrough.

Request noted.

Thank you. We will be in touch to arrange the walkthrough.

Your name
Party or organisation
Email or WhatsApp number