I would use a reporting table with records at the level you want to report, whether for sales people, clients, or whatever, and use stored numeric values (indexed numbers) as the field type.
Then I would have a script set the fields via calculated Set Fields in each record. It may take some time to run the script, looping through the reporting records, but the values will be current as of the last time it was run, and the time-stamped report won't be dependant on new calcs if you refer back to it for the most recent values.
I've used reports like this, set to run at the Server schedule to do daily updates/reports of activity, or to update info on clients overnight. It also allows remote users to view the most recently-run report when they need access, without having calcs trying to update over a WAN.