How to Set Up a Stop-Loss Trigger in Your Sheet So You Stop Selling at the Worst Time
Most retail stop-loss attempts fail because they trigger on a single scary headline, not a fixed rule. The same 8 percent drop feels survivable the first time and catastrophic the third. The fix is a one-time setup in your spreadsheet that runs the same exit rules every time.
Most retail stop-loss attempts fail because they trigger on a single scary headline, not a fixed rule. The same 8 percent drop feels survivable the first time and catastrophic the third. Without a written rule, your decision changes with the news cycle, with how much you slept the night before, and with how badly the previous trade worked out. The fix is a one-time setup that runs the same exit rules every time, regardless of what the market looks like that morning.
The buy-dip trigger covers the bottom. The stop-loss trigger covers the top.
Yesterday we walked through a buy-the-dip trigger — the rule that fires when a name you already own drops a fixed percent from its 30-day high. That trigger handles the side of the market where most retail investors do the wrong thing: they panic-sell on the way down, then watch the name recover three weeks later and refuse to buy back. The buy-dip rule stops the panic by replacing it with math.
A stop-loss trigger handles the mirror image. It fires when a name you already own drops a fixed percent from your entry cost basis. The mistake it replaces is the opposite one: holding a thesis that has stopped working, averaging down into a falling knife, and watching a 10 percent loss turn into a 40 percent loss while you wait for it to come back. The two rules together close the loop. One tells you when to add on weakness. The other tells you when the original thesis is broken.
The trigger model
Every row in your sheet represents one open position. The trigger cell in that row tells you whether the position is at risk, on watch, or fine. The rule has to be a single formula that returns one of three states, because a rule that requires you to interpret anything is a rule you will not run consistently.
=IFS( IVS_BROKERAGE("price","AAPL") < IVS_BROKERAGE("costBasis","AAPL") * 0.92, "EXIT — stop-loss fired", IVS_BROKERAGE("price","AAPL") < IVS_BROKERAGE("costBasis","AAPL") * 0.95, "WATCH — within 5% of stop", TRUE, "OK" )Read it left to right. If the current price has fallen more than 8 percent below your cost basis, the cell prints EXIT — stop-loss fired. If the price has fallen more than 5 percent below your cost basis but not yet 8, the cell prints WATCH — within 5% of stop. Otherwise it prints OK. The trigger is binary. There is no judgment for you to apply on the day.
Four rules that make a stop-loss trigger work
Rule 1: anchor the stop to cost basis, not to a percentage off the peak. Cost basis is a number that does not move while you hold the position. A recent-high anchor drifts on the way down, so a name that has already fallen 30 percent off its peak is closer to its stop than a name that has only fallen 10 percent. The names that have already broken the most get stopped out at the worst possible moment, which is the moment they often bottom. Anchoring to your entry cost makes the rule self-contained.
Rule 2: pick one threshold and run it everywhere. Buy-dip rules use an asymmetric pair (5 percent and 10 percent) because you are adding on weakness and you want a soft hint before the hard trigger. Stop-loss rules are simpler. Pick one number, apply it to every position, and never change it without changing the whole rule. Eight percent works for most retail portfolios with 8 to 40 names. The risk you are managing is portfolio-level drawdown, not single-name volatility. An 8 percent stop on a position that is 4 percent of your portfolio is a 0.32 percent portfolio loss — small enough that selling the position on the trigger does not require courage.
Rule 3: sell a fixed share count, not a dollar amount. Buy-dip rules trigger on a fixed dollar amount because the goal is to add to a position without changing the average cost basis by more than a known amount. Stop-loss rules trigger on a fixed share count for the opposite reason. The goal is to leave the position entirely, not to scale into a smaller version of the same thesis. When the stop fires, you sell the full position size recorded in your sheet — the same number that =IVS_BROKERAGE("qty","AAPL") returns. You do not sell 50 percent and watch the rest fall another 20 percent. You sell the full count that your sheet already holds.
Rule 4: execute at the next session open, not in the panic. The hardest part of any stop-loss rule is the gap between seeing the trigger fire and pressing sell. The natural temptation is to wait for confirmation that the price has stabilized, which is the same as waiting for the bounce that makes the loss permanent. The rule closes that gap for you. When the cell flips to EXIT — stop-loss fired, the next action is to place a market-on-open order for the full share count at the next session open. Not at the current bid. Not after a bounce. At the next open. The slippage from a market-on-open order on a name that has just crossed its 8 percent threshold is small, usually under 0.4 percent of the position value.
What this changes
The first time the trigger fires, you feel the loss. You hold the position through your full share count and execute the market-on-open at 9:30. The spreadsheet logs the trade and the cost basis row is updated. The next time the trigger fires, you feel less. The third time, you feel almost nothing. You execute because the rule says to, and the math does the work that the emotion used to do.
That is the whole point. The trigger removes the second-largest source of retail investing error: holding a position past the point where the original thesis is broken. The buy-dip rule from yesterday removes the first-largest. Together they form a complete loop. Build the rule once. Run it forever. The spreadsheet stays out of the news cycle so you can.
InvestSheet syncs Fidelity, Schwab, Robinhood, Vanguard, and other major brokerages into a single Google Sheet with live formulas for value, price, and cost basis across every account. Set up the stop-loss trigger in 30 minutes today and let the spreadsheet run the exits.
Frequently asked questions
What is the difference between a stop-loss and a buy-the-dip trigger?
A buy-dip trigger fires when price falls below a reference level relative to a recent high, telling you to add to a position you already hold. A stop-loss trigger fires when price falls below a reference level relative to your entry cost, telling you to exit a position you already hold. The two rules share an anchor (30-day high for buy-dip, cost basis for stop-loss) but operate in opposite directions.
Should I use a fixed percentage stop or a trailing stop?
For retail portfolios that hold 8 to 40 individual names, a fixed 8 percent stop anchored to your entry cost basis is the more durable rule. Trailing stops look great in bull markets because they let winners run, but they get clipped in sideways markets and they reset every time you add to the position, which makes the rule feel arbitrary. The fixed-percentage rule fires on the same condition every time, which is the whole point of a spreadsheet trigger.
How often should I check the stop-loss trigger?
Once a week, on the same day, is enough. Checking daily makes the trigger feel reactive — you see a name hover at 7.9 percent down and you convince yourself it will recover, then it falls to 12 percent and you sell in panic. Weekly is the cadence where the math runs and the emotion stays out. InvestSheet refreshes brokerage prices every 4 hours, so a Friday morning check is the natural cadence for most retail portfolios.
See your full portfolio across every brokerage in one Google Sheet
InvestSheet syncs Fidelity, Schwab, Robinhood, Vanguard, and other brokerages into a single Google Sheet with live formulas for value, price, and cost basis across every account. The buy-dip trigger from yesterday and the stop-loss trigger from this post both run on the same row. Free 14-day trial with card upfront, no contract.
See pricing