VEC's Election Management Systems

The VEC develops and maintains a range of applications used in all phases of an election. This software is used to help manage and administer each of the VEC's electoral events.

We are committed to transparency regarding election processes and understand that any software that has a direct impact on the outcome of an election must be open to review and scrutiny. Software of particular interest to election participants is contained in the following modules of EMS:

  • the Nomination module is used to administer all parts of the candidate nomination process and contains functionality to conduct a randomised ballot draw; and
  • the VEC's ComputerCount application, which allows the VEC to calculate the result of an election based on either a preferential or proportional representation counting method.

The VEC has rigorous development and quality processes in place to ensure these modules meet legislative and VEC requirements. In addition, we are happy to provide the source code for inspection and comment.

Relevant Legislation

It is important that anyone wishing to review the VEC's code familiarise themselves with the enabling legislation as this forms the basis of the VEC's requirements and software development. Below are references to the relevant legislation.

Randomised ballot draw

For Victorian parliamentary elections

  • Electoral Act 2002, in particular section 74(1)

For local government elections

  • Local Government Act 1989, in particular schedule 2 14(2)

For City of Melbourne elections

  • City of Melbourne Act 2001, in particular schedule 1 8(9)

Computerised counting of votes

For Victorian parliamentary elections

  • Electoral Act 2002, in particular section 114A

For local government elections

  • Local Government Act 1989, in particular Schedule 3 Part 4A

For City of Melbourne elections

  • City of Melbourne Act 2001, in particular part 3 div2 (18)

Computerised Random Ballot Draw

The software module used to administer the nomination process has functionality to allow the Election Manager\Returning Officer to conduct a randomised ballot draw. This is undertaken at the Election Office in front of anyone who wishes to attend. Prior to the ballot draw, the names of the candidates for a given election are presented on the screen in a list ordered by the date and time the candidate nominated. The software then re-orders this list based on a random order generated by the software. Download the software component that generates this random order (TXT, 0kB) which is written in C#.

Computerised Vote Counting

The ComputerCount application provides the VEC with all the functionality required to manage and conduct the count and result of an election based on either first past the post, preferential or proportional representation (single transfer value) count methods. The application has modules that provide for the management and reconciliation of all ballot papers to be entered into the count, a module that allows a data entry operator to correctly enter the preferences from the ballot paper into the database in accordance with the relevant formality rules that apply to a given election, and a module that calculates the results based on the formal ballot papers entered into the database by the data entry operators.

The calculation module implements the relevant counting methods in two ways, firstly by using a work flow that provides the logic on how to handle the counting process and a C# component that calculates the results at the relevant points in the work flows. The VEC can provide the following to support both the workflow and the calculation component:


The VEC contracted an external auditor, BMM Australia Pty Ltd, to review the source code and the VEC's development and testing processes. BMM was asked to review the following areas:

  • That the VEC's analysis documents correctly define the requirements for the calculation of proportional representation, preferential and first past the post counting methods;
  • Review of testing methodology, test cases and test results;
  • Inspection of source code for any fraudulent code to ensure it accurately implements the requirements;
  • A review of the random number generator used for computer ballot draws; and
  • Confirmation and certification that the code correctly implements the calculation of proportional representation in accordance with the relevant legislation.

BMM found that:

  • The quality assurance methodology and software quality control was rigorous and well documented;
  • The user cases upon which software development and testing were based were adequate to ensure that the system complies with relevant legislation;
  • The system had been tested to ensure that previous election counts could be reproduced with the same candidates being elected at the same stages of the count;
  • There was no malicious code in the software; and
  • The random number generator software performs a fair ballot draw.

The BMM report is available for download via the following links:


The VEC has provided access to their source code as part of the Commissions commitment to transparency. Anyone is welcome to download and inspect the code and provide any feedback by e-mailing Whilst the VEC will monitor this mailbox there is no guarantee that any e-mail will be actioned or a response given. Anyone e-mailing this mailbox needs to be aware that all e-mails and VEC response\action will be displayed on this webpage as part of the transparency mechanism.