# Build a test dataset

**Category:** [Prompt Manager](https://help.totalctrl.app/hc/totalctrl/totalctrl-help-center/en-US/categories/prompts)
**Updated:** 2026-08-19

## What a dataset is

A dataset is a collection of test cases used to evaluate a prompt. Each **row** holds a set of **input variables** (the values that fill your `{{placeholders}}`) and an optional **expected output** used as a reference during scoring. Datasets belong to a library and can be reused across any prompt in it.
## Create a dataset

- Open a library and go to the **Datasets** tab, then click **New dataset**.
- Give it a name and optional description, then save.

## Add rows

On the dataset detail page you can add rows one at a time. For each row, supply the input variables as key/value pairs, an optional expected output, and optional tags.
## Import from CSV

To add rows in bulk, use **Upload CSV**:

- The first row is treated as the header (column names).
- A column named `expected_output` maps to each row's expected output; **every other column becomes an input variable**.
- Save the file as UTF-8. Up to **1,000 rows** are imported per upload.
- Completely blank lines are skipped, and you get back a count plus any per-row messages.

Once your dataset has rows, you can run it against any version of a prompt — see [Test a prompt with evaluations](test-a-prompt-with-evaluations).

---

## Related Articles

- [Prompts Manager Overview](https://help.totalctrl.app/en-US/articles/prompts-manager-overview)
- [Test a prompt with evaluations](https://help.totalctrl.app/en-US/articles/test-a-prompt-with-evaluations)
- [Edit a prompt and save a version](https://help.totalctrl.app/en-US/articles/edit-a-prompt-and-save-a-version)
- [Promote a version with labels](https://help.totalctrl.app/en-US/articles/promote-a-version-with-labels)
- [GitHub Sync](https://help.totalctrl.app/en-US/articles/github-sync)

---
[← Back to TotalCtrl Help Center](https://help.totalctrl.app/en-US/)