SPB Git

spb/wp29_uqo

Public

# Data audit (P1)

All SHA-256 below were computed and match data/README.md and bundle.json (first 16 hex shown; full hashes recomputed in analysis is unnecessary — checked here with hashlib).

file sha256 rows cols columns date range missing duplicate dates month gaps
data/RSAFS_current.csv 627d8bb386ac80f4… 417 2 ['observation_date', 'RSAFS'] 1992-01-01..2026-09-01 NA=0 dup=0 gaps=0
data/UMCSENT.csv 3076277f9f21f4bd… 887 2 ['observation_date', 'UMCSENT'] 1952-11-01..2026-09-01 NA=210 dup=0 gaps=0
data/first_release.csv 1d1ae8b3cacf7799… 28 5 ['target_month', 'first_release_vintage', 'level_first_release', 'level_prev_year_same_vintage', 'yoy_first_release'] 2024-06-01..2026-09-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2025-10-31.csv d4b4c909ed321fbf… 1040 2 ['observation_date', 'PAYEMS_20251031'] 1939-01-01..2025-08-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2025-11-30.csv a05ef7fc50cfc339… 1041 2 ['observation_date', 'PAYEMS_20251130'] 1939-01-01..2025-09-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2025-12-31.csv 829dae087af61916… 1043 2 ['observation_date', 'PAYEMS_20251231'] 1939-01-01..2025-11-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2026-01-31.csv 8fd01c5d2740e869… 1044 2 ['observation_date', 'PAYEMS_20260131'] 1939-01-01..2025-12-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2026-02-28.csv 4a913e67ac5ffbb4… 1045 2 ['observation_date', 'PAYEMS_20260228'] 1939-01-01..2026-01-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2026-03-31.csv 919de86b07be9046… 1046 2 ['observation_date', 'PAYEMS_20260331'] 1939-01-01..2026-02-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2026-04-30.csv 06a8d663d9aaa61c… 1047 2 ['observation_date', 'PAYEMS_20260430'] 1939-01-01..2026-03-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2026-05-31.csv e2a152e874139acd… 1048 2 ['observation_date', 'PAYEMS_20260531'] 1939-01-01..2026-04-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2026-06-30.csv 19fbc6cd3547ffad… 1049 2 ['observation_date', 'PAYEMS_20260630'] 1939-01-01..2026-05-01 NA=0 dup=0 gaps=0
data/vintages/PAYEMS_vintage_2026-07-31.csv 3a3a6603fcc31c6e… 1050 2 ['observation_date', 'PAYEMS_20260731'] 1939-01-01..2026-06-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2025-10-31.csv 3ecb0832a391e726… 404 2 ['observation_date', 'RSAFS_20251031'] 1992-01-01..2025-08-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2025-11-30.csv 4a683d85374690f1… 405 2 ['observation_date', 'RSAFS_20251130'] 1992-01-01..2025-09-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2025-12-31.csv 436df4b5509b1dfe… 406 2 ['observation_date', 'RSAFS_20251231'] 1992-01-01..2025-10-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2026-01-31.csv b92ab6a5c1dbdc56… 407 2 ['observation_date', 'RSAFS_20260131'] 1992-01-01..2025-11-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2026-02-28.csv 2af0a3aaeeba81ef… 408 2 ['observation_date', 'RSAFS_20260228'] 1992-01-01..2025-12-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2026-03-31.csv 0316fdf238d55d9f… 409 2 ['observation_date', 'RSAFS_20260331'] 1992-01-01..2026-01-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2026-04-30.csv 02dcc697a1db3475… 411 2 ['observation_date', 'RSAFS_20260430'] 1992-01-01..2026-03-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2026-05-31.csv 8c3fe35302135896… 412 2 ['observation_date', 'RSAFS_20260531'] 1992-01-01..2026-04-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2026-06-30.csv 2f103157f4a9b7a3… 413 2 ['observation_date', 'RSAFS_20260630'] 1992-01-01..2026-05-01 NA=0 dup=0 gaps=0
data/vintages/RSAFS_vintage_2026-07-31.csv 52c04a8fce2effa7… 414 2 ['observation_date', 'RSAFS_20260731'] 1992-01-01..2026-06-01 NA=0 dup=0 gaps=0

All 23 CSV SHA-256 hashes match data/README.md (23 OK, 0 mismatch; shasum check run in P1). Row counts match README.

# Units

RSAFS: millions of USD, SA. PAYEMS: thousands of persons, SA. UMCSENT: index 1966Q1=100. first_release.yoy_first_release: percent (100·log ratio).

# Real-time design: last(V) per origin (publication delays)

origin V last(V) RSAFS lag (months before V's month) h=1 target h=3 target PAYEMS last
2025-10-31 2025-08 2 (publication delay) 2025-09 2025-11 2025-08
2025-11-30 2025-09 2 2025-10 2025-12 2025-09
2025-12-31 2025-10 2 2025-11 2026-01 2025-11
2026-01-31 2025-11 2 2025-12 2026-02 2025-12
2026-02-28 2025-12 2 2026-01 2026-03 2026-01
2026-03-31 2026-01 2 2026-02 2026-04 2026-02
2026-04-30 2026-03 1 (caught up: two months added at once) 2026-04 2026-06 2026-03
2026-05-31 2026-04 1 2026-05 2026-07 2026-04
2026-06-30 2026-05 1 2026-06 2026-08 2026-05
2026-07-31 2026-06 1 2026-07 2026-09 2026-06
All 20 targets (2025-09 … 2026-09) exist in first_release.csv.

# Anomalies

  1. Irregular RSAFS publication timing (table above): last(V) lags V by 2 months for the first six origins, 1 month thereafter. Handled by defining targets relative to last(V) as TASK requires.
  2. first_release vintages: 2025-09 first appears only in the 2025-11-30 vintage; 2026-02 and 2026-03 both first appear in 2026-04-30 (so 2026-02's "first release" is its second Census estimate, not the advance). Handled: used as provided (task definition), documented.
  3. Large level revision: RSAFS levels in the current file are ≈4.7–4.9% below the 2026-07-31 vintage for 2025–2026 (ratio ≈1.0000 for 1992 and 2015). first_release rows for 2026-08/2026-09 use prev-year levels on the revised basis (e.g. 2025-08: 700218 vs 732010 earlier). Because YoY growth is computed within a single vintage, levels are never mixed across vintages; the revision only enters estimand (d).
  4. UMCSENT: 210 empty values, all before 1978 (quarterly survey era); none after 1978-01. UMCSENT is not used by my model (decision in log), so no handling needed.
  5. PAYEMS vintages were checked for gaps/missing only (none); PAYEMS is not used by my model, so its revisions were not analysed.
  6. No duplicate dates, no gaps, no missing values in RSAFS/PAYEMS vintages or first_release.

# Information-availability

RSAFS_current.csv violates the forecast-time availability rule by construction; it is read only in the revision block (estimand d). UMCSENT current vintage: allowed with months <= month(V); not used. No other violations.

Files · main
Menu

Theme