# Data audit (P1) | file | sha256 | matches bundle | rows | cols | first | last | missing | dup dates | |---|---|---|---|---|---|---|---|---| | data/first_release.csv | 1d1ae8b3cacf7799… | True | 28 | 5 | 2024-06-01 | 2026-09-01 | 0 | 0 | | data/RSAFS_current.csv | 627d8bb386ac80f4… | True | 417 | 2 | 1992-01-01 | 2026-09-01 | 0 | 0 | | data/UMCSENT.csv | 3076277f9f21f4bd… | True | 887 | 2 | 1952-11-01 | 2026-09-01 | 210 | 0 | | data/vintages/PAYEMS_vintage_2025-10-31.csv | d4b4c909ed321fbf… | True | 1040 | 2 | 1939-01-01 | 2025-08-01 | 0 | 0 | | data/vintages/PAYEMS_vintage_2025-11-30.csv | a05ef7fc50cfc339… | True | 1041 | 2 | 1939-01-01 | 2025-09-01 | 0 | 0 | | data/vintages/PAYEMS_vintage_2025-12-31.csv | 829dae087af61916… | True | 1043 | 2 | 1939-01-01 | 2025-11-01 | 0 | 0 | | data/vintages/PAYEMS_vintage_2026-01-31.csv | 8fd01c5d2740e869… | True | 1044 | 2 | 1939-01-01 | 2025-12-01 | 0 | 0 | | data/vintages/PAYEMS_vintage_2026-02-28.csv | 4a913e67ac5ffbb4… | True | 1045 | 2 | 1939-01-01 | 2026-01-01 | 0 | 0 | | data/vintages/PAYEMS_vintage_2026-03-31.csv | 919de86b07be9046… | True | 1046 | 2 | 1939-01-01 | 2026-02-01 | 0 | 0 | | data/vintages/PAYEMS_vintage_2026-04-30.csv | 06a8d663d9aaa61c… | True | 1047 | 2 | 1939-01-01 | 2026-03-01 | 0 | 0 | | data/vintages/PAYEMS_vintage_2026-05-31.csv | e2a152e874139acd… | True | 1048 | 2 | 1939-01-01 | 2026-04-01 | 0 | 0 | | data/vintages/PAYEMS_vintage_2026-06-30.csv | 19fbc6cd3547ffad… | True | 1049 | 2 | 1939-01-01 | 2026-05-01 | 0 | 0 | | data/vintages/PAYEMS_vintage_2026-07-31.csv | 3a3a6603fcc31c6e… | True | 1050 | 2 | 1939-01-01 | 2026-06-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2025-10-31.csv | 3ecb0832a391e726… | True | 404 | 2 | 1992-01-01 | 2025-08-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2025-11-30.csv | 4a683d85374690f1… | True | 405 | 2 | 1992-01-01 | 2025-09-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2025-12-31.csv | 436df4b5509b1dfe… | True | 406 | 2 | 1992-01-01 | 2025-10-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2026-01-31.csv | b92ab6a5c1dbdc56… | True | 407 | 2 | 1992-01-01 | 2025-11-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2026-02-28.csv | 2af0a3aaeeba81ef… | True | 408 | 2 | 1992-01-01 | 2025-12-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2026-03-31.csv | 0316fdf238d55d9f… | True | 409 | 2 | 1992-01-01 | 2026-01-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2026-04-30.csv | 02dcc697a1db3475… | True | 411 | 2 | 1992-01-01 | 2026-03-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2026-05-31.csv | 8c3fe35302135896… | True | 412 | 2 | 1992-01-01 | 2026-04-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2026-06-30.csv | 2f103157f4a9b7a3… | True | 413 | 2 | 1992-01-01 | 2026-05-01 | 0 | 0 | | data/vintages/RSAFS_vintage_2026-07-31.csv | 52c04a8fce2effa7… | True | 414 | 2 | 1992-01-01 | 2026-06-01 | 0 | 0 | ## Schema and units - RSAFS vintages/current: `observation_date` (month start), level in millions of USD, SA. PAYEMS: thousands of persons, SA. UMCSENT: index 1966Q1=100. first_release.csv: target_month, first_release_vintage, two levels, yoy_first_release (percent, 100·log ratio). - All monthly series are gap-free (consecutive month starts); no duplicate dates; no missing values except UMCSENT (210 empty fields before 1978, quarterly survey period). ## Real-time design / anomalies - last(V): 2025-10-31→2025-08, 2025-11-30→2025-09, 2025-12-31→2025-10, 2026-01-31→2025-11, 2026-02-28→2025-12, 2026-03-31→2026-01, 2026-04-30→2026-03 (two months added), 2026-05-31→2026-04, 2026-06-30→2026-05, 2026-07-31→2026-06. Origins until 2026-03-31 are two months behind; from 2026-04-30 one month behind. - first_release.csv: 28 rows (2024-06..2026-09); only the 20 target months used (10 per horizon, overlapping); others unused (not an exclusion of analysed pairs). 2026-02 and 2026-03 both first released in the 2026-04-30 vintage; 2025-09 first released in 2025-11-30. - Level shift: first-release levels of 2026-08/09 (and their year-ago levels) are ~4% below those of 2026-07 vintages → annual/benchmark revision around Aug–Sep 2026. YoY within a vintage is largely unaffected. - Availability: RSAFS_current.csv contains post-origin revisions — used only for estimand (d). UMCSENT current file: final readings unrevised, so values ≤ origin month would be admissible; not used by the model. PAYEMS vintages admissible; not used. - Because target = last(V)+h and last(V) lags the origin, every h=1 target month (dated YYYY-MM-01) starts before the month-end origin date: it is a nowcast of a month not yet published in vintage V. All h=3 targets start after the origin date. This is a conflict with the gate's `origin_date < target_date` rule (see checks.md); the information rule itself (target not in vintage V) is respected.