No macro environment (like interest rate etc.) except for the crash-recovery mechanism. There I use the actual S&P500 difference to it’s last high. The definition changes to “Bear Market” when it is at 80% or less, which may trigger some additional rules which I will describe later.
And yes, you could program a robot to do it. But as I don’t work anymore (since 11 years when I started with this project) I have time and it is only a few minutes every quarter for every position. February tends to be the busiest month.
I could automate it easily, as I use a google sheet where I put in the data from Edgar and then it tells me if the criteria are still OK or not. But finance stocks are tricky, as their trading good is money you have to check the cashflow and decide what to include into the FCF and what not. So I prefer actually doing this by hand. Takeovers are a problem too, there the numbers have to be corrected.