The main performance hits occur when times are modified as it takes a bit for all the time entries of an employee that clock in/out a lot (smokers) to get populated. Also the printing is not as smooth as I would like. The only method I could come up with to tell when a person actually printed something was to Pause the print spooler, check for the existence of the print job and then restart. Otherwise there was no way of telling if someone went to print and then just hit cancel. Only wanted to update YTD and stuff if it was indeed printed.