Dashboard functions and Break By
When you build a chart widget on a presentation dashboard, you combine three ideas:
- Variable -a question from dashboard setup (for example
Q1). - Function -how to aggregate answers on that variable (
count,exists, ornpswhere allowed). - Break By (optional) -split the metric by another variable, or by the same question to show one row or bar per answer option.
This page explains what each function does, how Break By changes the result, and how multi-select questions behave differently from single-select.
Where to configure
In the dashboard builder, open Add widget or Edit widget → Add metrics (variable + function) → Select Break By (optional). The same metric rules apply on the canvas and on the add/edit widget page.
Widget types and supported functions
| Widget type | COUNT | EXISTS | NPS | Break By |
|---|---|---|---|---|
| Bar / pie / donut / line / area chart | Yes | Yes | No | Yes |
| NPS chart | No | No | Yes (only) | No |
| Rich text (embedded metrics) | Yes | Yes | Yes | Per metric |
COUNT, EXISTS, and NPS support by question type
COUNT and EXISTS are available for all answer-storing question types in dashboard setup on bar, pie, donut, line, area, and rich-text metric widgets (not on the dedicated NPS chart widget, which uses NPS only).
| Family | COUNT | EXISTS | NPS | Break By (as dimension) | Break By = same question |
|---|---|---|---|---|---|
Choice (single_choice, multiple_choice, dropdowns) | Yes | Yes | No | Yes | Yes -distribution |
NPS scale (nps_scale, nps_advanced) | Yes | Yes | Yes | Yes | Yes |
| NPS multiple row bindable | Yes | Yes | Yes | No | No |
| NPS advanced inner follow-up | Yes | Yes | No | Yes | Yes |
Rating (rating_single, rating_advanced) | Yes | Yes | No | Yes | Yes |
| Text, upload, media, contact, form test | Yes -# respondents who answered | Yes | No | No | No |
| Text multiple / upload multiple row bindables | Yes (per row) | Yes | No | No | No |
| Ranking (all ranking types) | Yes | Yes | No | Yes | Yes |
Parent text_multiple / upload_multiple (no row ref) | No | No | No | No | No |
Parent nps_multiple / rating_multiple (no row ref) | No | No | No | No | No |
How to read COUNT on presence types
Text, upload, media, contact, and form-test variables measure whether someone answered, not a distribution of answer text or files.
| Configuration | COUNT result |
|---|---|
| No Break By | Total respondents with a non-empty, countable answer (empty and N/A excluded). |
| Break By = another question | Respondents who answered the value question, grouped by break-by segments (for example contact submissions per region). |
| Break By = same question | Not supported -there is no option list to split on. Use Break By on a choice, NPS, rating, or ranking variable instead. |
When to use which function
- COUNT -when you need “how many” (totals or counts per segment).
- EXISTS -when you only need yes/no (
1/0) per segment or overall.
Contact information is one dashboard variable for the whole question (not separate variables per field). Contact can be the value in a metric (for example COUNT(Contact) broken by Region) but cannot be chosen as a Break By dimension.
How to read COUNT, EXISTS, and Break By
| Function | No Break By | Break By = other question | Break By = same question |
|---|---|---|---|
| COUNT | One total | One row or bar per segment | One row or bar per answer option |
| EXISTS | 1 or 0 | 0 / 1 per segment | 0 / 1 per option |
| NPS | NPS score + promoter/passive/detractor segments (NPS chart or NPS() in rich text only) | - | - |
On charts, a scalar result is one number; a series result is one value per break-by label. NPS never uses Break By on the NPS chart widget.
Choice question types (COUNT + EXISTS)
These rules apply to choice variables for COUNT and distribution Break By:
| Question type | Respondent can select |
|---|---|
| Single choice / dropdown (single) | One option |
| Multiple choice / dropdown (multiple) | One or more options |
Functions available today
| Function | API value | What it measures | Break By allowed? | Widget types |
|---|---|---|---|---|
| COUNT | count | How many answers count toward the metric | Yes | Charts, rich text |
| EXISTS | exists | Whether any countable answer exists (1 or 0) | Yes | Charts, rich text |
| NPS | nps | Net Promoter Score on NPS scale variables | No | NPS chart; NPS() tokens in rich text |
COUNT
The default function for most charts.
| Configuration | Result |
|---|---|
| Variable only (no Break By) | One number -how many respondents gave a countable answer on that question (empty and N/A are excluded). |
| Break By = same question | Distribution chart -one bar per answer option. This is the standard way to show “how answers are split.” |
| Break By = another question | One bar per break-by option -respondents who answered the value question, grouped by the break-by question (for example satisfaction by region). |
EXISTS
A yes/no presence flag:
- No Break By: returns
1if at least one respondent gave a countable answer on the value question;0otherwise. - With Break By: returns a series of
0or1per break-by dimension -1when at least one respondent in that bucket answered the value question (or when that option was ever selected for same-question break-by).
For answer distributions, prefer COUNT with Break By = same question. Show percent on EXISTS series uses binary percent (100% / 0% per bar). Show-zero and show-percent toggles appear when Break By is set.
Break By in practice
Break By does not change which survey responses are included. It only changes how the result is grouped on the chart.
flowchart LR
V[Value variable + Function] --> R{Break By?}
R -->|No| S[Scalar -one metric]
R -->|Same question| D[Series -one bar per answer option]
R -->|Other question| X[Series -one bar per break-by option]Common author goals
| Goal | Function | Break By | Chart shape |
|---|---|---|---|
| How many people answered? | COUNT | - | Single value |
| Answer distribution | COUNT | Same question | Bar per option |
| Metric by segment (region, team, …) | COUNT | Other question | Bar per segment |
| Did anyone answer at all? | EXISTS | - | 1 or 0 |
| Presence per segment | EXISTS | Other question | 0/1 per segment |
| How many submitted contact info? | COUNT | Other question (e.g. Region) | Count per segment |
| How many answered (free text)? | COUNT | - | Single total |
Same question = distribution
In XEBO-style dashboards, answer distribution is not a separate function. It is COUNT with Break By = the same variable as the value.
Multi-select questions
For multiple choice and multi-select dropdown, one respondent can pick several options. With Break By = same question, COUNT counts selections per option (if one person picks A and B, both A and B increase by 1).
| Function | No Break By | Break By = same question |
|---|---|---|
| COUNT | Unique respondents with at least one selection | Selections per option |
| EXISTS | 1 if any option was selected | Per option: 1 if ever selected, else 0 |
Example: 3 respondents -R1 selects A+B, R2 selects A, R3 selects B+C.
| Option | COUNT (distribution) |
|---|---|
| A | 2 (R1 + R2) |
| B | 2 (R1 + R3) |
| C | 1 (R3) |
Use COUNT when bars should reflect how often each option was chosen (including multi-select totals per option).
Display options (not functions)
These settings affect labels on the chart, not the underlying aggregation:
| Option | Effect |
|---|---|
| Show count | Bars show raw numbers (default). |
| Show percent | Bars show percentage of the total (for series / distribution charts). |
| Show zero values | Include answer options with 0 responses so the full option list appears on the axis. |
Functions planned for later
The product roadmap follows the XEBO function list. These are not available in the dashboard builder yet:
| Function | Requires |
|---|---|
| SUM, AVG, MIN, MAX, CSAT | Score points on each answer option in the survey builder (same idea as XEBO “Recode”) |
| DIFF, MULTIPLY, DIVIDE, SQRT, FLOOR | Formula-style widgets + score points |
When score points are enabled on choice options in the survey design, each option can carry a numeric value used later for averages and sums. The dashboard engine will read those values from the pinned survey version linked in dashboard setup.
Tips
- Distribution chart → COUNT + Break By = same question.
- Segment comparison → COUNT + Break By = another setup variable.
- Multi-select option totals → COUNT + Break By = same question.
- After you change survey options (add/remove/reorder), re-save dashboard setup if you use a pinned response scope so labels stay aligned.
See also
- Setup and sources -pinned design version, response scope, and stale question handling.