Only calculate when necessary during fetch