refactor collapse operation to expect Date
add Operation::Value with Value.precision for setting data value precision