Tips for open-end recoding

Updated at October 6th, 2023


This video shows how to set up open-ends for easy recoding and tips to handle open-end recoding in tracker studies.

Setting up open-ends for easy re-coding

Often times, surveys let respondents enter open-ends in multiple text boxes. Each text box is programmed as a separate column. In Protobi, each column is represented as an individual chart we call elements.

In this example data, there are two elements associated with the open-end, Q7– Q7_1 and Q7_2.

For analysis and to make recoding easier, you likely want to combine the different elements into one distribution. That way, you don’t have to recode two separate elements.

Use transform to combine multiple open-ends into one distribution

Use transform to combine multiple open-end elements into a single distribution

The first way to combine multiple open-end elements into a single distribution is to use our transform feature. From the context menu, select the transform dialog.

From the dialog, choose Condense (squish ). This feature, takes the values from the child elements and squishes it into one parent distribution. Notice the checkbox at the bottom is defaulted to hide children.

We can choose to show the children, by de-selecting this option. I won’t hide the children in order to show how children inherit attributes like “recode” from their parent. Press ok on this [the transform] dialog.

The result is one parent distribution with all entries from both children. And since I did not choose to hide the children, we can still see the elements underneath.

Open the context menu again and go to the recode dialog. Recode some of these responses– like responses that mention “good” . Press apply,  you see that the recoding is passed down (or inherited) by the children.

Typically, users will not care to see the child elements once a group is squished, so we can go back to the transform dialog and select hide.

Transform to condense is the most common way to set up open-ends and works for most cases.

Use the field attribute to combine multiple open-end elements

Another option is to combine data from multiple open-end elements using field.

Field is an attribute that pulls the raw data directly from the columns that you reference.

The benefit of using field is that it results in higher performance and you avoid issues that might arise with children elements inheriting attributes from the parent that you do not want to pass down. 

For instance, you might not want the original elements Q7_1 and Q7_2 to inherit the recode that you set at the parent level. You might want to keep the original raw values for reference.

Here I have an example element I created. If you need a refresher on how to create a new element see the Create a new element tutorial on

The field attribute can take multiple columns. Here I referenced both Q7_1 and Q7_2 which are the same elements that were listed as children in our prior example.

Using fields essentially gives us the same results as squishing a group that has children.

When you look at the Q7 (transform to squish) versus the Q7 (field), the distribution is the same.

If you were to recode Q7 (transform to squish), like we illustrated earlier the child elements would inherit the same recode.

But if you recode the Q7 that uses field the elements reference in field will not be affected at all.

Recoding raw open-ends in trackers

In this next section, we’ll review how open-ends appear for multiple waves of data and a few tips for recoding open-ends in trackers.

Here we have a coded version of Q7 and we see some coded values which we have differentiated with a hashtag at the front. This is a convention we recommend for tracker and one-off projects alike. Otherwise it can be hard to tell what are coded categories and which are raw text responses.

Lets use the wave element as a crosstab to see results for each wave.

It looks like most responses from Wave 1 are within the coded categories. And Wave 2 data has some results that are coded into the “#GOOD” category but the majority are raw responses.

Users are sometimes confused as to why coded values are showing for the most recent wave, when they haven’t done any recoding since the previous wave.

This happens because the recode tool is based on unique responses and not unique respondents.

If a respondent from wave 1 entered “good” as their answer, and we recode the raw value to “#GOOD”, then in Wave 2 a respondent also enters the exact same raw answer, then the value is automatically recoded to “#GOOD” as well.

Tips for recoding open-ends in tracker studies

Now that we understand why the coded values might appear in a wave of data you have not recoded yet, we’ll give a few  recommendations on how to make your life easier when recoding in a tracker project.

Do not change existing codes in the code frame

Our first tip is to add new codes when necessary but do not rename any existing codes .

Code all responses from a given wave at the end of field

Our second tip is to code all open-end entries from a given wave all at once at the end of the fielding period.

Often times, analysts will code open-end responses while the survey is still fielding.

When you wait until the end of fielding to recode all open-end entries together, it makes it easier to create a comprehensive code frame that will work well with all the entries from that wave.

Additionally, if you code all the responses at once you reduce the risk that you forget to recode some responses that come in towards the end of fielding.

This is an issue that some users run into, where they didn’t recode every single response from a previous wave and when the next wave of data comes in, they cannot tell which raw responses are from the new wave and which raw responses were actually uncoded entries left over from the last wave.

They recode all the raw responses they see and unknowingly change the results for the prior wave. Now, their report from last wave doesn’t match the results in Protobi.

Isolate and recode entries from a specific wave

This brings us to our third tip which is to isolate and recode entries from a specific wave.

There are two ways we can see and code entries from a single wave.   

Use filters and the simple recode tool

The first is to use filters and the simple recode tool.

The simple recode tool reflects the current filters of the project, so you can press on wave 2 or use the wave 2 global filter for instance and only see entries in the recode tool for that wave.

The advanced recode tool does not reflect the current filters in the project. The advanced tool is a separate page and draws its data directly from the primary source of data for the project without applying any additional filters.

Set project data to the current wave's raw file

But if you prefer to use the advanced tool, you can still isolate a single wave of data. It will involve changing the primary setting in project data.

Go to project setting in the upper right hand corner. From here, navigate to the data tab. We want to set the raw Wave 2 file as the source of data for the project.

Here you see there are two tables: processed_w1 that contains the post-process result from the wave 1 project.

There’s a “main” table which has the raw wave 2 survey data file and then there is the process which stacks data from both proceseed_w1 and main into one file.

To look only at the open-end results from wave 2, set main to primary.

Now, when you reload the advanced recode page or reload the project you’ll see only respondents from wave 2.

This allows you to recode the wave 2 open-ends without the possibility of recoding any raw responses leftover from the previous wave.

This concludes our segment on setting up open-ends for easy recoding and tips to handle open-end recoding in tracker studies.

Stayed tuned in our next video where we’ll show how to create hierarchical code frames and display open-ends in a grid.



Was this article helpful?