oregon-stories · from the oregon-budget corpus
1,812 times Oregon's budget bills named a recipient and an amount, line by line
When an Oregon budget bill says “$6,000,000 to the City of Eugene for water and sewer infrastructure improvements along Crow Road”, that is a line item: a named recipient and a stated amount, in the bill's own words. The corpus extracted 1,812 of them across 185 bills and 11 sessions (2017r1 through 2026r1) — from 148 items in 2017r1 to 453 in 2025r1. Machine-parsed amounts total $88.3B — a nominal sum across extraction statuses, shown separately below, because the export's own rule is that cross-status sums double-count. Every parse is machine work (human_reviewed: false on all 1,812 rows); the verbatim source line rides with each row.
Named line items per session
How big is a line item? Parsed amounts on a log scale (1,811 of 1,812 rows)
Per-status breakdown — the only frame in which sums are honest
| extraction status | items | machine-parsed amounts | what the status means |
|---|---|---|---|
| reconciled | 22 | $69,100,000 | parsed items sum to the bill's stated total |
| partly-reconciled | 13 | $1,900,000 | some, not all, items reconcile to a stated total |
| items-without-stated-total | 1,733 | $88,053,253,853 | the bill states no total to check against |
| MISMATCH | 44 | $186,747,854 | parsed items disagree with the stated total — the arithmetic check firing out loud instead of failing silently |
A sample of the largest — twelve biggest parsed amounts, purpose verbatim
| session | appropriated to | amount | purpose, verbatim from the bill | bill |
|---|---|---|---|---|
| 2023r1 | Oregon Health Authority | $4,005,387,706 | Health Systems Division - Programs | sb5525 |
| 2025r1 | Oregon Health Authority | $3,785,711,528 | Medicaid | hb5025 |
| 2021r1 | Oregon Health Authority | $2,671,494,755 | Health Systems, Health Policy and Analytics, and Public Health | hb5024 |
| 2025r1 | Department of Human Services | $2,486,190,022 | Intellectual/developmental disabilities programs | sb5526 |
| 2025r1 | Department of Human Services | $2,415,198,285 | Aging and people with disabilities programs | sb5526 |
| 2019r1 | Department of Human Services | $2,260,103,348 | Aging and people with disabilities and intellectual/developmental disabilities programs | hb5026 |
| 2017r1 | Oregon Health Authority | $1,978,057,903 | Programs | hb5026 |
| 2019r1 | Oregon Health Authority | $1,963,779,648 | Health Systems, Health Policy and Analytics, and Public Health | sb5525 |
| 2017r1 | Department of Human Services | $1,917,327,398 | Aging and people with disabilities and intellectual/developmental disabilities programs | sb5526 |
| 2023r1 | Department of Human Services | $1,811,688,005 | Intellectual/developmental disabilities programs | hb5026 |
| 2025r1 | Department of Corrections | $1,732,573,909 | Operations and health services | hb5004 |
| 2023r1 | Department of Human Services | $1,699,377,390 | Aging and people with disabilities programs | hb5026 |
Read this before quoting the chart
The export's own note, carried verbatim: GENERATED by src/build_story_exports.py — do not hand-edit. Every row of every bill's 'Line items' table, with its bill's extraction_status. NEVER SUM ACROSS STATUSES: line items and stated totals overlap differently per status, and a cross-status sum double-counts — segregate, or use one status class at a time. All parses are machine work with human_reviewed: false; the verbatim source line rides with every row so a reader can check the parse (MISMATCH rows exist because the check works).
What this page did and did not do. Counts per session are counts, never dollar aggregations. The $88.3B headline is the nominal sum of machine-parsed amounts across statuses, with the per-status count/sum breakdown in its own panel — quote those, not the headline. Recipient names live inside the free-text purpose field; this page deliberately does not extract entities from it (that would risk fabricating recipients), so the largest-items table shows the purpose verbatim and links each row to its source bill. 1 row(s) carry no machine-parsable amount and are absent from the distribution and the nominal sum. Session coverage reflects what the corpus has extracted, not necessarily every session the Legislature held.