Tradovate Alert Never Fires (Last Size Condition)
You build an alert, the level trades through, and nothing fires. Here's why non-price conditions like Last Size don't behave like price alerts, and the exact steps to prove the alert pipeline works.
You build an alert, double-check the numbers, and then wait. The level trades through, the volume spikes, and nothing happens. No sound, no red dot on the bell, no flag under it. The alert just sits there like it was never armed. Nine times out of ten this isn't a broken platform or a missed setting. It's the type of condition you attached. Tradovate's alert engine is built around price, and a size or volume condition like “Last Size >= 50” doesn't behave like a price alert at all. Here's how to tell what you're actually dealing with, how to prove the alert mechanism works in about a minute, and what to do when a non-price condition genuinely won't fire.
Quick Checklist for an Alert That Never Fires
- Check the condition type first. Price alerts (touch, crosses above, crosses below) fire reliably. Size and volume conditions like Last Size are a different mechanism and may not trigger as configured.
- Confirm the alert is still active. Open the Alerts Manager and make sure it isn't paused, disabled, or already triggered and cleared.
- Make sure a notification method is on. An alert can fire silently if sound and popup are both switched off, which looks identical to “it never fired.”
- Verify the symbol has live data. An alert can only evaluate ticks it actually receives. A delayed or dead feed means late fires or no fires.
- Run a proof test with a plain price alert. Set a simple crosses-above/below on the same instrument near the current price to confirm the pipeline works end to end.
- Escalate with specifics if a non-price condition still won't fire. Send support the exact instrument, the full condition, and a screenshot, and ask whether that type is supported.
What “Last Size” Actually Means (and Why It Trips People Up)
Last Size is the number of contracts in the most recent executed trade. Not the price. Not the bid or ask. The quantity of the last print that crossed the tape. So a condition like “ES Last Size >= 50” is asking the platform to fire the instant a single trade of 50 or more contracts goes through. That's a legitimate thing to want to watch. Big prints often mark where size is stepping in, and catching them in real time is genuinely useful.
The problem is that this is a trade-size condition wearing the same clothes as a price condition. In the alert builder it looks like any other rule: pick a property, pick an operator, type a number. But price and size are evaluated very differently under the hood, and Tradovate's alert system is documented and designed around price. Simple alerts watch the price of an instrument, position, or account parameter reaching a value. Advanced alerts stack several of those price conditions together and fire when all or any of them are met. Size-per-print doesn't fit that model. So when you attach a Last Size rule and it never fires, you're not necessarily doing anything wrong. You may have built a condition the engine doesn't actually evaluate the way the form implies.
Top Reasons a Configured Alert Never Triggers
1. The condition is non-price (Last Size, volume, quantity)
This is the headline cause and the reason this page exists. Price alerts are the well-worn path: they touch or cross a level and they fire. Size and volume conditions live outside that documented behavior. If you built “Last Size >= 50,” “volume > X,” or anything watching trade quantity rather than price, assume it may not trigger until proven otherwise. The fastest tell is the proof test further down: if a plain price alert on the same symbol fires and your size alert doesn't, the condition type is the culprit, not the platform.
2. The alert is disabled, paused, or already spent
Alerts don't live forever on their own. A one-shot alert fires once and then goes quiet, so if it triggered while you weren't looking it won't fire again. Others get toggled off by accident. The Alerts Manager is where you confirm an alert's real state instead of assuming it's armed.
3. Every notification method is switched off
An alert can fire and you'd never know. If sound, popup, and any push option are all off, the trigger happens silently and looks exactly like a failure. Reopen the alert and make sure at least one delivery method is enabled so a fire is something you can actually see or hear.

4. The symbol has delayed or missing market data
An alert is only as live as the feed behind it. If the instrument is on a ten-minute delayed feed, or the data agreement isn't in place, quotes and prints arrive late or not at all. The alert can't evaluate a tick it never received, so it lags badly or stays silent. A quick sanity check: is the symbol showing real-time quotes that move? If it's stale, fix the data before you touch the alert.
5. The level or event never actually happened
The unglamorous possibility. A crosses-above set too far from price, or a size threshold no single print ever reached, will sit there forever behaving exactly as designed. Before assuming a bug, confirm the market actually did the thing you told the alert to watch for.
How to Fix a Tradovate Alert That Won't Fire: Step-by-Step
Prove the pipeline with a plain price alert
Don't debug the hard case first. Set a dead-simple price alert on the same instrument, a crosses-above or crosses-below just a few ticks from where price is trading right now, with sound and popup enabled. If that fires within seconds, your notification pipeline, data feed, and account are all fine, which isolates the problem to the original condition. If even the plain price alert doesn't fire, the issue is data or notifications, not the condition type.
Read back the exact condition you built
Reopen the failing alert and look hard at the property, the operator, and the value. Is the property a price field, or is it Last Size, volume, or another quantity field? Is the operator pointed the right direction (greater-than versus less-than)? Is the value reachable? Writing the condition out in plain English, “fire when a single ES trade prints 50+ contracts,” usually makes it obvious you've built a size rule, not a price rule.
Confirm it's active in the Alerts Manager
Open the Alerts Manager from the tools panel and find the alert. Check that it's listed as active rather than paused or already triggered. If it's a one-shot that already fired, recreate it. If it got toggled off, switch it back on. This is also where you delete stale alerts that clutter the list and make it hard to see what's really armed.

Turn on a notification you can't miss
In the alert's settings, enable sound and popup at minimum. When a Tradovate alert fires, the browser plays a sound, the bell icon shows a red dot, and any custom message appears in a small flag beneath the bell. If you've never seen that behavior, you either haven't had a real fire yet or the delivery methods were off. Make the next fire loud enough to notice.
Rebuild the intent as a price condition if you can
Often the thing you really care about can be expressed as price. If you were watching Last Size to catch aggressive buying at a level, a crosses-above alert at that level may get you 90% of the way there and it will actually fire. Not every size-based idea reduces to price, but many do, and a price alert that works beats a size alert that doesn't.
Escalate to support with specifics
If the condition genuinely needs to be Last Size or volume and it still won't fire after the proof test passes, stop guessing and open a ticket. Give support the exact instrument, the full condition (for example “ES Last Size >= 50”), a screenshot of the alert, and the key detail that a plain price alert on the same symbol fires fine. Ask them point-blank whether that condition type is supported and expected to trigger. That single question saves you hours of poking at a setting that was never going to work.

Troubleshooting Table
| Symptom | Likely cause | Fix |
|---|---|---|
| Price alerts fire, but Last Size / volume alert never does | Non-price condition outside the documented price model | Rebuild as a price condition, or escalate to support to confirm the type is supported |
| No alert fires at all, even a simple price one | Notifications off or symbol on delayed/missing data | Enable sound + popup; confirm the instrument shows live real-time quotes |
| Alert seemed to work once, then went quiet | One-shot alert already triggered and cleared | Recreate it (or set it to recur if you want repeated fires) |
| Alert missing from the workspace entirely | Disabled or deleted in the Alerts Manager | Reopen the Alerts Manager, re-enable or rebuild the alert |
| Alert fires late, well after the level traded | Delayed data feed on the symbol | Subscribe to real-time data and confirm the quote updates in real time |
| Need a dependable trigger on a size/volume event | Native size condition may not evaluate | Express the logic in a charting platform and fire a webhook to automate it |
A More Reliable Trigger with PickMyTrade
Here's the honest read: if what you're really after is an action when size or volume spikes, not just a chime, a native chart alert is the wrong tool for the job even when it works. You want the condition evaluated where that kind of logic is strong, and the resulting order routed straight to your account. That's the gap PickMyTrade fills.
- Build the condition where it belongs. A charting platform like TradingView can express size, volume, and multi-factor conditions in a script and fire a webhook the instant they hit, no dependence on a native alert type that may not evaluate.
- Route it straight to Tradovate. PickMyTrade takes that webhook and acts on your Tradovate account automatically, so the “alert” becomes an actual trade instead of a notification you still have to react to.
- Mirror across accounts. The same trigger can drive several evaluation or funded accounts at once, so you're not manually repeating an alert that's already unreliable on one screen.
- Rate-limit-safe routing. Order flow is spaced to stay inside Tradovate's limits, avoiding the retry storms that create separate lockouts.
You keep native price alerts for what they're good at, eyes-on levels, and hand the size-and-volume automation to a pipeline that's built to fire every time.
Turn Size & Volume Signals Into Trades
PickMyTrade routes TradingView size and volume webhooks straight into Tradovate orders, so a condition that never fires natively still triggers an execution.
Start Your Free 5-Day TrialFrequently Asked Questions
The most common reason is the condition itself. Tradovate alerts are built around price hitting or crossing a level. If you attached a non-price condition such as Last Size or trade volume, the alert may sit there and never evaluate the way you expect. Other causes are the alert being disabled in the Alerts Manager, notifications turned off, the symbol having no live data feed, or the target level simply never being reached.
Last Size refers to the number of contracts in the most recent executed trade, not a price level. A condition like “ES Last Size >= 50” is meant to fire when a single print of 50 or more contracts goes through. It's a trade-size or volume style condition, which is a different animal from a price-cross alert.
Tradovate's documented alert model centers on the price of an instrument, position, or account parameter reaching or crossing a value. Size and volume style conditions aren't part of that documented price model, so they may not trigger as configured. If you need one, test it against live data and, if it never fires, treat it as unsupported until support confirms otherwise.
Open the Alerts Manager from the tools panel and confirm the alert shows as active, not paused or already triggered. Then reopen the alert and make sure at least one delivery method is enabled, typically sound and popup. An alert with every notification switched off can fire silently and look broken.
Because they're not the same kind of alert. Price alerts watch a level you can see on the chart and fire the moment price touches or crosses it. A Last Size condition watches the quantity of individual trade prints, which the alert engine may not evaluate at all. Rebuild the alert as a price condition to confirm the mechanism works, then decide how to handle the size trigger.
Yes. An alert can only fire on data it actually receives. If the symbol is on a delayed or missing feed, price and size updates arrive late or not at all, so the alert lags or never triggers. Confirm the instrument shows live quotes before you blame the alert.
Escalate to Tradovate support with specifics: the exact instrument, the full condition you built (for example “ES Last Size >= 50”), a screenshot of the alert, and the fact that a plain price alert on the same symbol does fire. Ask directly whether that condition type is supported and expected to trigger. That's the fastest way to get a definitive answer instead of guessing.
Yes. Build the logic where the tools are strongest. A charting platform like TradingView can express size and volume conditions in a script and fire a webhook the instant they hit. Route that webhook through an automation bridge so it acts on your Tradovate account, and you get a dependable trigger instead of relying on a native condition that may not evaluate.
This guide is for educational and informational purposes only and is not financial, investment, or trading advice. Trading futures and other leveraged products carries a substantial risk of loss and is not suitable for every investor. PickMyTrade is an independent third-party automation platform and is not affiliated with, endorsed by, or sponsored by Tradovate, Inc. or Bookmap. All related names, logos, and trademarks are the property of their respective owners. Platform features and steps change over time, so always confirm the current process in the official platform documentation before acting.