Slicelytics monogram

View, Filter and Chart TSV Files

Tab-separated files come out of database clients, spreadsheets and command-line tools, and their columns rarely line up in a text editor. Slicelytics opens .tsv files in your browser as named rows you can filter, chart and compare, without uploading anything.

Try It on a Sample TSV File

day
requests
p95_ms
p99_ms
errors
7 items

The demo holds a week of daily request counts, exported from a database as TSV. Switch to Compare to diff it against the same query exported a day later, or to Visualize to chart it. To work with the samples full screen, open them in Explore, Compare or Visualize, no account needed.

Where TSV Files Come From

The sample is what mysql --batch prints for a query: a header line, then one line per row, with a tab between values. The top of it, as a text editor shows it:

day	requests	p95_ms	p99_ms	errors
2026-10-13	18240	162	410	12
2026-10-14	19105	158	398	9
2026-10-15	21480	349	912	112

Other places write the same: psql with --no-align and a tab as --field-separator, cells copied from Google Sheets or Excel, which the clipboard holds as tab-separated text, and many scientific and command-line tools. Tabs don't line up under a header whose names are longer or shorter than the values below them, so past a few columns it's hard to tell which number belongs to which.

Every Row as an Item

Slicelytics reads the header and shows each row as an item with its columns named, e.g. day: "2026-10-15", p95_ms: 349, errors: 112. A column of numbers is read as numbers, so it can be charted and summed; anything else stays text. Lines above the header, such as a title or # comments, are skipped.

Type a filter to see only what you need, e.g. day="2026-10-15" for one row, or errors to show one column. See Filter your data for every filter.

Chart a Column

Open the sample's chart of p95 latency per day, with errors as bars. The incident on 15 Oct stands out in both. It opens with this view:

{
  "v": 1,
  "view": "visualize",
  "props": [
    "p95_ms",
    "errors"
  ],
  "x": "day",
  "chart": "line",
  "series": {
    "errors": {
      "chart": "bar"
    }
  }
}

Pick other columns, chart types or metrics in Visualize. For CSV, see Plot a CSV without uploading it.

Compare Two Exports

The second sample is the same query run a day later. Open both in Compare and the Diff view shows the two rows that changed. 19 Oct was still filling the first time, with 6127 requests, and is complete in the second export, with 18930. Late logs added errors to 15 Oct, the day of the incident, from 87 to 112. The other five days are the same.

Compare matches rows by their position, so sort both exports the same way, e.g. with ORDER BY day.

Share a TSV File as a Link

The Share button makes a link that carries the file and the view: the filters, and the chart if one is open. The data travels in the part of the link after #, which browsers don't send to a server. See Share links for how large a file a link can carry.

Common Questions

Does the file leave my computer?

No. Slicelytics reads TSV in your browser and uploads nothing. If you share a view, the data travels in the part of the link after #, which browsers never send to a server, so treat the link like the file: anyone who has it can open it.

Which files does it open?

Files ending in .tsv, and the same compressed as .tsv.gz or .tsv.zst. A .txt file opens too, when its first line holds a tab, and so does UTF-16 text, such as Excel's "Unicode Text".

What if the file has lines above the header?

Slicelytics skips them: a title, a date range or # comments above the table. The header is the first line with as many columns as the rows below it.

Can I convert TSV to JSON or CSV with it?

No, Slicelytics has no export, apart from saving a chart as a PNG. It shows each row as an item with its columns named, as JSON would hold it.