"Valuation is slow. Daily-close cadence is the native clock."
The decision that removes the most code
Before choosing a database, a framework, or a frontend, this product chose a clock: daily close. Everything downstream follows from it, and what follows is mostly absence.
No WebSocket layer. No reconnection with backoff. No heartbeat. No client-side subscription lifecycle. No partial-update reconciliation when a message arrives out of order. No decision about what happens to a half-rendered chart when the connection drops mid-session. No per-second state anywhere in the system, which means no question about how long to retain it or how to aggregate it later.
Count that up honestly. Choosing a slow clock deleted more code than any library choice could have added. And it did it at the only point in a project's life where deleting is free — before the code exists.
Why the domain permits it
This is not asceticism. It is a claim about the subject matter, and the claim is checkable: the quantities this app reports do not move on a fast clock.
A cyclically adjusted price-to-earnings ratio averages ten years of real earnings — it is not a number that means something different at 10:31 than at 10:30. The Buffett gauge's numerator comes from a quarterly statistical release. Index-level book values update on filings. The macro series behind the yield gap publish daily at best, and two of the three long-term government yield series this product reads are monthly.
Serving those at per-second resolution would not be more accurate. It would be more frequent, which is a different thing, and in this domain frequency is the ingredient that manufactures urgency out of data that has none.
The lineage: low-trigger by inheritance
The cadence also arrives from the family. The portfolio sibling's deepest invariant is emotional rather than numeric — it is built to be checked calmly, and it deliberately avoids the design vocabulary that makes financial software feel like a slot machine: big red numbers, live tickers, motion, escalating color.
A valuation engine that updated every second would inherit that vocabulary whether or not it wanted to, because motion is a rhetorical device. A number that changes while you are looking at it says something is happening, pay attention, and it says it before you have read a single label. The slow clock is a design choice about how the tool feels to a human standing in front of it — which, for a family financial tool, is not a secondary consideration.