Data from 1998-2015
This dataset includes Single Audit submissions collected by the Census FAC from 1998 to 2015. It is provided as-is for historical research and is not included in our web-based search or API.
Download the data
All years (1998-2015)
This single ZIP file contains folders for each year:
By audit year
You can also download the files year-by-year below:
- census-1998.zip (15 MB, SHA1)
- census-1999.zip (16 MB, SHA1)
- census-2000.zip (16 MB, SHA1)
- census-2001.zip (20 MB, SHA1)
- census-2002.zip (22 MB, SHA1)
- census-2003.zip (23 MB, SHA1)
- census-2004.zip (22 MB, SHA1)
- census-2005.zip (23 MB, SHA1)
- census-2006.zip (24 MB, SHA1)
- census-2007.zip (24 MB, SHA1)
- census-2008.zip (24 MB, SHA1)
- census-2009.zip (27 MB, SHA1)
- census-2010.zip (32 MB, SHA1)
- census-2011.zip (32 MB, SHA1)
- census-2012.zip (30 MB, SHA1)
- census-2013.zip (30 MB, SHA1)
- census-2014.zip (28 MB, SHA1)
- census-2015.zip (29 MB, SHA1)
Data dictionary
The data comes in CSV format with one file per table (e.g., audits, findings, passthrough). Column names and values vary across years, so we've provided a reference guide:
Tips for using this data
Opening CSV files
CSV files can be opened in Excel, Google Sheets, LibreOffice, or imported into data tools like SAS, SPSS, Python, or R. Each file includes a header row followed by data.
Key tables:
ELECAUDITHEADER? metadata (like ourgeneraltable)ELECAUDITS? financial awardsELECAUDITFINDINGS? audit findingsELECPASSTHROUGH? passthrough awardsELECCPAS,ELECEINS,ELECUEIS? supplemental identifiers
Spreadsheet example
To calculate total expenditures for 1998:
- Unzip
census-1998.zip - Open
ELECAUDITS.csv - Sum the
AMOUNTcolumn
Python example
import pandas as pd
total = 0
for chunk in pd.read_csv("ELECAUDITS.csv", chunksize=10000):
amounts = pd.to_numeric(chunk["AMOUNT"], errors="coerce")
total += amounts.sum()
print(f"Total audited in 1998: ${total:,.2f}")