Report Properties
When the CSVREPORT analyzes a file, it generates a comprehensive JSON report containing detailed metadata and column-level statistics.
This page describes the structure of the generated report, which is especially useful if you are integrating the CLI tool’s JSON output into your own pipelines or reviewing the raw JSON in the Web App.
Root Properties (CsvReport)
The top-level object contains general information about the analyzed file and its structure.
| Property | Type | Description | Example |
|---|---|---|---|
file_path | String | The absolute or relative path to the analyzed file. | "data/sales_2026.csv" |
file_size_bytes | Integer | The size of the file in bytes. | 1048576 |
file_hash_sha256 | String | A highly efficient streaming SHA-256 hash of the file contents. | "e3b0c442...91b7852b855" |
file_encoding | String | The auto-detected text encoding. | "UTF-8" |
processing_time_ms | Float | Total time taken to analyze the file in milliseconds. | 15.42 |
report_created_date | String | The date the report was generated (YYYY-MM-DD). | "2026-06-30" |
report_created_time | String | The time the report was generated (HH:MM:SS). | "14:30:00" |
file_created_date / time | String | The creation date/time of the source file (if supported by the OS). | "2026-06-15" |
file_modified_date / time | String | The last modified date/time of the source file. | "2026-06-20" |
row_count | Integer | Total number of data rows (excluding the header). | 50000 |
column_count | Integer | Total number of detected columns. | 12 |
used_delimiter | Char | The delimiter character used for parsing. | "," or ";" |
is_auto_detected_delimiter | Boolean | true if the tool guessed the delimiter, false if manually specified. | true |
has_header | Boolean | Whether a header row was detected or assumed. | true |
headers | Array of Strings | The names of the detected columns. | ["id", "name", "price"] |
columns | Array of Objects | A detailed breakdown of every single column (see below). | [...] |
Column Details (ColumnInfo)
The columns array contains an object for each column in the CSV file. This provides deep insights into data consistency, fill rates, and statistical metrics.
| Property | Type | Description | Example |
|---|---|---|---|
name | String | The name of the column. | "price" |
inferred_type | String | The dominant data type detected (Null, Integer, Float, Boolean, or String). | "Float" |
type_breakdown | String or Null | A warning string if mixed data types were found (e.g., numbers mixed with text). | "I:66.7% (2), S:33.3% (1)" |
null_count | Integer | The number of completely empty fields. | 15 |
filled_count | Integer | The number of fields containing data. | 49985 |
fill_rate_pct | Float | The percentage of filled fields (0.0 to 100.0). | 99.97 |
unique_value_count | Integer | The number of strictly unique values. | 350 |
leading_spaces_count | Integer | The number of fields starting with a whitespace (useful for finding formatting errors). | 5 |
trailing_spaces_count | Integer | The number of fields ending with a whitespace. | 0 |
min_value | Float or Null | The minimum numeric value (only available if numbers are present). | 0.99 |
max_value | Float or Null | The maximum numeric value (only available if numbers are present). | 499.99 |
mean_value | Float or Null | The average value (only calculated for numerical columns). | 25.50 |
min_length | Integer or Null | The length of the shortest string in this column. | 2 |
max_length | Integer or Null | The length of the longest string in this column. | 255 |
Example Output Snippet
{
"file_path": "data/users.csv",
"row_count": 3,
"columns": [
{
"name": "age",
"inferred_type": "Integer",
"type_breakdown": null,
"null_count": 1,
"filled_count": 2,
"fill_rate_pct": 66.66666666666666,
"unique_value_count": 2,
"leading_spaces_count": 0,
"trailing_spaces_count": 0,
"min_value": 25.0,
"max_value": 30.0,
"mean_value": 27.5,
"min_length": 2,
"max_length": 2
}
]
}