The surprise is the signal
Surprise = actual minus forecast. That is the whole definition, and it is where most traders stop. But a 0.1 percentage point miss on CPI and a 0.1 miss on GDP are not comparable events — one is routine, the other is rare. You need the surprise in the context of how much that series normally misses.
Standardising: the z-score
Collect the last N surprises for a series. Compute their mean (should be near zero if forecasts are unbiased) and their standard deviation. Then:
z = (actual - forecast - mean_surprise) / stdev_surprise
A z of +2 means "this beat by twice its usual miss". That is a genuinely large surprise. A z of +0.3 is noise, no matter what the headline says.
Why this changes your trading
Two prints can have the identical headline surprise in percentage points and deserve completely different reactions, because one series is noisy and the other is precise. Jobless claims miss by 10k routinely; CPI does not miss by 0.4 routinely. Standardising is what lets you compare them.
Asymmetry is real
Markets do not always react symmetrically. In some regimes, bad inflation news moves markets far more than good inflation news, because only one of them changes the policy reaction function. Check the reaction to upside and downside surprises separately rather than assuming a symmetric response.
The honest caveat
Past surprise volatility is not future surprise volatility. Volatility clusters — a series that has been surprising wildly will usually keep doing so for a while, then settle. Use a rolling window and do not treat the z-score as a precise probability.
How to check this yourself
Take the last twelve CPI prints and write down the forecast and the actual for each. Subtract to get the surprise, then look at how widely those twelve surprises are spread. A surprise only means something relative to that spread — a 0.2 point miss is enormous in a quiet series and unremarkable in a volatile one.