Hmm, you yield progress = 2 everytime but it is not 2% of all calculations. If you really wanna use progress, you can estimate what percentage of total it is and set progress as 20 for example. At now, generating report is fast so, progress is needless, enough information for client is when report is finished. Think about it and we can discuss about it when you back.