Methodology
This version is designed for volatile series that may include zero or negative values. It uses smoothed levels and historical standardization based on each signal’s recent behavior.
1) Smooth the raw level
We reduce short-term noise using a short exponential moving average:
s(t) = EMA(x, 3)
2) Direction
We estimate the slope of the smoothed series over the last 4 months and compare it with
the recent history of 4-month slopes.
s(t) ≈ a + b·t
Direction score = zscore( slope_4m )
3) Core pressure
We compare the recent average level with a broader structural average and standardize
the difference using the history of the same metric.
mean6 = mean(s, last 6 months)
mean18 = mean(s, last 18 months)
Core score = zscore(mean6 − mean18)
4) Regime shift
We compare the latest 2-month average with the previous 2-month average and standardize
it against its own recent history.
m2_now = mean(s, last 2 months)
m2_prev = mean(s, months t−3 to t−2)
Shift score = zscore(m2_now − m2_prev)
Scaling
Gauge limits are derived from the recent history of each metric, using roughly the last
48 months when available. This makes the framework more responsive while remaining
compatible with negative and zero values.