Column API 1.2: Annual Comprehensive Financial Reports

By Leo Hentschker  •  CTO  •  February 17, 2023

At Column, we’re on a mission to make public information systems more valuable. We’ve built the first publicly accessible APIs to access public notice data, alongside a recent announcement of adding healthcare pricing transparency data. Today, we’re opening up access to a new dataset: net position statements in county budgets.

For many reasons, sharing budget data is a natural next step for us here at Column. For the past three years, we’ve been working on processing public notices. And, due to their size and format, notices in the newspaper about a municipality’s budget are consistently one of the most difficult formats for us to handle in our editor. We’ve worked for a long time to make this data easier to parse and ingest.

Now, through Column’s API, anyone can access key county budget data in a machine-readable format.

What is an Annual Comprehensive Financial Report (ACFR)?

Tens of thousands of local governments prepare audited financial statements each year.

Generally, they look something like this.

ACFRs are PDFs with hundreds of pages. They detail everything from outstanding bonds, construction projects, and projected taxation rates. And buried deep within these PDFs, you can find tables that look like the following:

These net position statements detail some of the most important details on the financial health of a municipality. Net position statements tell you about pension liabilities, debt load, investments, and more. This information can be used to determine the government’s overall financial strength and stability and are a key factor in the interest rates they will pay when issuing debt.

Given the fact that most ACFRs are hundreds of pages and in PDF format, they are nearly impossible to analyze programmatically. Most importantly, it is nearly impossible to compare information across municipalities. As Marc Joffe, a senior policy analyst at the Reason Foundation, noted:

“While many governments across the world post revenues, expenditures and other financial statistics, it remains difficult to make comparisons between them, and especially between subnational governments — the ability to perform “apples-to-apples” comparisons between cities, states and provinces to track relative performance. The key to enabling this kind of analysis is the publication of “machine readable” financial reports, which can be readily analysed by computer software.”

What We’ve Done

We’ve compiled over 1000 ACFRs from counties in all 50 states, extracted the net position statements, converted the tables to CSV format, and added them to our API. If you have an API key, you can query all ACFRs by state. For example, here is a preview of what the API returns when pulling information for Minnesota.

For documentation on how to pull this information yourself, check out our documentation here.

How We Did It

We’re able to convert net position statements to machine-readable at scale by leveraging Column’s Entity Extraction API. Column’s API can automatically convert tables in PDF to CSVs.

Once you’ve signed up for our API, all you need to do is run the following code:

If you want to learn more about how you can use Column’s Entity Extraction algorithms in your own organization, reach out to us at [email protected] and sign up for our newsletter below!

Join the Column API Newsletter

Every other week, following each engineering sprint on the Column API, you can expect this hear from us about important updates to our API functionality and get early access to new data sets we've released.