Home > Pseph

Senate preference explorer

This is a Windows/Mac application to explore Senate preferences.

Windows

Download version 2.01 for Windows. Extract contents to some folder and run senate_pref_explorer.exe. The executable is unsigned, and strict IT policies may prevent it from running on a work computer.

Mac OS

Download version 2.01 for Mac. As an unsigned app not from the App Store, the OS will quarantine it and say that it's defective if you try to run it. From a Terminal window, navigate to the folder where you've placed the file and run
xattr -c senate_pref_explorer.app
to remove the quarantine. This command may not work in one of the "default" folders like Documents or Downloads; I recommend placing the file in some new folder outside of these. Once the quarantine is removed, you should be able to double-click on the app to run.

Preference files

The program reads preferences from SQLite databases. There is a separate file for each state and election; you can download these (some or all) from here. Each of these is zipped up; you will have to extract the SQLite file, and place it anywhere on your computer.

Custom query language

A conversational description of the custom query syntax, with examples, is here; this is a copy of the file linked in the program's Help.

History

Miscellaneous

The AEC publishes every formal Senate vote, and since the voting system reforms of 2016, these provide an incredibly rich dataset of Australian public opinion. After downloading one or more SQLite preference files and launching the software, load the preferences into the program by clicking on the 'Load preferences...' button and start clicking around. Some calculations for the larger states may take a while, but in ordinary use during testing, it's rarely taken longer than 30 seconds to generate a table, and usually it gets calculated in under 10 seconds.

A very large custom table, such as candidates versus candidates in NSW 2016, may be slow to calculate when sent to the main table and map because of memory issues in storing all the polling place data for each table cell.

If you find a bug, let me know via Bluesky or email dw.barry@gmail.com.

Source code is available on Github. I wrote it with Qt, which is a cross-platform framework. I started writing the first version in Ubuntu; it took a day or two to port it to Windows, with the most severe problem being in the capturing of variables for lambda functions; it took a day or two to port it to Mac, with the most severe problem being the clang compiler's std::sort function often comparing an element to itself, a case I hadn't anticipated.

Simplified web-based explorers are available for 2016, 2019, 2022, and 2025.

Posted 2019-06-17.
Updated 2019-07-07 (version 1.1).
Updated 2019-07-21 (version 1.2).
Updated 2019-08-02 (version 1.21, Mac),
Updated 2021-07-18 (version 1.3),
Updated 2021-07-19 (version 1.31).
Updated 2025-07-27 (version 2),
Updated 2025-08-02 (version 2.01).


Home > Pseph