IMO, firstly we need to gather information about every skill individually and after that we should make "single-skill-calculators". Then add all these "single-skill-calculators" together, making a "max-calculator". Obviously the number of hours will be a few hundred hours off, but at last we will have something to work on to create an optimized calculator.