< Mat-O-Wahl - An Electoral Compass Alternative >

A simple to handle, free "Voting-Machine" / "Electoral Compass" clone for everybody for different use-cases

    [img] Mat-O-Wahl Mat-O-Wahl (from the German project Wahl-O-Mat (Wahl-Automat) / Vote-Machine) is a programm (or a better a framework) to compare party positions with your own opinion. It can be freely copied and modified, so everyone can quickly and easily create their own questionnaires on political topics.

    Possible use-cases are local elections like for the mayor, town council / city council, sheriff, school board, department (FR), or region but also referendums or university elections.

    [img] Mat-O-Wahl MatOWahl (MOW) is based on WahlOMat (a.k.a. Smartvote/Switzerland, Electoral Compass/USA or StemWijzer/The Netherlands). It's published in Germany by the state agency Bundeszentrale für politische Bildung and originates from the Dutch StemWijzer. The Wahl-O-Mat is copyright protected and quite complex (on a technical level). This makes it hard to use on small cases. Other electoral compass-alternatives are server-based (PHP, MySQL) and need even more know-how. So the MatOWahl was developed as an alternative.

    Mat-O-Wahl in action (Examples / Demos)

    1. General example: Elections in Fruit-town (German) - 6 Questions, 4 Parties

      Mat-o-Wahl Obsthausen Mat-o-Wahl Obsthausen

    2. Please refer to the examples on the German Mat-o-Wahl page.

    > Functions and Benefits


    • Questions on positions / opinions
    • Selection between agree / disagree / no opinion and skip
    • Go back / move forward / jump between questions
    • Weigh of questions


    • Number of matches
    • Text of the question
    • Text of the party answer
    • Order of results by match
    • Single selection of parties for detailed results

    Other functions

    • Works online and offline
    • Simple administration by CSV-files and text files
    • No big technical know-how necessary
    • Personal designs (CSS)
    • Free license (GPL) for own modifications

    > Editorial Advice


    The editorial staff of the original Wahl-O-Mat on the Bundestag-elections 2009 consisted of 20 people, which compared the different party programmes and created the questions. The questionnaire before the elections of the European Parliament 2014 was created by 25 first time voters in cooperation with a number of scientists.

    Cooperation Partners

    To find the right question, I would like to suggest to work in team and not alone. Representatives from the press, interested citizens but also politicians would make up a solid base.

    The Right Questions I

    One should also keep in mind a diversity of questions. On a regional level not every questions has to be on the new fire department building, the working hours of the fire department and the financing of the next fire department party. Other important questions might turn around kindergartens, schools, streets, industry and tourism.

    The Right Questions II

    In addition, a question has to be answered with agree / disagree. The question What do you think about the airport enlargement? can not be answered either way. It better should be The city should enlarge the airport or The city should not enlarge the airport. Both questions can be answered now.


    Many pictures are copyrighted. Please ask the owner of the picture before using a party logo or a photo. Pictures for free use often use the free CreativeCommons-license (like CC:BY or CC:BY-SA).


    There is also a (German) PDF-manual. (A translation into English is in progress).

    > Show General advices


    All important settings are done in text-file called "definition.js" in the folder "/data". It can be edited with a simple text-editor. (Notepad, Wordpad, ...)
    You can also add contact details for the legal notice / imprint and a description about the election. However, more important are the settings on the parties, the party-files and the question-file.

    General information on CSV-files

    All questions and party positions are stored in simple CSV files. These are normal text-files that can be opened in an editor (Notepad, Wordpad, ...) but also in a spreadsheet software (MS Excel, OO/LO Calc, ...). All columns have to be separated by a simple character, like a comma or semicolon. You can choose your own filenames for the CSV-files in "definition.js".

    Example CSV file

    View of a comma separated CSV-file in a text-editor ...

    Airport ,The city should enlarge the airport.
    School, The Alfred E. Neumann school should be closing.
    Bicycle Track,Building a bicycle track into the Fairy Tale Forest is more important than the renovation of the dead-end street in old-town.
    "Debts" , The city should not make any more debts.

    ... and in a spreadsheet software (Excel, Calc, ...)

    Airport The city should enlarge the airport.
    School The Alfred E. Neumann school should be closing.
    Bicycle Track Building a bicycle track into the Fairy Tale Forest is more important than the renovation of the dead-end street in old-town.
    Debts The city should not make any more debts.

    > Details and Example


    All texts (all values except for numbers) must be enclosed by quotation marks. In addition, lists have to be separated by a comma. e.g.: "Party1, FirstName2 Name2, Candidate3".
    Please use the same order everytime. Also, try to avoid spaces and special characters in filenames and look out for capitalisation! A "file.txt" is different to a "File.txt".

    Settings on the Obsthausen-example

    [Open Mat-O-Wahl] - [Open Definition.js]

    General Settings

    Variable Value Description
    fileQuestions Fragen.csv File with the questions for the parties. Here, we have six questions. First row of the CSV-file contains a short summary of the question while the second row contains the actual questions.
    arPartyFiles Apfelpartei.csv Bananenpartei.csv Citronenpartei.csv Neutrale.csv A list of files with the positions of the parties.
    Here, we have four parties with six answers each. First row of the CSV-file contains a number with the position. -1 = "Don't agree", 0 = "No Opinion" and 1 = "Agree". The second row contains the justification.
    arPartyNamesShort, arPartyNamesLong, arPartyLogosImg, intPartyLogosImgWidth, intPartyLogosImgHeight, arPartyInternet ... List with party names in short and long, a list with pictures of party logos and a list with links to the party pages on-line. In addition, you can define the picture size (on the results page).
    intPartyDefaultShow 3 Number of parties to show in the detailed analysis. In our example we show the first three of four parties. To show all parties, enter a 0.
    heading1, heading2, explainingText ... Headlines and a short description about the election.
    imprintEditorialNames, imprintEditorialEmail ... (optional) Names and email of editors for imprint.
    imprintTechnicsNames, imprintTechnicsEmail ... (optional) Names and email of technical head for imprint.
    imprintPictures ... (optional) Owner of image rights for candidates or party-logos (for imprint).
    imprintPrivacyUrl ... (optional) Link to a privacy statement for imprint.

    If you prefer to leave these information blank, please do not delete these lines but only its content, e.g. No privacy statement: var imprintPrivacyUrl = "";

    Advanced Settings

    Variable Value Description
    separator ";" or "," Separator for CSV files (Excel uses often a semicolon, OpenOffice/LibreOffice a comma) All CSV-files must use the same separator.
    design ... StyleSheet-file (CSS).

    Professional Settings

    Variable Value Description
    statsRecord true or 1, false or 0 (optional - for experts) Allows to send the results to a server. Consent of the user and a privacy policy are needed! (Opt-In).
    statsServer http://localhost/Test/vote.php (optional - for experts) Address and name of the receiving script. Two variables are sent - mowpersonal and mowparties.
    mowpersonal is the personal selection of the user (agree / disagree / no opinion / skip) e.g.: 1,-1,0,99
    mowparties is the number of matches with the parties in the given order. e.g.: 5,1,0,2
    A call with 6 questions and 4 parties could look like this: /vote.php?mowpersonal=1,1,-1,1,0,-1&mowparties=1.5,2,4,3.5


    You can find a QUICKTEST.HTML in the root directory. It checks the most important settings and warns you in case of errors.


    Mat-O-Wahl can be downloaded for free.

    Developers can also find the source code on GitHub.


    The programme is licended under GPL - GNU General Public License Version 3.

    Related topics: Downloads Contact

    Rate page:  
      632032032036.95/5 Points (35 Ratings)
    632032032036.95/5 35