What actually moves a local housing price
A housing price is an outcome, not an input. It is the number at which one particular building, on one particular lot, found one particular buyer who was able to borrow or pay it on one particular week. Everything usually described as moving the market is really something that changes how many such meetings happen, and on whose terms.
Four forces do most of that work. The first is standing supply: how many homes are available at once, measured against how fast they are being absorbed. When a market holds two months of unsold supply, buyers make decisions in days and concede terms in order to be chosen. When it holds eight, sellers begin conceding instead, and they concede on repairs and timing long before they concede on the headline figure.
The second is the cost of borrowing, which matters far more than most listing conversation admits, because most purchases are financed. A change in prevailing rates does not change what a house is; it changes the monthly amount that a given payment will support, and therefore the price a given household can reach. This is why prices and rates can move in the same direction for a while and then sharply diverge, and why the number of transactions usually reacts to rates faster than the prices do.
The third is household formation: how many new households are being made in a place, by arrival, by separation, by people leaving a shared arrangement. Population change alone is a poor guide, because a thousand people arriving as three hundred households is a very different pressure from a thousand arriving as nine hundred. The fourth is friction, and it is the one people forget. Selling a home costs real money and several weeks of attention, so owners who might otherwise move simply do not, and the supply that theoretically exists never appears.