last update: 06/29/2026
A GUI for the Rlauxe Risk Limiting Audit library.
Download the repo:
cd <devhome>
git clone https://github.com/JohnLCaron/rlauxe-viewer.git
Build the viewer application:
cd <devhome>/rlauxe-viewer
./gradlew clean assemble uberJar
and check that viewer/build/libs/viewer-uber.jar was built.
cd devhome/rlauxe-viewer
For Belgium elections:
java -jar viewer/build/libs/rlauxe-viewer-uber.jar -belgiumAudit
For Colorado elections:
java -jar viewer/build/libs/rlauxe-viewer-uber.jar -corlaAudit
For all audits:
java -jar viewer/build/libs/rlauxe-viewer-uber.jar
For any of these, you can optionally set the default directory where Audit Records are kept, eg:
java -jar viewer/build/libs/rlauxe-viewer-uber.jar -belgiumAudit -datadir /my/rlauxe/audits
which is where the "Audit Record Chooser" widget will start from.
In the Project Panel, navigate to the source file
viewer/src/main/java/org/cryptobiotic/rlauxe/viewer/ViewerMain.java
In the editor, there should be a clickable green button on class ViewerMain:
After the application starts, use the "Audit Record Chooser" button
to bring up the "Audit Record Chooser" widget,
then navigate to the directory where the Audit Record is stored.
The Contests tab will be populated from the chosen audit record:
Select a Contest in the top table, right click and choose Show Contest. Each visible field is shown with a description and its value for that contest, along with a summary of the contest and the reported votes for each candidate:
Change the Font Size from the System Menu in the upper left:
Closing the viewer window will save your UI configuration (in ~/.rlauxe/). Choose "Exit Viewer NO Save" to exit without saving. Choose "Save Preferences to Disk" to save without exiting.
Click on a table's top right corner gear icon
to bring up the table column chooser:
which shows the table's columns to show or remove from the table.
Change the order and size of the table headings, by clicking and dragging the table headers:
Change the table sort order by clicking the table header of the field you want to sort on.
If the audit has already run, clicking on the AuditRounds tab will show you the results by round:
In this case, the audit completed successfully in a single round. The Assertion Rounds table shows all the assertions needed by the audit. By clicking on a header, you can sort the table by that column's value. In this example, we have sorted on the "estimate new Mvrs" colums, to see which assertions require the most samples.
The Estimation Rounds table shows the estimated distribution of samples needed for the selected assertion. The Audit Results table shows the results of the actual Audit (if its was done).
If you right-click on the Audit Result line, and choose Rerun audit with Details, the audit is rerun and shows the actual audit sample values, betting value, pvalue, mvr and cvr.
In this example, the votes always match, so the assort value always equals noerror, and the estimate should be spot on. The fields shown in the Rerun audit with Details report are:
- j : sample number
- xj : assort value
- lamj : BettingMart bet
- tj : (1 + lamj*(xj - mj) )
- Tj : Product (tj, j=1..j)
- pvalue = 1 / Tj
- location: sampled CVR's location
- mvr votes: MVR's votes
- card: CVR's votes
The Rlauxe getting started page has instructions on how to build all of the case study datasets.








