Labour Market Momentum

Composite signal tracking labour market strength via jobless claims and payroll momentum.

Abstract

The Labour Market Momentum signal measures shifts in employment strength by combining jobless claims trends with nonfarm payroll growth. Weekly claims are inverted (higher claims = weaker momentum), while payroll growth is directly positive. The composite reveals cycles of Tightening, Neutral, and Softening labour dynamics.

1. Data Sources (Expanded)

This composite uses high-frequency unemployment insurance (UI) claims as a near-real-time labour stress gauge, and the establishment survey payroll series as the canonical measure of payroll employment growth. All series are obtained from FRED for consistent access and metadata; the original producers are the U.S. Department of Labor (Employment and Training Administration) and the U.S. Bureau of Labor Statistics (BLS).

ICSA — Initial Claims, Seasonally Adjusted (FRED: ICSA)

CCSA — Continuing Claims, Seasonally Adjusted (FRED: CCSA)

PAYEMS — Total Nonfarm Payrolls, Seasonally Adjusted (FRED: PAYEMS)

Alignment choice
ICSA and CCSA are resampled to monthly frequency to align with PAYEMS. This reduces high-frequency noise and makes the composite comparable across components, but it also means the signal inherits the slower update cadence of the monthly payroll series.

2. Transformations

  1. Compute year‑on‑year (YoY) percent change for all three series.
  2. For PAYEMS, also compute the 3‑month difference to capture short‑term hiring momentum:
PAYEMS\_{3mDiff,t} = PAYEMS_t − PAYEMS_{t−3}

This highlights inflection points in employment growth.

3. Normalisation

z\_{rob}(X)_t = \dfrac{X_t − \mathrm{median}(X)_{t,w}}{1.4826·\mathrm{MAD}(X)_{t,w}}
Rolling window w = 36 months, minimum 18. Median‑based z‑scaling mitigates noise from data revisions.

4. Composite Construction

Jobless claims are inverted (rising claims = negative signal) before combining with payroll momentum:

Labor\_{Momentum,t} = \tfrac{1}{3}\big(z(-ICSA\_{YoY,t}) + z(-CCSA\_{YoY,t}) + z(PAYEMS\_{3mDiff,t})\big)

5. Regime Mapping

If\ C_t > 0.75 → \textit{Tightening};\quad |C_t| ≤ 0.75 → \textit{Neutral};\quad C_t < −0.75 → \textit{Softening}

6. Implementation (Python)

import pandas as pd
import numpy as np

def robust_z(s, win=36, min_win=18):
    x = pd.to_numeric(s, errors="coerce").astype(float)
    w = max(min_win, min(win, x.dropna().size))
    med = x.rolling(w, min_periods=min_win).median()
    mad = (x - med).abs().rolling(w, min_periods=min_win).median()
    return (x - med) / (1.4826 * mad.replace(0, np.nan))

d = df_labor.copy()

for col in ["ICSA","CCSA","PAYEMS"]:
    d[f"{col}_YoY"] = d[col].pct_change(12)

d["PAYEMS_3mDiff"] = d["PAYEMS"].diff(3)

d["Z_ICSA"]  = robust_z(-d["ICSA_YoY"])
d["Z_CCSA"]  = robust_z(-d["CCSA_YoY"])
d["Z_PAYEMS"] = robust_z(d["PAYEMS_3mDiff"])

d["Labor_Momentum"] = d[["Z_ICSA","Z_CCSA","Z_PAYEMS"]].mean(axis=1)

hi, lo = 0.75, -0.75

def _regime(v):
    if pd.isna(v): return np.nan
    return "Tightening" if v > hi else ("Softening" if v < lo else "Neutral")

d["Labor_Regime"] = d["Labor_Momentum"].apply(_regime)

df_sig_labor = d
display(df_sig_labor.tail())

7. Interpretation

The composite (Labor_Momentum) is an average of three robust z-scores. Positive values indicate labour strengthening (claims falling and/or payroll momentum rising); negative values indicate labour softening.

Regime meaning (as implemented)
  • Tightening (Ct > 0.75): Broad labour improvement — layoffs easing (claims down) and hiring momentum firming (payroll 3mDiff up).
  • Neutral (|Ct| ≤ 0.75): Mixed or near-trend labour conditions — the system is not confidently signalling a regime.
  • Softening (Ct < −0.75): Broad labour deterioration — layoffs rising (claims up) and hiring momentum fading.

Reading the drivers

Practical caution
The payroll component can be materially revised (monthly revisions and annual benchmarks). When the composite is near thresholds (±0.75), treat a single-month flip as lower confidence and prefer sustained confirmation across multiple releases.

8. Model Interpretation (with Academic Context)

This signal is designed for state and momentum inference rather than point forecasting. It combines: (i) weekly UI claims (fast, noisy, layoff-sensitive) and (ii) payroll hiring momentum (slower, benchmarked, broader labour demand). Interpreting the output is best done by decomposing the composite into component contributions and by accounting for known data imperfections.

What the composite is (and is not)

How to interpret regimes

Why robust z-scores

Claims and payroll momentum can contain outliers (pandemic-period spikes, strikes, administrative distortions) and are revised. Median/MAD scaling reduces sensitivity to extreme points compared with mean/standard-deviation scaling, improving stability for regime mapping. The constant 1.4826 rescales MAD to be comparable to the standard deviation under Gaussian assumptions.

Data caveats that matter for interpretation

Recommended reading
  • NY Fed Quarterly Review (1983): evidence that initial claims can lead the unemployment rate at cyclical turning points.
  • Choi & Varian (2009): discusses initial claims as a strong leading indicator and approaches to forecasting claims.
  • BLS CES Benchmark Article (annual): explains the benchmark revision process and typical magnitude of revisions.
  • Phillips (2012): examines properties and potential biases in payroll benchmark revisions.
  • Rousseeuw & Croux (1993): robust scale estimation context related to MAD-style approaches.

9. Limitations