# Validation report — run 20260624T115842Z

Generated: 2026-06-24T11:58:46.841864+00:00  ·  strictness: **strict**

**Overall: PASS**  ·  PASS=64  FAIL=0  WARN=0

## Failures

_(none)_

## Warnings

_(none)_

## Detailed checks

| check | status | detail |
|---|---|---|
| S1_row_count | PASS | raw=454, cleaned=454 |
| S2_row_id_integrity | PASS | unique integer 1..454 |
| S3_column_traceability | PASS | all cleaned columns traceable |
| N1_numeric_col_01 | PASS | exact match |
| N2_coerce_q01 | PASS | parsed=451, unparseable→999=3, outliers_flagged=1 |
| N1_numeric_col_31 | PASS | exact match |
| N1_numeric_col_32 | PASS | exact match |
| N1_numeric_col_33 | PASS | exact match |
| N1_numeric_col_34 | PASS | exact match |
| N1_numeric_col_35 | PASS | exact match |
| N1_numeric_col_36 | PASS | exact match |
| N1_numeric_col_37 | PASS | exact match |
| N1_numeric_col_38 | PASS | exact match |
| N1_numeric_col_39 | PASS | exact match |
| N1_numeric_col_40 | PASS | exact match |
| N1_numeric_col_41 | PASS | exact match |
| C1_categorical_q02 | PASS | all bucketed frequencies match |
| C1_categorical_q03 | PASS | all bucketed frequencies match |
| C1_categorical_q04 | PASS | all bucketed frequencies match |
| C1_categorical_q07 | PASS | all bucketed frequencies match |
| C1_categorical_q09 | PASS | all bucketed frequencies match |
| C1_categorical_q10 | PASS | all bucketed frequencies match |
| C1_categorical_q11 | PASS | all bucketed frequencies match |
| C1_categorical_q12 | PASS | all bucketed frequencies match |
| C1_categorical_q13 | PASS | all bucketed frequencies match |
| C1_categorical_q14 | PASS | all bucketed frequencies match |
| C1_categorical_q15 | PASS | all bucketed frequencies match |
| C1_categorical_q16 | PASS | all bucketed frequencies match |
| C1_categorical_q17 | PASS | all bucketed frequencies match |
| C1_categorical_q18 | PASS | all bucketed frequencies match |
| C1_categorical_q19 | PASS | all bucketed frequencies match |
| C1_categorical_q20 | PASS | all bucketed frequencies match |
| C1_categorical_q21 | PASS | all bucketed frequencies match |
| C1_categorical_q22 | PASS | all bucketed frequencies match |
| C1_categorical_q23 | PASS | all bucketed frequencies match |
| C1_categorical_q24 | PASS | all bucketed frequencies match |
| C1_categorical_q25 | PASS | all bucketed frequencies match |
| C1_categorical_q26 | PASS | all bucketed frequencies match |
| C1_categorical_q27 | PASS | all bucketed frequencies match |
| M1_dummy_q05_topical_cream | PASS | expected_sum=301, actual=301, sources=1 |
| M1_dummy_q05_oral | PASS | expected_sum=142, actual=142, sources=1 |
| M1_dummy_q05_spray | PASS | expected_sum=103, actual=103, sources=1 |
| M1_dummy_q05_im_or_iv_injection | PASS | expected_sum=89, actual=89, sources=1 |
| M1_dummy_q05_intra_articular | PASS | expected_sum=46, actual=46, sources=1 |
| M1_dummy_q06_skin_diseases_eczema_psoriasis | PASS | expected_sum=220, actual=220, sources=1 |
| M1_dummy_q06_sinus_allergy_or_iritis | PASS | expected_sum=109, actual=109, sources=1 |
| M1_dummy_q06_respiratory_problems_asthma | PASS | expected_sum=96, actual=96, sources=1 |
| M1_dummy_q06_autoimmune_diseases | PASS | expected_sum=0, actual=0, sources=1 |
| M1_dummy_q06_osteoarthritis | PASS | expected_sum=47, actual=47, sources=1 |
| M1_dummy_q06_other | PASS | expected_sum=42, actual=42, sources=49 |
| M1_dummy_q06_did_not_use | PASS | expected_sum=11, actual=11, sources=10 |
| M1_dummy_q06_t01 | PASS | expected_sum=3, actual=3, sources=1 |
| M1_dummy_q06_t02 | PASS | expected_sum=2, actual=2, sources=1 |
| M1_dummy_q06_t03 | PASS | expected_sum=1, actual=1, sources=1 |
| M1_dummy_q06_t04 | PASS | expected_sum=1, actual=1, sources=1 |
| M1_dummy_q06_t05 | PASS | expected_sum=1, actual=1, sources=1 |
| M1_dummy_q28_healthcare_professionals | PASS | expected_sum=0, actual=0, sources=1 |
| M1_dummy_q28_social_media | PASS | expected_sum=129, actual=129, sources=1 |
| M1_dummy_q28_internet_non_social_media | PASS | expected_sum=0, actual=0, sources=1 |
| M1_dummy_q28_friends_family_whatsapp | PASS | expected_sum=0, actual=0, sources=1 |
| M1_dummy_q28_books_articles_magazines | PASS | expected_sum=55, actual=55, sources=1 |
| M1_dummy_q28_other | PASS | expected_sum=6, actual=6, sources=5 |
| M2_missing_propagation_q28 | PASS | 145 rows with missing source; OK |
| M2_missing_propagation_q05 | PASS | 22 rows with missing source; OK |