Why stock price alerts fail when your app is closed
·8 min read
Key takeaways
- An alert that is evaluated on your phone is a request, not a guarantee: iOS background refresh and Android Doze / app standby both decide when an app may run off screen, and neither reports the window it skipped.
- Server-side evaluation moves the price check to a machine that never sleeps; the phone's only job becomes receiving the result, so whether the app is open stops mattering.
- Push is the delivery, not the detection. An app advertising push notifications has told you nothing about what triggered the push.
- Uptime is table stakes; the judgment is in overnight gaps that jump a threshold without trading through it, thin pre-market prints that trip a level regular hours never approach, and repeated crossings that should fire once rather than a dozen times.
- Test any app in one evening: set a threshold it will plausibly cross within the hour, force-quit the app, leave the phone alone, then compare when the notification landed against when the stock actually crossed.
- Brokerage alerts are server-side too. The gap is coverage — stocks you do not hold, and filings like congressional disclosures and insider Form 4s that no price threshold can express.
- Server-side evaluation relocates the failure points rather than deleting them: our servers, our quote feed, Apple and Google's delivery, and your notification permission can each still break the chain, and an alert reports a crossing shortly after it happens rather than at the instant it happens.
You set an alert at $180. The stock traded through $180 at 10:47am. Your phone did nothing. You found out at lunch, scrolling, when the price was already $184 and the reason you cared had passed. The instinct is to blame yourself — wrong ticker, tapped save and it never saved. Sometimes that is what happened. More often the alert was set correctly, the app knew exactly what you wanted, and the notification still never came.
The reason is structural, and it comes down to one question. Which computer was supposed to check the price?
A phone cannot watch a price it is not allowed to check
If the price check runs on your phone, the alert is not a guarantee. It is a request.
iOS and Android are both built around the same principle: battery life is the thing users notice, and background work is the cost they do not. So the operating system decides when your apps may run while off screen. iOS hands out background refresh on its own schedule, favouring apps it predicts you are about to open and deprioritising ones you have not touched. Android does the same job under different names, Doze mode and app standby buckets. If your phone sat still on a desk all morning, or you swiped the app away from the recents list, or the battery dipped and power saving kicked in, the window where an app can wake up and fetch a quote can stay shut for hours.
None of that is a bug. It is the system working as designed. But it means an app that monitors prices locally has made you a promise the operating system reserves the right to cancel, silently, with no error and no log you will ever see. The alert did not fail loudly. It just never ran.
What server-side evaluation actually means for you
The fix is to move the checking somewhere that never sleeps.
With server-side evaluation, your alert lives on a machine in a data centre rather than in your pocket. That machine holds a current quote stream, compares it against every stored threshold, and keeps doing that whether your phone is charging, dead, in airplane mode, or in a drawer. When your condition is met, the server sends a push notification.
Here is the distinction worth keeping: push is the delivery, not the detection. Plenty of apps advertise push notifications, which is true and tells you nothing, because the real question is what triggered the push. If a background task on your device noticed the price and raised a local notification, you are back to asking the operating system for permission to work. If a server noticed the crossing on its own, your phone had exactly one job: receiving the message.
That is how Stock+ alerts work. Evaluation happens on the backend, the phone gets the result, and whether the app is open has no bearing on whether the check happened.
The hard part is firing once, at the right moment
A server solves the “did it run” problem. It does not solve the harder one, which is firing usefully. Uptime is table stakes. Judgment is the actual work.
- The overnight gap. You set $180 on a stock that closes at $176 and opens the next morning at $189. Your threshold was never traded through in any visible tick — it was jumped over. An implementation that waits to observe a price near $180 waits forever. The right behaviour is to treat the gap as a crossing and say so, because the thing you cared about happened.
- Which prices count. Pre-market and after-hours prints are real trades, but they are thin, and one odd fill at 4:31am can trip a threshold that regular-session trading never approaches. An alert that wakes you for a print that evaporates by the open has technically done its job and practically wasted your attention.
- Repeated crossings. A stock parked at $179.90, oscillating across $180 for two hours, will cross your line dozens of times. Fire on every one and you have trained the user to swipe your notifications away unread, which is the same as having no alerts at all. Fire once, hold until the condition genuinely resets, and the single notification carries weight.
None of these are infrastructure problems. They are decisions, and they are the difference between one honest alert and twelve useless ones. They also never appear in a feature list.
How to test your current app in one evening
Do not take anyone’s word for this, ours included. An hour is enough to find out what your app really does.
- 1
Pick a liquid stock with real volume and some daily range
A thinly traded name may not move enough during the session to cross anything, which tells you nothing about the app.
- 2
Set an alert on a threshold it will plausibly cross within the hour
Check the current price first. Half a percent above the last trade during an active session usually works.
- 3
Force-quit the app
Not backgrounded — fully swiped out of the app switcher, so no background refresh is keeping it warm.
- 4
Put the phone down and leave it
Do not open the app to peek. Opening it is the exact event that lets a local checker catch up and fire late, which looks like success.
- 5
Note when the notification lands, then check when the stock actually crossed
The gap between those two times is the whole answer. Run it twice — once intraday and once with an overnight threshold.
Three outcomes. It arrives within a minute or two of the real crossing, so the check was running somewhere awake. It arrives much later, or the instant you next open the app, so your phone was doing the checking and the notification is a catch-up. Or nothing arrives. Run the test twice and you will know more than any store listing will tell you.
Your broker probably already does this, and it still is not enough
Fair objection: brokerage alerts are server-side too. Schwab, Fidelity, IBKR and the rest run alerting on their own infrastructure, and on the narrow question of whether it fires with your phone closed, it generally does. If price alerts on your existing holdings are your whole need, your broker has you covered.
The gap is coverage, in two directions.
- Stocks you do not hold. Broker alerting is organised around your account, and watchlist tooling tends to be an afterthought bolted onto a platform whose real business is executing trades. Following twenty names you are researching is usually a worse experience than following three you own.
- Events no price threshold can express. A congressional trade disclosure is not a number. Neither is an insider Form 4 filing. These are filings, they land on their own schedule, and the only way to hear about one is for something to be reading filings on your behalf. Stock+ surfaces both in-app next to the price alerts, because “someone in Congress disclosed a purchase in a name on your watchlist” is worth knowing and impossible to write as a price trigger.
What server-side evaluation does not fix
Moving the check to a server relocates the failure points. It does not delete them.
Our alerts still depend on our servers staying up, our quote feed being current, Apple and Google delivering the push, and you having granted notification permission in the first place. Any one of those can break, and the first sign will be a notification that did not arrive. We are also not sitting on the exchange tick, so an alert reports a crossing shortly after it happens, not at the instant it happens. If your strategy needs sub-second reaction, you need a different tool and probably a different kind of account.
That is the honest version. Better odds, not certainty.
A reliable alert is still only information
One thing gets lost in all the engineering. An alert that always fires is a prompt to look. It is not an instruction to trade. Stock+ reports what happened — a price crossed a line you drew, a filing was disclosed — and stops there deliberately. It does not tell you whether to buy, and it is not built by people qualified to. The crossing at $180 is a fact. What it means depends on why you picked $180, and that reasoning is yours.
Which is why the threshold matters more than the plumbing. An alert you cannot act on will fire perfectly and cost you attention every time, so it is worth reading our separate guide on setting price alerts you will actually act on.
Start with the plumbing, though, because it is the part you can verify tonight. Before you trust an alert with a number that matters, find out where the price check runs. If the answer is your phone, the notification is optional.
Frequently asked questions
Do stock price alerts work when the app is closed?
It depends entirely on where the price is checked. If the app evaluates thresholds on your device, it can only do so while it is allowed to run in the background, and both iOS and Android suspend background work aggressively to protect battery — so a force-quit app, a phone left idle, or low power mode can all mean the check never runs. If the app evaluates thresholds on its own servers and sends the result as a push notification, the app being closed is irrelevant. StockPlus works the second way.
Why didn't my stock alert go off?
In rough order of likelihood: notification permission is off at the OS level, so the alert fired and the phone dropped it; the app checks prices on-device and the operating system never gave it a window to run; the threshold was crossed outside regular trading hours and the app does not count extended-hours prints; or the crossing was a gap between one session's close and the next session's open, which some implementations never register because no tick was ever printed at your level.
What does server-side alert evaluation mean?
It means the comparison between the live price and your threshold happens on a machine in a data centre rather than on your phone. That machine holds a current quote stream, checks every stored alert against it continuously, and sends a push notification when a condition is met. Your device does not need to be awake, online at the moment of the crossing, or running the app for the check itself to happen.
How can I test whether my stock alert app works in the background?
Pick a liquid stock during an active session, set an alert around half a percent from the last trade, then fully force-quit the app from the app switcher and leave the phone alone without opening it. Note when the notification arrives and compare it with when the stock actually crossed. Arriving within a minute or two means the check runs somewhere awake; arriving much later — or the instant you next open the app — means your phone was doing the checking. Run it once intraday and once with an overnight threshold.
Are broker price alerts good enough?
For price alerts on stocks you already hold, usually yes — Schwab, Fidelity, IBKR and similar platforms run alerting on their own infrastructure, so it fires with your phone closed. Two gaps remain. Broker alerting is organised around your account rather than a research watchlist, so following names you do not own tends to be second-class; and no price threshold can express an event like a congressional trade disclosure or an insider Form 4 filing, which arrive as filings on their own schedule.
Can a price alert be guaranteed to arrive?
No, and any app claiming otherwise is overselling. Server-side evaluation removes the largest failure mode — the operating system silently declining to run a background check — but the alert still depends on the server being up, the quote feed being current, Apple's or Google's push infrastructure delivering, and notification permission being granted on the device. It is better odds, not certainty, and an alert is a prompt to look rather than investment advice.
Keep reading
- How to read an SEC Form 4 filing
Almost all of a Form 4's meaning sits in one letter. Get it wrong and a routine tax withholding reads as an executive dumping stock. Here is every code, transcribed from the SEC's own form.
- When companies report earnings, and why the calendar looks the way it does
Why does nobody report a fourth quarter? Why do after-the-bell releases start at 4:05pm rather than 4:00? Both answers are in the rulebooks, and neither is a market convention.
- Shipping OneSignal push in a Kotlin Multiplatform app
The SDK calls are two lines. The two lines were never the work — here is what was, including a FIREBASE_FCM_INIT_ERROR that kept the build green and killed push on every Android device.
- The best congress stock trackers in 2026
Every list ranking for this term puts its own product first without saying so, and prints prices with no date. Nine trackers, a stated methodology, and four prices we could not verify — said out loud.
- The STOCK Act's 45-day rule, and how late congress actually files
Everyone quotes the rule as '45 days'. The statute sets a two-part test, and the difference decides whether a given filing was late at all.
- How to track congress stock trades (2026)
The filings are free and public, and almost nobody reads them — because the portals are miserable. Here is what is in a disclosure, what is missing, and the three ways to follow them.
- How to set stock price alerts that you will actually act on
Most alerts fail for one reason: they fire on noise. Here is how to pick the trigger type, the threshold, and the number of alerts you can actually live with.
- The best stock alert apps in 2026
Nearly every finance app claims alerts. The real differences are trigger types, free-tier limits, and whether alerts fire when the app is closed. Six apps, compared honestly.
Try it before you decide.
Free to start, no card required. One AI briefing each morning, a live watchlist, and alerts that actually matter.