Nowcast

Oregon

Who Is Oregon Losing?

Before 2020, Oregon gained movers in every income and education group. In 2022–24 it lost more people to other states than it gained. On net, the clearest loss is children, not the poorest.

From 2016 to 2019, Oregon had the fifth-highest rate of net domestic in-migration of any state: about 8.5 movers per 1,000 residents a year (Census Bureau estimates, Vintage 2020). Census estimates now put Oregon close to flat. In 2022–24 it lost about 1.4 net domestic movers per 1,000 residents a year (Vintage 2025), and early estimates for 2025 show a slight gain (+0.5). Tax records show a similar loss: about 1.7 per 1,000 a year for 2020–23. The Census Bureau's American Community Survey, which we use below to see who moves, shows a larger loss for 2022–24, about 2.5 per 1,000 a year. But that is a sample estimate with a wide margin, roughly 0.2 to 4.9, and most of it comes from the 2022 survey alone. Either way, the turn is sharp: no state's rate fell further from the late 2010s.

Bar chart of Oregon's net interstate movers per 1,000 residents a year, 2016–19 versus 2022–24, with error bars of two standard errors. Everyone: +7.1 then −2.5. Kids under 18: +0.3 (not significant) then −1.8. Employed 18–64: +4.0 then −1.3 (not significant). People in high-income households: +2.5 then −1.1 (not significant). People in low-income households: +1.9 then −0.3 (not significant). College grads 25+: +2.8 then −0.2 (not significant). Age 65+: +0.7 then +0.3 (not significant).
Net interstate movers per 1,000 Oregon residents a year. Faded bars are 2016–19, solid bars 2022–24. Error bars are ±2 standard errors. Groups overlap and don't sum.

Before 2020: gains across income and education

In 2016–19, Oregon gained people in high-income and low-income households, college graduates, and working adults with jobs. Each of those gains was clearly above zero. Children were about even.

Since 2020: the clearest loss is children

In 2022–24, children under 18 are the clearest net loss: −1.8 per 1,000 residents a year, nearly four standard errors from zero. Most of that loss falls in the 2022 survey year. It is smaller in 2023 and not significant in 2024. Adults 65 and older were about even (+0.3, not significant).

The other groups lean negative, but none is clearly different from zero:

Tax records point the same way. In 2020–23, tax returns leaving Oregon listed slightly more people than returns arriving: 1.67 against 1.57. That fits more children among leavers. (The IRS changed how it counts people on a return in 2018, so we don't compare this with earlier years.)

Per return, leavers reported more income: about $83,300 in adjusted gross income against $78,000 for arrivals. Per person, incomes were about the same, close to $50,000 on both sides, because leavers' returns covered more people. Tax records miss people who don't file, and income is counted after the move.

Who it's not

We see no net loss of low-income residents. About 15% of movers in each direction are below the poverty line (15.4% in, 15.1% out), and the gap isn't significant. Migration isn't measurably changing Oregon's poverty rate.

What lines up with it

Oregon ranks 37th on our cost rank, which is built from prices and taxes. It is tied for 43rd on affordability, and 41st on the share of households paying 30% or more of income on housing. Since 2020, cost has tracked moves between states more closely than our Schools or Safety ranks. That is a correlation. It doesn't tell us why any family left.

Portland's high-earner tax is often blamed. One study of Multnomah County's Preschool for All tax found more high-income households moving out after it began. Most of them went to neighboring counties. The authors call their estimate an upper bound, partly because the tax arrived alongside the pandemic and other changes (Conway, Iselin & Rork, 2026). An analysis from a Portland city councilor's office disputes the finding. Treat the tax evidence as contested.

For how long Oregon's ranks may take to climb back, see How long will it take Oregon to recover?

--h

Method.