The precision tool for your CSV data.
CSVREPORT offers reliable analysis, profiling, and validation at the highest technical level – directly in your terminal or as a local web dashboard.
➜ csvreport test.csv
{
"file_path": "test.csv",
"row_count": 21,
"column_count": 3,
"used_delimiter": ",",
"headers": [
"Name",
"Alter",
"Stadt"
],
"columns": [
{
"name": "Alter",
"inferred_type": "Float",
"mean_value": 31.04
}
]
}
Powerful Web Dashboard
Upload your CSV files and get instant visual reports. No command line required.
- ✓ Automatic Delimiter Detection
- ✓ Visual Type Inconsistency Highlights
- ✓ 100% Offline Capability
Blazing Fast CLI
Built in Rust. Analyze hundreds of thousands of rows in milliseconds with a minimal memory footprint.
- >_ Perfect for CI/CD pipelines
- ⚡ Streaming architecture (O(1) memory)
- </> Output as JSON, Table or Text
$ csvreport data.csv -f table
📊 General Information ╭----------------------+------------------------------------------------------------------╮ | Metric | Value | +=========================================================================================+ | File Path | test_data.csv | |----------------------+------------------------------------------------------------------| | SHA-256 Hash | 465c6c73d1743b3f24fb992d04f80b2250d7aa213bb7d037c3be5c739fe8fbd2 | |----------------------+------------------------------------------------------------------| | Row Count | 4300803 | |----------------------+------------------------------------------------------------------| | Column Count | 4 | |----------------------+------------------------------------------------------------------| | Processing Time (ms) | 28456.686 | ╰----------------------+------------------------------------------------------------------╯ 🔍 Column Analysis ╭---+-------------+---------------+--------------------+------------+---------+---------------+------------+-----------+--------------+------+------------+------------------╮ | # | Column Name | Inferred Type | Type Breakdown | Null Count | Filled | Unique Values | Whitespace | Fill Rate | Visual Bar | Min | Max | Average / Length | +============================================================================================================================================================================+ | 1 | id | Integer | I:100.0% (4300803) | 0 | 4300803 | 4300803 | Ok | 100.0% | [██████████] | 1.00 | 4300803.00 | Avg: 2150402.00 | |---+-------------+---------------+--------------------+------------+---------+---------------+------------+-----------+--------------+------+------------+------------------| | 2 | timestamp | String | S:100.0% (4300803) | 0 | 4300803 | 8524 | Ok | 100.0% | [██████████] | - | - | Len: 19 | |---+-------------+---------------+--------------------+------------+---------+---------------+------------+-----------+--------------+------+------------+------------------| | 3 | status | String | S:100.0% (4300803) | 0 | 4300803 | 1 | Ok | 100.0% | [██████████] | - | - | Len: 2 | |---+-------------+---------------+--------------------+------------+---------+---------------+------------+-----------+--------------+------+------------+------------------| | 4 | value | Integer | I:100.0% (4300803) | 0 | 4300803 | 100 | Ok | 100.0% | [██████████] | 0.00 | 99.00 | Avg: 49.48 | ╰---+-------------+---------------+--------------------+------------+---------+---------------+------------+-----------+--------------+------+------------+------------------╯
$ csvreport data.csv -f json
{
"file_path": "test_data.csv",
"file_size_bytes": 153502301,
"file_hash_sha256": "9e52d3e63b5a9f296efd72b988c2d99d7367e5743ef9822a855efdd8aafdac39",
"file_encoding": "UTF-8",
"processing_time_ms": 28251.292630000004,
"row_count": 4576228,
"column_count": 4,
"used_delimiter": ",",
"is_auto_detected_delimiter": true,
"has_header": true,
"columns": [
{
"name": "id",
"inferred_type": "Integer",
"type_breakdown": "I:100.0% (4576228)",
"null_count": 0,
"filled_count": 4576228,
"fill_rate_pct": 100.0,
"unique_value_count": 4576228,
"leading_spaces_count": 0,
"trailing_spaces_count": 0,
"min_value": 1.0,
"max_value": 4576228.0,
"mean_value": 2288114.5,
"min_length": 1,
"max_length": 7
},
{
"name": "value",
"inferred_type": "Integer",
"type_breakdown": "I:100.0% (4576228)",
"null_count": 0,
"filled_count": 4576228,
"fill_rate_pct": 100.0,
"unique_value_count": 100,
"leading_spaces_count": 0,
"trailing_spaces_count": 0,
"min_value": 0.0,
"max_value": 99.0,
"mean_value": 49.48,
"min_length": 1,
"max_length": 2
}
]
}
Features
High Performance
Developed in Rust for maximum speed with minimal memory footprint. Processes gigabytes of files in seconds.
Auto-Detection
Automatic detection of delimiters, encodings, and data types. No more tedious configuration.
Validation
Ensure data consistency. Instantly detect outliers, missing values, and type errors.
CLI & Web
Use the tool in the terminal for automation or in the web dashboard for visual analysis.
Smart Profiling
Gain deep insights into your data distribution, statistical metrics, and metadata.
Easy Export
Export analysis results as JSON, tables, or directly into your reports.