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.
| Jurisdiction ▲ | Type | State | First Year | Latest | Yearly Spending Change | Yearly Pop. Change |
|---|---|---|---|---|---|---|
| City of Albany, OR | City | OR | $104.1MFY 2016 | $133.2MFY 2024 | 3.1% | 1.0% |
| City of Ashland, OR | City | OR | $74.4MFY 2016 | $86.2MFY 2025 | 1.7% | 0% |
| City of Bend, OR | City | OR | $142.4MFY 2016 | $261.9MFY 2025 | 7.0% | 1.9% |
| City of Corvallis, OR | City | OR | $99.5MFY 2016 | $130.0MFY 2025 | 3.0% | 0.8% |
| City of McMinnville, OR | City | OR | $49.6MFY 2016 | $52.2MFY 2025 | 0.6% | 0.3% |
| City of Portland, OR | City | OR | $1.99BFY 2016 | $2.55BFY 2025 | 2.8% | -0.1% |
| City of Redmond, OR | City | OR | $48.9MFY 2016 | $90.7MFY 2025 | 7.1% | 3.2% |
| Clatsop County, OR | County | OR | $50.6MFY 2016 | $76.7MFY 2025 | 4.7% | 0.6% |
| Deschutes County, OR | County | OR | $188.9MFY 2016 | $284.7MFY 2025 | 4.7% | 1.9% |
| Eugene School District 4J | School District | OR | $263.0MFY 2016 | $358.8MFY 2025 | 3.5% | -0.9% |
| Jackson County, OR | County | OR | $186.8MFY 2016 | $205.9MFY 2025 | 1.1% | 0.4% |
| Lane County, OR | County | OR | $284.0MFY 2016 | $475.3MFY 2025 | 5.9% | 0.4% |
| Multnomah County, OR | County | OR | $1.28BFY 2016 | $2.54BFY 2025 | 7.9% | -0.1% |
| Springfield Public Schools | School District | OR | $145.4MFY 2016 | $183.7MFY 2025 | 2.6% | -2.0% |
| State of Oregon | State | OR | $26.77BFY 2016 | $49.98BFY 2025 | 7.2% | 0.5% |
| State of Washington | State | WA | $49.45BFY 2016 | $103.49BFY 2025 | 8.6% | 1.0% |
The complete workbook — every jurisdiction, every year, with a clickable source link for each figure.