Not MVP
Its pretty slow. I dont think it can be much faster.
To make the speed more bearable, I think it needs to tell the user what stage it is up to.
e.g.
Gathering data
Generating summary
technically, I think you would have to do some signalR magic to update the client with what stage its at
We could text stream the summary results