Self-Serve Docs Get started

Your data file

On this pageDownload your data fileWhat is in your data fileJoin your survey export to your data fileRemove duplicate and incomplete responsesMore rows than you ordered

Your Verasight data file has one row per completed response, with each respondent's vsid, profile variables, and, on weighted surveys, a weight column. Your survey responses stay in your own survey platform, so you join the two files on vsid.

#Download your data file

After you get the email titled Your Verasight Data is Ready, download the file from your dashboard:

  1. Go to your dashboard at https://app.verasight.io/researcher.
  2. Open the survey's row.
  3. Choose More Details.
  4. On the card titled Get Survey Weights & Demographic Variables, click Download Document. On surveys without weights, the card is titled Get Demographic Variables.

The email calls this button Download Demographics.

Download Document saves a ZIP file. It holds the same data in four formats: .csv, Stata (.dta), R (.rds), and SPSS (.sav). Each file name ends in _appends.

#What is in your data file

Your data file has these columns:

ColumnWhat it containsDetails
vsidThe identifier that matches this file to your survey exportJoin your survey export
12 profile variables (gender, age_group4 and others)Each respondent's answers to our profile questions, plus Census region and metropolitan statusProfile variables codebook
weightA survey weight for each respondent, on surveys that include weightsSurvey weights

#Join your survey export to your data file

Your survey export is the file of responses you download from your survey platform, for example a Qualtrics CSV export.

vsid matches each row of your survey data to the same respondent's row in your data file. It reaches your survey in the link, so do not ask respondents to type an identifier.

To get vsid into your export, connect your survey so it records the value.

Your export also has a surveyid column. It is the same for every respondent who comes from Verasight. Your data file has no surveyid column, so join on vsid only.

A response that did not come through Verasight, for example one opened through Qualtrics Preview or the plain survey link, has a blank vsid. In Qualtrics, its surveyid holds your Qualtrics survey ID, which starts with SV_, so you can spot these rows.

Join the two files in this order:

  1. Export your responses from your survey platform, including the vsid column.
  2. Remove duplicate and incomplete responses from your export.
  3. Merge your export with your data file, matching rows on vsid.

#Remove duplicate and incomplete responses

Keep a response only if it is the completed response for a vsid in your data file. After you remove the rest, the weights stay the same.

  1. Remove every response in your export whose vsid is not in your data file.
  2. For each vsid that appears more than once in your export, keep the completed response and remove the others. If one vsid has two completed responses, email research@verasight.io before you choose one.
  3. Count the rows that remain. The count should equal the number of rows in your data file.

Your data file has only completed responses.

Your survey export may still include respondents who declined consent, failed your own attention check, or left before a redirect. Step 1 removes them, because their vsid is not in your data file.

In a Qualtrics export saved as a comma-separated values file, skip the two extra header rows when you read it. Otherwise R's read_csv reads every column as text. The two rows sit under the column names and hold the question text and an import identifier.

This R code runs steps 1 to 3. Replace the file names with yours.

library(readr)
library(dplyr)

# Your survey export: read the column names, then skip the two extra Qualtrics header rows
header <- names(read_csv("survey_export.csv", n_max = 0))
export <- read_csv("survey_export.csv", skip = 3, col_names = header,
                   col_types = cols(vsid = col_character()))

# Your data file: the _appends.csv file from the ZIP (or use readRDS() on the .rds file)
vs <- read_csv("your_survey_appends.csv", col_types = cols(vsid = col_character()))

# Step 2 check: vsid values in your data file with more than one finished response
export |>
  filter(Finished == 1, vsid %in% vs$vsid) |>
  count(vsid) |>
  filter(n > 1)

merged <- export |>
  filter(!is.na(vsid), vsid != "") |>      # drop rows with a blank vsid
  filter(Finished == 1) |>                 # keep finished responses
  arrange(StartDate) |>
  distinct(vsid, .keep_all = TRUE) |>      # keep the earliest finished response per vsid
  inner_join(vs, by = "vsid")              # keep only vsid values in your data file

nrow(merged) == nrow(vs)                   # should be TRUE

In a Qualtrics export, Finished is 1 for every response that reached an end of the survey. That includes respondents who declined consent or failed your attention check, and the join removes them. If you export labels instead of values, Finished reads True, and the code still works.

The step 2 check lists any vsid with more than one finished response. If it lists any, email research@verasight.io before you use the merged file, because the code keeps the earliest response.

If your row count still does not match, Troubleshooting lists the usual causes, or email research@verasight.io.

#More rows than you ordered

Your survey may collect extra responses beyond the number you ordered. Each one appears in your data file as an additional row.

Analyze every row in your data file, including extra responses, and report that number as your sample size. Do not drop rows to reach the number you ordered.

Last reviewed 2026-11-04