> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retailgrid.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Datasets

> Manage the product, transaction, and competitor data you have uploaded to Retailgrid in one place.

The **Datasets** page is where you manage all the data you've loaded into Retailgrid — product master data, transaction history, competitor prices, and product-store-level data — in one place.

Open it from the **Datasets** icon in the left sidebar.

<Frame>
  <img src="https://mintcdn.com/retailgrid/yby33A9XHZVL6uVo/images/SCR-20260607-twpr.png?fit=max&auto=format&n=yby33A9XHZVL6uVo&q=85&s=f55a4e2cfe6a8c67de1b874d00cf2237" alt="Datasets page" width="2880" height="1256" data-path="images/SCR-20260607-twpr.png" />
</Frame>

## What you'll see

Each row is one loaded dataset. The columns:

| Column           | What it shows                                                                   |
| :--------------- | :------------------------------------------------------------------------------ |
| **Dataset**      | The dataset type — Products, Transactions, Competitors, or Product store data.  |
| **Status**       | `Ready` once the file has finished parsing and validating.                      |
| **Last updated** | When the file was last replaced or refreshed.                                   |
| **Uploaded by**  | The team member who uploaded the current version.                               |
| **Rows**         | Row count after parsing.                                                        |
| **Source file**  | The original filename of the uploaded CSV or XLSX.                              |
| **Origin**       | How the data got in — currently `CSV / File` for files uploaded through the UI. |

## Upload a new dataset

Click **Upload data** in the top-right corner. The Upload Data modal opens; pick the dataset type (Products, Transactions, Competitors, Product store data) and select your file.

For the field requirements per dataset, see:

* [Products](/data-requirements/products)
* [Sales / Transactions](/data-requirements/sales)
* [Competitor Prices](/data-requirements/competitors)
* [Product store data](/data-requirements/product-store-data) — for multi-store retailers

You can also load Products, Transactions, and store-level data programmatically via the public Retailgrid REST API — see the [API changelog](/api-reference/changelog).

## Replace, download, or delete a dataset

Use the three-dot menu at the right of any dataset row to:

* **Replace** the file — upload a fresh CSV or XLSX without changing the dataset's role. The new file replaces the previous version's rows and the row count updates accordingly.
* **Download** the current file — useful for reviewing what's currently loaded or sharing with a colleague.
* **Delete** the dataset.

Replacing a dataset preserves its role (Products stays the Products dataset) and refreshes the data available to your existing grids and agents.

<Warning>
  Deleting a dataset removes its rows from Retailgrid. Grids that depended on those rows will become empty or partial. Replace rather than delete when you only want to refresh the data.
</Warning>

## Status values

| Status       | Meaning                                                                                                    |
| :----------- | :--------------------------------------------------------------------------------------------------------- |
| `Ready`      | Parsed, validated, and available for use in grids and agents.                                              |
| `Processing` | Upload is being parsed. Appears briefly after a fresh upload.                                              |
| `Failed`     | Parsing or validation failed. Open the row to see the error, then fix the source file before re-uploading. |

## When to upload vs replace

* **First time a dataset type is loaded** — use **Upload data** and pick the type.
* **Refreshing data you already loaded** (e.g. monthly product master refresh, daily competitor price feed) — use **Replace** on the existing row. This keeps grid bindings intact. Replaced datasets are picked up by the nightly grid refresh; existing grids show the new rows the next morning without any further action.
* **Switching to a totally different schema** — delete and re-upload, then expect to remap fields.

## Related

* [Products data requirements](/data-requirements/products)
* [Sales / Transactions data requirements](/data-requirements/sales)
* [Competitor Prices](/data-requirements/competitors)
* [Product store data](/data-requirements/product-store-data)
* [Quickstart](/get-started/quickstart)
