← Pensel

The Baseline Moves Too: Why a 30-Day Average Can't Be Captured Once

The part everyone glosses over

Every percentage alert needs a baseline to measure from. That much is obvious, and it’s the easy part. The part almost nobody talks about is that the baseline itself is not a fixed thing - it’s a moving one.

“The 30-day average price” isn’t a number. It’s a formula that runs against a 30-day window that keeps sliding forward. The 30-day average in January and the 30-day average in September aren’t two readings of the same value - they’re answers to two different questions, because the 30 days behind each of them are entirely different stretches of the market.

Most tools that offer “percentage from average” alerts skip over this. They compute the average once, at the moment you set up the alert, and quietly treat it as a fixed number from then on - a price target wearing a percentage costume.

The frozen-snapshot trap

Here’s what that looks like in practice. Say you set a rule on January 20th: notify me when this stock moves 5% from its 30-day average. A normal tool captures that average once - call it 30k - and keeps it forever. Roll forward to September, and you check the alert. It’s still watching for a 5% move away from 30k. Nine months of trading have happened since then. The stock’s actual 30-day average today might be nowhere near 30k. But your “dynamic” alert never noticed, because it stopped being dynamic the moment it was created - it just quietly turned into a fixed price target and never told you.

By September, that alert isn’t measuring what you asked for anymore. It’s not the intent anymore. You wanted “tell me when this moves 5% from its recent average” - a rule that stays honest about what “recent” means. What you actually got was “tell me when this moves 5% from wherever the average happened to sit back in January,” which is a completely different, and far less useful, question.

What “the baseline moves” actually means

On Pensel, a baseline isn’t a value you get handed once - it’s a live definition that gets re-evaluated every time your watcher checks the market. “30-day average” always means this stock’s average over the last 30 days as of right now, recalculated fresh, every time. In January that resolves to one number. In September it resolves to another. Neither is more correct than the other - they’re both correct, for the window they describe. Your rule never has to be re-created to keep meaning what you originally meant.

Frozen-snapshot baselinePensel’s live baseline
When it’s calculatedOnce, at setup (Jan 20)Continuously, on every check
What “30-day average” means in JanuaryThe true 30-day average: 30kThe true 30-day average: 30k
What “30-day average” means by SeptemberStill 30kThis month’s actual average
Does the rule still match your original intent?No - quietly became a fixed priceYes, by design
What you have to do to keep it accurateManually re-create the alertNothing

Why this is the point, not an edge case

A baseline that doesn’t move isn’t really a baseline - it’s a price target that took an extra step to arrive at. The entire value of measuring “from the 30-day average” instead of “from 30k” is that the reference point is supposed to track the stock’s own recent behavior. If you freeze it, you’ve thrown away the one property that made it worth using in the first place - and you won’t find out until months later, when the number it’s still comparing against has quietly stopped making sense.

This is also why layering conditions on Pensel stays meaningful over time. A watcher combining up 5% vs the 30-day average and above the opening price doesn’t drift out of relevance as the stock trends - both sides of that rule are re-measured against where the market actually is today, not where it was when you clicked “create.”

Where to go next

Set a watcher with a baseline that stays alive

Try Pensel free