weighted average
handle fields that need inverting