What is Civic Ledger?

One of the Oregon Journalism Project's goals is to provide more transparency into how Oregon governments spend taxpayer dollars. It's a difficult task, because government budgeting is complicated and can be confusing. To help translate that complexity into useful information, we have created Civic Ledger, a data set that offers a look into government spending across the state.

We recruited public finance consultant Robert Winthrop to extract the most useful measure of government spending from audited financial reports. We've focused on more than a dozen jurisdictions including school districts, city governments and the state itself.

We used Claude AI to design and build this news application, but all the language on the website is from our journalists and the data has been fact-checked.

Watch this video to learn more about Civic Ledger:


Our Data:

For every fiscal year starting in 2016, we used Claude AI to extract the Total Primary Government expense line in the Annual Comprehensive Financial Report (ACFR) for each jurisdiction. The ACFR is a granular document published in a standard format by state, county, city, school district, and other government entities. We verified all the values and sources manually after extraction.

After consulting state and national municipal finance experts, we chose total primary expense as a yardstick for comparison because it is a single audited number that shows what a jurisdiction spent in a fiscal year. This is the only value consistently published by every level of government under the same accounting standard, making it comparable across jurisdictions.

The data helps us understand long-term spending trends and gives a point of entry into underlying financial statements. But this number doesn't show long-term liabilities, such as debt or pension obligations.

Users can select any jurisdiction to see how its spending changed over the past decade (both in percentage terms and in real dollars) and what it would have been if it had changed at the same pace as population and inflation. The “Compare” tab places different jurisdictions' spending side-by-side.

Over the coming weeks, reporters at OJP and our partners across the state will look into individual jurisdictions more closely to tell the story of what drove changes in revenue and spending.

JurisdictionTypeStateFirst YearLatestYearly Spending ChangeYearly Pop. Change
City of Albany, ORCityOR$104.1MFY 2016$133.2MFY 20243.1%1.0%
City of Ashland, ORCityOR$74.4MFY 2016$86.2MFY 20251.7%0%
City of Bend, ORCityOR$142.4MFY 2016$261.9MFY 20257.0%1.9%
City of Corvallis, ORCityOR$99.5MFY 2016$130.0MFY 20253.0%0.8%
City of McMinnville, ORCityOR$49.6MFY 2016$52.2MFY 20250.6%0.3%
City of Portland, ORCityOR$1.99BFY 2016$2.55BFY 20252.8%-0.1%
City of Redmond, ORCityOR$48.9MFY 2016$90.7MFY 20257.1%3.2%
Clatsop County, ORCountyOR$50.6MFY 2016$76.7MFY 20254.7%0.6%
Deschutes County, ORCountyOR$188.9MFY 2016$284.7MFY 20254.7%1.9%
Eugene School District 4JSchool DistrictOR$263.0MFY 2016$358.8MFY 20253.5%-0.9%
Jackson County, ORCountyOR$186.8MFY 2016$205.9MFY 20251.1%0.4%
Lane County, ORCountyOR$284.0MFY 2016$475.3MFY 20255.9%0.4%
Multnomah County, ORCountyOR$1.28BFY 2016$2.54BFY 20257.9%-0.1%
Springfield Public SchoolsSchool DistrictOR$145.4MFY 2016$183.7MFY 20252.6%-2.0%
State of OregonStateOR$26.77BFY 2016$49.98BFY 20257.2%0.5%
State of WashingtonStateWA$49.45BFY 2016$103.49BFY 20258.6%1.0%

The complete workbook — every jurisdiction, every year, with a clickable source link for each figure.