Why don't you make a method on response set to recalculate its attained level?
i.e. response_set.recache_attained_level