Can be easily coded (for example as an Excel sheet)
The only problem is, that you cannot do forecasts - as Difficulty, Bitcoin value in USD and the relation between these 2 values can change, will change and each of them can do this independently!
I would include "uptime" too, as a hobbyist won't have 100% stable electricity/hardware/software/cooling/internet.
Pay me some BitBucks and I might even write such a sheet for you.