# Report Format — CSV Data-Quality Profile Render the profiler's JSON into exactly this Markdown structure. Do not add, remove, or reorder sections. ```markdown # Data Profile: **Verdict:** ## Overview | Metric | Value | |---|---| | Rows profiled | (+ " (truncated at 100,000)" if truncated) | | Columns | | | Duplicate rows | | | Ragged rows | | ## Columns | Column | Type | Nulls | Unique | Stats | |---|---|---|---|---| | | | | | | ## Issues - ``` ## Cell and verdict rules **Stats cell:** - numeric columns → `min=, max=, mean=, median=` plus `, outliers=` when the key is present and > 0 - string columns → `top: (), (), ...` from `top_values` - boolean/date/empty columns → `—` **Issue bullets** (include each only when its condition is true): - `nulls > 0` in a column → "`` has missing values (%)" - `duplicate_rows > 0` → " duplicate rows" - `ragged_rows > 0` → " rows have an inconsistent number of fields" - `outliers` present and > 0 → "`` has outliers (>3σ from mean)" - `encoding_fallback` is true → "file is not valid UTF-8; profiled using latin-1 fallback" - `truncated` is true → "profile limited to the first 100,000 rows" - `rows == 0` → "file contains no data rows" **Verdict line** (pick exactly one, in this priority order): 1. `rows == 0` OR `ragged_rows > 0` → `⚠️ Needs attention — ` 2. any other issue bullet present → `🟡 Usable with caveats — issue(s) found` 3. no issue bullets → `✅ Clean — no data-quality issues detected`