Skip to main content
This page covers how to import and export data to and from the Vals platform: setting up a test suite, uploading historical Q&A pairs, or pulling run results for offline analysis.
To get started
  • If you’re building a new suite, start with Importing Data.
  • If you’ve already run an evaluation and want to analyze results, jump to Exporting Results.

Importing Data

Test Suite

A full test suite import includes tests, checks, context, tags, and any associated files. Only Test Input is required; all other fields are optional, so you can import inputs alone without defining any checks. Imported tests are appended after any existing tests in the suite. If the import file includes a Test Id column and tests with matching IDs already exist in the suite, the import will be rejected by default. Check Overwrite tests with matching Test IDs in the import dialog to replace existing tests instead. If you want to import existing model outputs and run checks against them, see this page Import Supported formats: CSV, JSON, ZIP
If your tests include file attachments (documents, images, etc.), use ZIP. Attached files should be stored under documents/ inside the ZIP.
📎 View CSV Example · 📎 View CSV Example (with Right Answer) · 📎 View ZIP Example (Files)

Test Columns

These columns define an individual test: the input sent to the model and any supporting context. Only Test Input field is required. * In most cases, either Right Answer or Checks are used. Learn more about Right Answer
** Files will only work as expected for the .zip upload.

Check Columns

Checks define how LLM responses are evaluated within a test.

Tips for Formatting Imports

Spreading values down rows

For fields that support multiple values (like Tags or Checks), each value goes in its own row beneath the test, rather than being comma-separated in a single cell. Example: Each row without a new Test Input belongs to the previous test. Tags stack down, and each check gets its own row.

Context Columns

Context is represented as columns rather than rows. Each context field has its own column, prefixed with context:. The column name after the prefix becomes the context key, and the cell value becomes the context value. Example: This creates two tests, each with a user_id and language context entry. Empty cells in context columns are ignored — the context key will simply be omitted for that test.

Encoding

We support multiple encoding types. UTF-8 is strongly recommended for compatibility.

Criteria requirement

All non-unary operators require a Criteria value. Leaving it blank will cause the import to fail.

Global checks

When importing a file with global checks and tests, include a blank row between the global checks section and the tests section.

Exporting Results

Test Suite

Supported formats: CSV, JSON, ZIP

Test Columns

Check Columns

Checks define how LLM responses are evaluated within a test.

Auto Eval Results

Results are best reviewed directly in the platform. If you need to export them for custom reporting or offline storage, we support CSV and JSON. Export Auto Eval Supported formats: CSV, JSON
We recommend CSV if the data needs to be reviewed by non-technical users, and JSON for any programmatic use case.
📎 View CSV Example · 📎 View JSON Example

Run Result

Top-level summary for the entire evaluation run.

Test Results

Per-test breakdown of inputs, outputs, and token usage.

Check Results (Auto Eval)

Note: Check columns in an export differ from check columns in a suite definition. Export checks reflect evaluation outcomes, not configuration.

Human Review Results

Export completed human review data for analyzing reviewer agreement, test-level feedback, and metric evaluations outside the platform. Supported formats: CSV
Only completed reviews will be included in exports.
📎 View Human Review Example

Run Review

Test Review

Human Review Check


Troubleshooting

Common issues:
  • Test Input is missing: Ensure every test has a value in the Test Input column.
  • Global checks: If your file includes global checks alongside tests, leave a blank row between the global checks section and the tests section.
  • Duplicate questions when importing Q&A pairs: Check for repeated rows in your CSV.
  • Missing criteria: Non-unary operators require a Criteria value. Don’t leave this blank.
  • Values comma-separated in one cell instead of spread across rows: See Formatting Rules above.
  • Context columns not being imported: Make sure all context column headers are prefixed with context: (e.g., context:user_id, not just user_id).
If you run into an issue that isn’t covered here, reach out at contact@vals.ai.