Closing the old rate row and inserting the new one is two sheet writes. A nightly recompute that lands between those two writes sees two open versions for the same rep, both with empty effective_to, and first-match wins. Half-open ranges do not save you if two currents exist.