Question: I have noticed I get inaccurate results when using filtering in the reporting feature, why is this and how do I work around it?

Tip: For projects using the longitudinal and/or the repeated forms modules, extra steps must be taken to ensure proper results when using filtering in the reporting feature.

This is due to the data structure of longitudinal projects organizing data into separate rows based off events to correctly filter rows of data, which is currently not obvious or intuitive in the current  version of the reporting feature.

In general report building in REDCap is straightforward assuming the data points you are filtering come from the same event or row of data. When data from numerous events must be included in a report extra steps must be taken to ensure proper results from the reporting tool. If not used as intended by Vanderbilt, the reporting feature can under report records from your data set.

Example Longitudinal Project Filtering:

You have a project holding patient demographics and lab results at 3 follow up times. You have two forms one for demographics and one for lab data. You have these forms distributed across 4 events, enrollment, dose 1, dose 2, and dose 3 (see events below).


You would like to find all patients who are female that have Creatinine values over 200.

So you want to filter your data base by two different criteria but those criteria exist at different events and one of those criteria have numerous values over the repeated events.

How would I structure my report to find the patients that meet my criteria?

My current data set has four data points for female patients with creatinine values over 200. While our example data set has only 5 patients and it is easy to count the patients that meet my criteria, this becomes impossible with larger data sets. This is where the reporting tool can be helpful.


Steps 1 and 2 of the reporting tool are very simple.

Step 1: Allows you to choose which users will have access to the report you generate.

Step 2: Allows you to choose the fields that will appear in the report.


Step 3: Filtering. This is where most users have difficulty. If I want to see all of your patients that are female with creatinine levels over 200, it is very tempting to use the filtering tool as seen below.


Unfortunately, when I run this report I find 0 records.

Which is not true because I already counted 4 values that met my criteria. So what went wrong?


Because the data I am filtering by exist in different events or on different rows in my data set I must filter for each event separately. To do this I must filter by creatinine value for each individual event.


Now I will see the report return all females with creatinine values over 200. Notice it filters at the patient level (Study ID) and returns all creatinine values for women who happen to have a single creatinine level over 200 but no women with all creatinine levels less than 200.


Was this helpful? Reach out to [email protected] for additional assistance.