1# Verification checks (P4)23| # | check | outcome |4|---|---|---|5| 1 | Clean re-run: delete out/results.json, re-run analysis.py, byte-compare with previous copy | PASS (identical; sha256 12ac2088...a7d8) |6| 2 | Input hashes unchanged and equal to README/bundle.json values | PASS |7| 3 | National unemployment rate printed consistently: L17 (Highlights) "increased 0.1 percentage points to 6.5%" and L43 (Unemployment rate increases to 6.5%) "rose 0.1 percentage points to 6.5%"; also heading text says 6.5% | PASS (single value 6.5; script asserts uniqueness) |8| 4 | Employment change printed consistently: L17 and L24 both "declined by 68,000 (-0.3%)"; sign negative because "declined" | PASS (-68000) |9| 5 | Agreement with P2 baseline (manual grep of the same lines) | PASS (6.5, -68000, men "fell 0.2 ... to 5.8%") |10| 6 | Locators name an actual `## ` heading containing the line (L16 for L17; L73 for L74-75) | PASS |11| 7 | Regex false-positive screen: provincial/youth/55+ rate sentences ("The unemployment rate in Quebec was...", "youth unemployment rate was little changed at 13.0%", "aged 55 and older rose 0.2 ... to 5.3%") not matched | PASS (only L17, L43 matched for rate; L17, L24 for employment) |12| 8 | Assertion: 5 of 6 elements stated, men's direction contradicted ("fell" vs asserted "rose") -> not_supported per task definition | PASS |13| 9 | Magnitude sanity: -68,000 vs -0.3% implies employment level ~22.7 million, plausible for Canada; 6.5% within the year's printed range 6.4-6.9% | PASS |14| 10 | n_input_rows equal to `wc -l` (9, 164) | PASS |15| 11 | exclusions.csv: 164 - 0 = 164 | PASS |16| 12 | No randomness; random_seed null | PASS |17