Job Flows & Labor Dynamism (BDS)
Quarterly composite derived from Gross Job Gains and Gross Job Losses (Business Employment Dynamics). Produces level, YoY, balance ratio, a composite z‑score, EMA‑smoothed headline, 0–100 scaling, and regime classification.
Why: Rising gains relative to losses and positive net creation indicate firm dynamism and hiring appetite; the opposite signals deterioration.
Abstract
Using BDS series for private sector gross job gains and losses, we construct net job creation, a 4‑quarter moving average of dynamism, and YoY growth. A robust, history‑adaptive z‑score combines gains, net creation, and (negated) losses into a composite. We smooth the headline, scale to 0–100, and map regimes.
1. Data (BLS BDS Identifiers)
- BDS0000000000000000110001LQ5 — Gross Job Gains, Private, SA
- BDS0000000000000000110004LQ5 — Gross Job Losses, Private, SA
Inputs are quarterly levels. We preserve BLS revisions by deduplicating within (date, series_id) and retaining the latest observation.
2. Data Handling & Validation
- Types & dates: Coerce numeric values. Parse
date; if missing, build quarter‑end timestamps fromyearandperiod(e.g.,Q1) viaPeriodIndex(freq='Q-DEC'). - Pivot: Wide pivot by
series_id; no forcedasfreqto avoid sparse‑grid artifacts. - Intersection: Keep only quarters where both gains and losses exist (drop rows with NaN in either).
- Fail‑fast: raise if any required BDS series is absent post‑pivot.
3. Core Transforms
4. Standardisation (Robust z‑scores)
We compute robust rolling z‑scores (median/MAD) with an adaptive window (default target 12 quarters, min 4).
Losses enter negatively: Losses_z_neg = −z(Losses).
5. Composite, Smoothing & Regimes
Weights emphasise gains and net creation while penalising losses.
{
"Gains_z": 0.40,
"Net_z": 0.40,
"Losses_z_neg": 0.20
}
- 3‑period EMA for the headline.
- Min–max 0–100 scaling over observed history.
- Regimes on the unsmoothed composite z‑score: HOT > +0.75, COOL < −0.75.
6. Output Panel
[
# Levels & growth
"Gross_Job_Gains","Gross_Job_Losses","Net_Job_Creation","Labor_Dynamism_4Q_MA",
"Gross_Job_Gains_YoY","Gross_Job_Losses_YoY","Net_Job_Creation_YoY","Gains_to_Losses_Ratio",
# Standardisation & composite
"Gains_z","Losses_z_neg","Net_z",
"Job_Flows_Composite_z","Job_Flows_Composite_Smoothed","Job_Flows_Composite_0_100","Job_Flows_Regime"
]
7. Implementation Notes (Python)
# Expect: quarterly BDS series with columns date/series_id/value (or year/period fallback)
# Steps: parse/construct quarter-end dates; dedupe (keep last) to respect revisions; pivot; intersect quarters;
# compute net, YoY, 4Q MA; robust_z(); composite weighting; EMA smoothing; 0–100 scaling; regimes.
8. Interpretation & Use
A HOT reading signals broad firm‑level hiring dynamism and resilience of the expansion; COOL indicates waning churn and rising risk of slowdown. Use with payroll breadth and unemployment duration for a fuller labor cycle view.