Skip to main content

Reporting

The Reporting module provides the foundation for rendering survey results as structured tables and Excel exports. Survey reports are driven by the controls defined in each survey — every control becomes a column, and every completed interview becomes a row.

Enabling reporting

  1. Go to Configuration → Features and enable Reporting Foundation.
  2. Ensure CloudSolutions.Surveys is also enabled (survey reports depend on it).
  3. For team-scoped reports, also enable CloudSolutions.Surveys.Teams.

Interview Data Report

The Interview Data report (Admin → Surveys → Interview Reports → Interview Data) shows one row per completed interview, with columns for:

  • Completed By — the display name of the respondent (blank for anonymous interviews).
  • Completed At — the local timestamp when the interview was finished.
  • One column per control — the answer the respondent gave for each question control in the survey.

Rows are ordered alphabetically by respondent name, then by completion time for the same respondent.

Columns and control answers

Each control in the survey maps to one or more report columns:

Control typeWhat appears in the column
Predefined ListThe selected option label(s); or the Liquid override result if enabled
Text ValueThe typed text
Numeric ValueThe numeric value formatted according to the control's configured format
Typing TestSpeed/accuracy metrics
Desktop SimulatorOutcome and score data

When a control was on a page the respondent never visited (because visibility rules skipped that page), the column is left empty to preserve column alignment.


Users With No Interviews Report

The Users With No Interviews report lists every enabled user who has not completed any interview matching the current filter criteria. This is useful for tracking completion compliance when surveys are required.


Survey Control Groups in reports

Survey Control Groups add automatic summary columns to the right of the controls that belong to the group. These columns are computed per-row.

Total column

When Show Total is enabled on a group, the report adds a column that sums the numeric values (or weights, for Predefined List controls) of all controls in the group for each row.

Example: a group contains three numeric controls with values 4, 3, and 5 → the Total column shows 12.

Average column

When Show Average is enabled on a group, the report adds a column that averages the numeric values across all controls in the group for each row, rounded to two decimal places.

Example: same three controls → the Average column shows 4.00.

Liquid column

When Show Liquid is enabled on a group, the report evaluates the group's Liquid expression once per row and places the result in the column.

The Liquid expression has access to one variable:

VariableTypeDescription
InputsArray of content itemsEvery control answer from the completed interview — not just controls in this group. Each element is an Orchard Core content item you can filter by ContentItemId or read properties from.

Example expression — label a score range:

{% assign total = 0 %}
{% for input in Inputs %}
{% assign val = input.NumericValueSurveyControlPart.Value | default: 0 %}
{% assign total = total | plus: val %}
{% endfor %}
{% if total >= 15 %}High Performer{% elsif total >= 8 %}On Track{% else %}Needs Support{% endif %}

The Liquid column result is always stored as text in the Excel cell. If you need it to be a number, output only the numeric value from the template.

Column ordering and titles

Groups appear in the report in Sort Order sequence (lowest number first). Within a group, the individual control columns come first, followed by Total (if enabled), Average (if enabled), then Liquid (if enabled). Each summary column's heading uses the Total Column Title, Average Column Title, or Liquid Column Title you configured — or a sensible default if left blank.


Colors in reports

How colors are applied

When a respondent selects an option from a Predefined List control that has a Background Color or Font Color configured, those colors are written directly to the corresponding Excel cell:

  • Background color — sets the cell's fill color (solid pattern).
  • Font color — sets the cell's text color.

Colors are resolved at report generation time by reading the selected option from the control's metadata and looking up its color configuration. No color is applied if the selected option has no color set, or if the respondent did not answer that control.

Setting up colors

Colors are configured per option in the Predefined List control editor (see Per-option colors). Use standard hex color values (e.g., #28a745 for green, #dc3545 for red).

Color in the Interview Report vs. Team Report

Colors are applied identically in both the standard Interview Data report and the Team Interview Data report. They affect only individual answer cells — the summary columns (Total, Average, Liquid) generated by control groups do not inherit colors.

Design recommendations

ScenarioRecommendation
Scoring qualitative optionsUse a traffic-light palette: green ≥ threshold, amber = borderline, red < threshold
Multi-select controlsColor is driven by the first selected option ordered by weight (lowest weight = first)
Dense reportsLimit colors to 3–4 distinct values; too many colors make reports hard to read
Printing / accessibilityChoose colors that remain distinguishable in greyscale and high-contrast modes

Liquid value overrides in report cells

A Predefined List control can use a Liquid value override to replace the selected option label with a computed value in the report. This override affects:

  • The text shown in the individual control's report cell.
  • The value used in the control group's Total and Average calculations (the override result is used instead of the option label).

Available Liquid variables inside a value override:

VariableDescription
totalNumeric sum of the weights of all selected options for this control
averageNumeric average of the weights of all selected options for this control

Example — show a readable tier instead of a raw score:

{% if total >= 4.5 %}Outstanding{% elsif total >= 3 %}Meets Expectations{% else %}Below Expectations{% endif %}

When the override is active, the report cell displays Outstanding, Meets Expectations, or Below Expectations instead of the raw option text.

Note: The override result is always a string. If a control group is computing a Total or Average over controls that have Liquid overrides, the system attempts to parse the override result as a number. If it cannot be parsed (e.g., the result is "Outstanding"), the control's numeric contribution to the group total/average is zero.


Excel export

All survey reports generate an Excel file using EPPlus. The workbook contains a single sheet called Interview Data with:

  • A header row with column names and optional cell comments showing the Control ID for each column.
  • One data row per completed interview.
  • Cell formatting, colors, and alignment applied automatically.
  • Default workbook styling (fonts, borders, header formatting) driven by the site's ReportingColorOptions configuration.

Team reports

When CloudSolutions.Surveys.Teams is enabled, an additional Interview Data by Team report is available. It behaves identically to the standard Interview Data report but scopes results to the teams the current user manages. Control groups, colors, and Liquid columns work in the same way.