Market hours
When a stock page says "Prices 4 min old · market open, closes in 3h 12m", both halves of that sentence are established rather than assumed.
The schedule predicts
Regular trading runs 09:30 to 16:00 New York time, with pre-market from 04:00 and after-hours until 20:00. Daylight saving is not something we calculate — the browser's own time zone database handles it, on both sides, including the two weeks each year when Europe and the United States are out of step.
The feed confirms
A schedule alone gets holidays wrong, and half-days around Thanksgiving and Christmas, and any unscheduled closure. Keeping a holiday calendar is possible and is exactly the sort of list that is quietly wrong a year later.
So instead: one liquid reference instrument is checked for the time of its last trade. Seconds old means trading is happening. Hours old means it is not. If the schedule says open and nothing has traded for twenty minutes, it is a holiday — without us needing to know which one.
What this costs
Nothing outside the session. At three in the morning, at the weekend, and before the open the schedule is reliable on its own — a closed market is never secretly open — so no request is made at all. During the scheduled session the check runs on a shared, short-lived cache: about 127 requests on a trading day, against roughly 1,320 for a single sweep.
Where you see it
On the stock and watchlist pages, next to how old the prices are. Not on the dashboard, the daily sweep or the track record: those show sweep data, and whether the market happens to be open right now does not change what the sweep found this morning.