Thanks for the feedback! I think I agree with you on applying the filters on the monitors. For the lag in price updating - there is definitely a formula to keep price scaling consistent - I was using an auto load to store all of the variables regarding upgrades- to which I regret now and wish I would have just stored them locally as you can easily suffer collisions when multiple processes are trying to access a (single) singleton (auto load) at once - it's once of the biggest downsides of the that OOP pattern.
Thanks for playing!