Midnight depends on where you stand
A subscription renews at midnight. Which midnight? The user, the business, the database, the server, or UTC? If nobody answers, production will.
The useful signal is usually already there.
Systems stories get more interesting when you can feel the pressure move through the stack.
Store instants and intent
Use UTC for instants, but keep the user timezone or business timezone when the rule depends on local time.
The instant and the human rule are both part of the data.
Test the ugly calendar days
Daylight saving changes, leap years, month ends, and travel can all break code that only tested a sunny Tuesday.
Flip the switches and watch the story turn into a tiny operating model.
Time is a domain model
Treat time rules like product rules, because users experience them that way.