Formatting Data for Import
The cleaner your data, the better InstaCharts can detect column types and build a chart for you. You don’t need to summarize or reshape anything first; just follow a few simple rules so your spreadsheet imports the way you expect.
This guide applies to every import method: uploading a file, connecting a Google Sheet, or pasting in text.
Use rows and columns
InstaCharts reads tabular data: a simple grid where every column is a field and every row is a record.
Good: a plain grid of rows and columns
| Product | Region | Units | Revenue |
|---|---|---|---|
| Notebook | East | 12 | 240 |
| Notebook | West | 8 | 160 |
| Pen | East | 40 | 80 |
| Pen | West | 25 | 50 |
Each row describes one thing, and each column holds one piece of information about it.
Columns run top to bottom
Every column is a single field, with its values stacked vertically underneath the column name. A common mistake is laying data out horizontally, putting field names down the left side and spreading each record across a row.
Avoid: fields laid out horizontally
| Name | Alice | Bob | Carol |
|---|---|---|---|
| Age | 30 | 25 | 35 |
| City | NYC | LA | SF |
Good: the same data with fields as vertical columns
| Name | Age | City |
|---|---|---|
| Alice | 30 | NYC |
| Bob | 25 | LA |
| Carol | 35 | SF |
Put column names in the first row
The first row of your sheet should be the column names. InstaCharts uses that row as the header, and each name becomes the Column Name you’ll see throughout the app: in the data table, the chart axes, filters, and legends.
Good: clear names in the first row
| Month | Signups | Revenue |
|---|---|---|
| January | 320 | 4800 |
| February | 410 | 6150 |
Avoid: no header row (data starts immediately)
| January | 320 | 4800 |
|---|---|---|
| February | 410 | 6150 |
Without a header row, your columns get generic names like A, B, and C, which make charts
harder to read.
Keep one value type per column
Each column should contain a single type of value: all numbers, all dates, or all text. InstaCharts inspects the values in each column to detect its column type. If a number column contains stray text, the whole column is treated as text and can no longer be plotted on a number axis or aggregated.
Avoid: a number column with text mixed in
| Salesperson | Deals |
|---|---|
| Alice | 12 |
| Bob | 8 |
| Carol | pending |
| Dan | 15 |
Good: numbers only, empty where unknown
| Salesperson | Deals |
|---|---|
| Alice | 12 |
| Bob | 8 |
| Carol | |
| Dan | 15 |
One set of data per sheet
Keep just one table per sheet. Don’t place a second table below or beside the first, and don’t add totals rows, titles, or notes above the data; InstaCharts reads the sheet as one continuous grid.
Avoid: two tables stacked in one sheet
| Month | Sales |
|---|---|
| Jan | 500 |
| Feb | 650 |
| Region | Sales |
| East | 700 |
| West | 450 |
Instead, split the tables into separate sheets (or separate tabs in an Excel/Google workbook; each tab imports as its own sheet).
You don’t need to summarize your data
Import your raw, row-level data; you do not need to total or group it first. InstaCharts aggregates automatically when it builds the chart, so repeated categories are expected and fine.
This raw table is perfectly good to import:
| Region | Sales |
|---|---|
| East | 100 |
| East | 150 |
| West | 200 |
| East | 50 |
| West | 175 |
You don’t have to add up the three “East” rows yourself. When you chart Region against Sales,
InstaCharts sums them into a single East bar for you, and you can switch the summary to average,
count, min, or max at any time.
JSON objects are split apart for you
If a column holds JSON objects, InstaCharts recognizes them and can split each property into its own column, so the individual values become chartable.
A column with JSON object values:
| Order | Customer |
|---|---|
| 1001 | {"city":"Austin","state":"TX","vip":true} |
| 1002 | {"city":"Reno","state":"NV","vip":false} |
Using Split Object Column from the column’s header menu turns that one column into three:
| Order | Customer.city | Customer.state | Customer.vip |
|---|---|---|---|
| 1001 | Austin | TX | true |
| 1002 | Reno | NV | false |
The same applies to lists: a value like [1,2,3] is imported as an Array and shown correctly in
the data table. See Transform Data for more on reshaping columns
after import.
Column types
InstaCharts detects a type for every column based on the values it contains. The type controls how a column is displayed, whether it can be plotted on a number or date axis, and how it can be aggregated. Types are detected automatically; you can override any column’s type from its header menu on the Data tab.
Text and categories
Categorical values become the labels and groups in your charts.
| Type | Use it for | Example |
|---|---|---|
| Text | Names, labels, and general categories | North America |
| Boolean | Yes/no or true/false values | true |
| Integer Category | Whole numbers treated as categories instead of a number axis | 1, 2, 3 |
| Id | Identifier values that label a record | 1024 |
| UUID | Software-generated unique identifiers, treated as text | 9f1c2a7e… |
Numbers
Numeric columns can be plotted on a value axis and aggregated (sum, average, count, and more). InstaCharts strips formatting like symbols and separators so the values can be charted.
| Type | Use it for | Example |
|---|---|---|
| Integer | Whole numbers | 42 |
| Big Integer | Whole numbers greater than one billion | 5000000000 |
| Decimal | Numbers with a fractional part | 3.14 |
| Percent | Percentages | 27% |
| Currency | Money values | $1,250.00 |
| Year | A year, displayed without thousands separators | 2026 |
Dates and time
Date columns unlock time-based charts and can be split into parts like month or year.
| Type | Use it for | Example |
|---|---|---|
| Date | Calendar dates (American MM/DD/YYYY) | 07/08/2026 |
| Timestamp | Dates with time, in ISO-8601 format | 2026-07-08T15:25:18.848Z |
Structured values
These columns hold more than one value per cell. InstaCharts parses them so they display correctly, and they can be broken apart into simpler columns.
| Type | Use it for | Example |
|---|---|---|
| Object | A JSON object in a single cell | {"a":1,"b":2} |
| Array | A list of values in a single cell | [1,2,3,4,5] |
| Multiple Choice | Several comma-separated selections in one cell (surveys) | chrome, firefox, safari |
Related
- Import File: upload a CSV, Excel, or JSON file
- Import from Google Sheets: connect a live spreadsheet
- Column Types: how types are detected and how to change them
- Transform Data: pivot, unpivot, split, and clean up your data
- Aggregation: summarize the values in a column