Fill your filing in 2 minutes.
Drop in your donor, disbursement, and debt spreadsheets. Get back a signed PDF and Excel supplements ready to file with your committee's designated filing officer. Your data never leaves your device.
Filing venue varies by committee type and jurisdiction (state, county, city, or clean-elections). Check your committee's registration to confirm where to submit.
Try it with sample data
Don't want to load real data just to kick the tires? Download a complete synthetic dataset โ two fake committees, 41 fake donors (mix of in-state, out-of-state, PACs, in-kind), 17 fake disbursements (enough to exercise the 5-row page overflow), and 2 fake unpaid debts. Feed them to the forms above to see the tool work end-to-end.
All data is 100% synthetic โ no real people, committees, vendors, or addresses. The ActBlue- and Givebutter-shaped CSVs contain the same donors under their respective platform's native column headers, so you can verify the column mapper auto-resolves non-template layouts.
1. Committee
Load a committee_config.yaml, or fill in the form below for a single committee.
2. Your data
Load your donor, disbursement, and debt data. Any CSV or XLSX with the required fields works โ you don't have to use our template. The column-mapper will figure out which of your columns correspond to which AZ schedule fields.
Drop CSV/XLSX or click to choose (multiple files OK)
Drop CSV/XLSX or click to choose (multiple files OK)
Drop CSV/XLSX or click to choose (multiple files OK)
+ Add a single contribution (check, wire, in-kind, etc.)
| Date | Name | Amount | Kind | Type |
|---|
+ Add a single disbursement
| Date | Payee | Amount | Category |
|---|
+ Add an outstanding debt
| Date | Creditor | Amount | Type |
|---|
3. Signature
Choose how to sign. Typed electronic signatures are accepted under A.R.S. ยง 44-7007.
4. Generate
Everything runs locally in your browser. Your files are never sent to a server โ not even to us.
Your filing
Self-host this tool
This web app is open source and designed to self-host. Three ways:
Docker
docker run -p 8080:80 \
ghcr.io/energy-freedom-team/openfile-az:latest
Open http://localhost:8080.
Static files
pip install openfile-az
openfile-az serve --port 8080
Or drop web/dist/ into any static host (nginx, Caddy, S3, GitHub Pages).
Offline
# unzip openfile-az-web-*.zip
open index.html
Works from a USB stick. No install, no network.
Privacy
- No network transfer. Your files are read locally in the browser. Nothing is sent to a server โ not even to us.
- No tracking. No analytics. No cookies. No accounts.
- Verify it. Open DevTools โ Network tab while generating a filing. You'll see zero outbound requests after page load.
- Turn off your wifi. Once loaded, the whole tool works offline.
- Audit it. Every line of code is on GitHub under an MIT license.