ok, can you wrap all these calculations into a function and use this?
http://lodash.com/docs#memoize
that way if you use the same argument twice, it won't do the calculations twice but return cached result