A mechanical daily bias framework

Where bias actually comes from
Bias is not a hunch about which way price wants to go. It's the read of a leg. Every session sits inside a higher-timeframe swing, and that swing has two sides: the side that already got taken, and the side still sitting out there untouched. Bias is the side that's untouched. Nothing more mystical than that.
I look at the higher-timeframe leg that's still in play and ask which side got swept. A sweep means price traded through a prior high or low and then rejected — the level got run, liquidity got taken, and the move reversed off it. Once one side is swept, the draw on liquidity sits on the other side. That's the bias. Long if the low got swept and rejected, short if the high did. I don't need a second opinion from momentum, from a moving average, from how the last four candles closed. The leg tells me the side. I write it down and I'm done with the decision for the day.
The frame: previous day high and low
Once I have a side, I need a frame to hold it in, and the previous day's high and low is that frame. It's not a magic level. It's a boundary that tells me whether the current session is expanding in the direction of my bias or just chopping inside yesterday's range.
If bias is long, I want to see the session respect the previous day's low as support on a pullback, or sweep it briefly and reclaim. A clean break and close below it with no reclaim tells me the frame is broken, not that my bias flipped — those are different things, and I'll get to why that distinction matters. If bias is short, the same logic runs in the other direction against the previous day's high. The frame doesn't create the bias. It gives me a fixed reference so I'm not eyeballing structure in real time and rationalizing whatever candle just printed.
Bias locks before the session
Here's the part most people skip: bias gets set before the session opens and it does not move once price starts trading. I do the read on the close of the prior session, or first thing before the New York open, using the higher-timeframe leg and the previous day's range. Then I stop touching it.
This is deliberate. Intraday price is noisy, and if I let each new candle re-litigate the day's bias I will flip long to short and back on wick reactions that mean nothing on the timeframe that actually set the leg. A locked bias forces me to view every intraday move through one lens for the whole session. If price is chopping against my bias, that's information about the window, not a signal to switch sides. Either the setup shows up inside that bias, or it doesn't show up at all.
Flat is a position
If the higher-timeframe leg is ambiguous — no clean sweep, no clear side left untouched — the bias is flat, and flat is a real position, not the absence of one. I treat a no-trade read with the same discipline as a long or short read. It gets set before the session, and it doesn't get overridden because the market is moving and I feel like I'm missing it.
This is where a wrong-but-fixed bias beats a right-but-wandering one. A bias I hold all session, even when it turns out wrong, gives me one clean lesson afterward: the leg read was off, fix the read. A bias I change three times during the session gives me nothing to learn from, because I was never actually testing one idea — I was reacting. Being wrong on a fixed premise is data. Being wrong on a moving premise is just noise dressed up as flexibility.
The whole point of setting bias mechanically is to remove it as a decision I make more than once a day. I make it early, I write it down, and I spend the rest of the session executing against it or standing aside. That's the only way flat stays disciplined instead of becoming an excuse to freelance.