InsightBoard
Web application that converts any CSV into a visual analytics report, 100% in the browser.
01 Problem and context
Exploring a new CSV typically requires opening a notebook or uploading it to a server-based tool, which also means sending potentially sensitive data to a third party.
Almost every automated data analysis tool starts by shipping your file to someone else's server. When the CSV contains people (a customer base, a survey, a registry), that is already a problem before any analysis begins. InsightBoard does the entire pass inside the browser: it parses the CSV, profiles every column, computes correlations, flags outliers and raises data-quality warnings without a single server call.
02 Solution
All analysis runs entirely in the browser: column profiling, Pearson correlations, IQR-based outliers, and data quality alerts (nulls, duplicate headers, Chilean PII via regex: email, phone, RUT). The report is visualized using Recharts across tabs and exports to PDF or PNG without data ever leaving the local machine.
- Contract before code: two schemas locked and approved, one describing the dataset profile going in and one describing the analysis result coming out.
- Seven explicit behavioural rules, each with its own acceptance criterion: reject files above 50 MB before parsing, flag columns above 80% nulls, exclude columns with fewer than 30 valid rows from correlation, auto-rename duplicate headers, detect personal data, isolate each session, and run entirely client-side.
- A four-stage pipeline with a visible state machine: PapaParse parsing, profiling with five-type column detection, warning detection, and a statistics engine covering Pearson correlation, interquartile-range outliers, histograms and linear trend.
- A report across six views, with the warning count surfaced on the tab itself and personal-data findings escalated to high severity.
- Verification against three purpose-built test sets, including one deliberately broken file: it caught the seven expected warnings and correctly excluded the 18-row column from the correlation matrix.
- A design system driven by centralised CSS tokens, and report export straight from the browser.
03 Results
Verifiable figures in the repository and its documentation:
04 How it's built
InsightBoard is a React application that transforms CSV files into automated analytical reports without a backend: all processing happens directly in the browser. It parses the CSV with PapaParse, profiles columns with type detection, calculates statistics and Pearson correlations using simple-statistics, detects outliers via IQR, and generates data quality alerts (columns with excessive null values, duplicate headers, and potential personal data such as emails, phone numbers, and RUT). Results are visualized with Recharts and can be exported to PDF or PNG.
05 Ethical decisions
- Processing is entirely client-side: no backend, no external API, and the user's file is never transmitted. This is the decision that defines the project, not an implementation detail.
- Data lives only in session memory, and reloading the page wipes it. Convenience was traded away rather than leaving a trace.
- The personal-data detector warns but does not redact: it flags columns holding emails, phone numbers or national IDs and leaves the call to whoever knows the context. Auto-masking would have handed the user a false sense of anonymisation.
- The detector's false positives were documented instead of hidden: one warning too many was preferred over one silent omission.
06 Highlights
- 100% client-side processing: no server or external APIs, session isolation via UUID, and in-memory data only.
- Proprietary analytics engine: Pearson correlation with a 30 valid-row guard, IQR outlier detection, histograms, and linear trends.
- Data quality alerts: PII via regex (email, phone, Chilean RUT), columns with excessive nulls, and auto-renamed duplicate headers.
- Report export to PDF and PNG using jsPDF and html2canvas.
- Architecture documented in SOPs with an Upload → Parse → Profile → Analyze → Render pipeline and included test datasets.
07 Limitations
There is no proprietary dataset: the tool works on whatever CSV the user brings, so the limits are about size and statistical validity. The ceiling is 50 MB. Performance was verified on files of 150 to 500 rows; behaviour with hundreds of thousands of rows held in browser memory is unmeasured and is the first thing that would give way. Pearson correlation runs only on columns with 30 or more valid rows and assumes a linear relationship, so a low coefficient does not rule out dependence. Type detection is heuristic. Personal-data detection uses regular expressions with known false positives on long numbers.