Finding out whether data for an object has changed

When I do a `HEAD` request against `{object_key}/records`, what is the meaning of the `ETag` header? I would have expected the ETag to change only when one or more of the object records has changed, but the ETag is different on every request so far. How do I tell whether I need to re-fetch locally cached data?