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
- 2025-08-02, Version 2.01 for Windows and for Mac. Minor bug fixes (divisions table would show 1 vote instead of 0; some error messages were poorly formatted).
- 2025-07-27, Version 2 for Windows and for Mac. Introduction of a custom query language (and some more minor changes).
- 2021-07-19, Version 1.31 for Windows and for Mac. Fixing crashes when trying to sort, mostly present on Mac.
- 2021-07-18, Version 1.3 for Windows and for Mac. Overall N-party-preferred figures; will be able to draw division-level maps for elections held after 2019.
- 2019-08-02, Version 1.21 for Mac.
- 2019-07-21, Version 1.2 (Windows). Maps by booth.
- 2019-07-07, Version 1.1 (Windows). Maps by division (i.e., not booth-level); calculations no longer automatically update on changing spinbox values; cross table cells should now be blank instead of zero when the cell value was excluded from the calculation.
- 2019-06-17, Version 1 (Windows). First release; tables and cross tables.
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).