SPB Git

spb/wp29_uqo

Public

# Data audit (P1) — 2026-10-30

All SHA-256 values computed with shasum -a 256 match those in data/README.md exactly (24 CSV files). Row counts (data rows after header) also match README.

file rows×cols first last missing dup dates
RSAFS_vintage_2025-10-31 404×2 1992-01 2025-08 0 0
RSAFS_vintage_2025-11-30 405×2 1992-01 2025-09 0 0
RSAFS_vintage_2025-12-31 406×2 1992-01 2025-10 0 0
RSAFS_vintage_2026-01-31 407×2 1992-01 2025-11 0 0
RSAFS_vintage_2026-02-28 408×2 1992-01 2025-12 0 0
RSAFS_vintage_2026-03-31 409×2 1992-01 2026-01 0 0
RSAFS_vintage_2026-04-30 411×2 1992-01 2026-03 (adds 2 months) 0 0
RSAFS_vintage_2026-05-31 412×2 1992-01 2026-04 0 0
RSAFS_vintage_2026-06-30 413×2 1992-01 2026-05 0 0
RSAFS_vintage_2026-07-31 414×2 1992-01 2026-06 0 0
PAYEMS vintages (10) 1040…1050×2 1939-01 2025-08 … 2026-06; vintage 2025-12-31 ends 2025-11 (two months added at once) 0 0
UMCSENT.csv 887×2 1952-11 2026-09 210 (all before 1978-01, quarterly survey era); none after 0
RSAFS_current.csv 417×2 1992-01 2026-09 0 0
first_release.csv 28×5 2024-06 2026-09 0 0

Units: RSAFS millions USD SA; PAYEMS thousands SA; UMCSENT index 1966Q1=100. All monthly, no internal gaps in any series (checked against a full monthly date range).

# Anomalies / findings

  1. Irregular publication timing: last(V) is two calendar months before the origin month for the six origins 2025-10-31 … 2026-03-31 (last = 2025-08 … 2026-01; month-end vintages normally end one month before), and one month for 2026-04-30 … 2026-07-31; vintage 2026-04-30 adds 2026-02 and 2026-03 at once, so 2026-03 is never an h=1 target. Handled per task rule: targets are last(V)+h, not calendar-based. Consequence: some target months are shared between h=1 and h=3 (13 distinct target months).
  2. first_release.csv consistency: recomputed 100·ln(level/prev) matches yoy_first_release to < 5e-7 (rounding). For each origin, the last row of the vintage equals level_first_release and the 12-month-earlier level equals level_prev_year_same_vintage whenever the first-release vintage equals V (checked; all 10 match). For origin 2025-10-31 (last=2025-08) the first-release vintage of 2025-08 is 2025-09-30, but levels still match.
  3. Annual/benchmark revision of RSAFS levels: RSAFS_current levels are ~4% lower than the 2026-07-31 vintage for 2025 months, and level_prev_year_same_vintage jumps between the target months 2026-07 (727176) and 2026-08 (700218) — a level rebasing occurred between the 2026-08-31 and 2026-09-30 vintages. The YoY of current data is systematically lower than first release (~0.3–0.8 pp). This affects h=3 targets 2026-08 and 2026-09 (first-released after the rebasing) and estimand (d). Handled: no adjustment (the task defines the actual as first release); documented.
  4. PAYEMS may extend beyond last(V) of RSAFS (e.g. V=2025-12-31: PAYEMS ends 2025-11, RSAFS 2025-10). Not used by my model (see decisions).
  5. UMCSENT is a current vintage; per README and TASK it is unrevised and the origin-month value is available at month-end. Not used by my model.

# Availability-rule violations / handling

  • RSAFS_current.csv would violate the rule if used in forecasts → used only in the revision computation (estimand d), in a separate code block.
  • first_release.csv contains post-origin information → used only as evaluation actuals.
  • No other file violates the rules provided vintage V is used only at origin V (enforced in code by loading files by origin date).
Files · main
Menu

Theme