Drop a CSV. Get an analyst’s read.

Exact profiling on the server: findings, data-quality flags and follow-up questions in seconds. The AI only picks which computed facts to show. It sees column IDs (c1, c2, …), types and coarse buckets, never your column names, cells or numbers, and every sentence is written from fixed templates.

Drag a .csv file here or choose one. Up to 256 KB and 5,000 data rows.

How it works

Files are processed in memory: no storage, no tracking. The full mechanism is below.

Technical details
  1. Parsing and profiling run on the server: types (ID-like columns are treated as identifiers, without stats), missing values and their rows, min/max/mean/median, 3σ outliers, and group totals by sum (never for identifiers, scores, rates, ratios, prices or percentages).
  2. Only a value-free summary goes to Llama 3.3 70B on Workers AI (model ID @cf/meta/llama-3.3-70b-instruct-fp8-fast): columns are named c1, c2, … (never by their header), each with its type and coarse buckets (low/med/high): missing share, spread (CV), skew direction, outlier share, distinct share, and for group totals the top group’s share. The server maps the IDs back to your columns. No header text, cell text or numbers from the file are sent.
  3. The model returns picks only: a section, a fact type and a column (and a group column for group totals).
  4. The server checks the picks: only the first 12 are read (the rest are over cap); invalid and duplicate picks are removed; at most 5 picks per section (more are section full). Outlier counts always appear under Data quality from a computed rule. Removed picks are counted on the Check line.
  5. For each pick it keeps, the server computes the value from your file and writes the sentence from a fixed English template, with exact values or rounding that is stated explicitly.
  6. Findings are ordered with group totals and missing-value locations first and filled to at least 3 with computed facts; outliers are listed under Data quality. Ask next questions come from neutral server templates and appear only when the profile supports them. Limits: 256 KB, 5,000 rows, 5 runs per minute.

Limits and privacy

Up to 256 KB and 5,000 data rows per file, first 30 columns analysed. Five runs per minute per visitor.

The file is profiled in memory for one request and then discarded. The AI step sees column IDs and coarse buckets only.

Sample CSV → actual output

This is the built-in sample file run through the live analyser on 1 Nov 2026. The AI step was skipped that day (the demo’s allowance was used up), so these lines are the computed facts the tool returned.

Input (first 8 of 16 rows, date column hidden in this preview)

order_id,region,channel,units,unit_price,discount_pct,returned
1001,North,Web,3,24.50,0,no
1002,South,Retail,1,24.50,10,no
1003,West,Web,12,22.00,15,no
1004,North,Marketplace,2,24.50,0,yes
1005,East,Web,4,24.50,5,no
1006,South,Web,,24.50,0,no
1007,West,Retail,1,24.50,0,no
1008,North,Web,140,18.00,30,no

Output

  • Web has the largest total units of any channel value: 180 of 192 (93.75%).
  • The only missing cell is in units (data row 6).
  • North is the most common region value, in 5 of 16 rows (31.25%).
  • units has 1 value more than 3 standard deviations from its mean: 140 (data row 8).
  • unit_price has 1 value more than 3 standard deviations from its mean: 18 (data row 8).

Questions people ask

How large can my CSV be?

Up to 256 KB and 5,000 data rows per file. Only the first 30 columns are analysed; extra columns are reported as not analysed. Each IP address can run 5 analyses per minute, and the whole demo allows 30 per minute.

What happens to my data?

The file is sent to the Ledgerlens server, parsed and profiled in memory for that one request, and then discarded; it is not written to a database or storage. Your IP address is held in memory for up to a minute to enforce the rate limit. When the AI step runs, the model sees only column IDs and computed summaries, not your header names, cell text or numbers. Every figure shown is computed from the file, not written by the model.

What if the AI step does not run?

You still get the computed facts: column types, missing cells, outliers, top values and group totals. The page tells you when the AI step was skipped, for example when the demo’s daily allowance is used up.

Your CSV is processed on Cloudflare and not stored; the AI step sees column IDs only. Privacy notice