Survey analytics
1. Dataset Name
survey_analytics
2. Description
A response-level dataset that captures every survey event submitted by candidates on the career site or hiring platform, including NPS classification, participant identification, and contextual details. Each row represents a single survey event (a rating, a comment, or a lifecycle action) for a given participant. This dataset powers the Survey Analytics dashboard, including the Candidate Experience Score (NPS), promoter/detractor breakdowns, average ratings, unique participant counts, and trends over time, by country, and by device.
3. Source Tables
- customer_views.survey_analytics (sole source table — no joins)
4. Grain
One row per survey event per participant. A single candidate who submits a rating and a comment will produce two rows (one per event type). NPS and participant metrics deduplicate on unique_id or vs_cookie as appropriate, so the multi-row-per-submission structure does not cause double-counting in aggregations.
5. Dashboards Supported
- Survey Analytics Dashboard
6. Metrics Supported
| Metric | Supported Breakdowns |
| Candidate Experience Score (NPS) | embedding_id, candidate_country, interface |
| % of Promoters | No drilldowns |
| % of Detractors | embedding_id, candidate_country, interface |
| Average Rating | embedding_id, candidate_country, interface |
| Unique Survey Participants | embedding_id, candidate_country, interface |
| NPS and Average Rating by Country | No drilldowns |
| % Promoters, % Detractors & NPS Trend | embedding_id, candidate_country, interface |
| Unique Survey Participants Trend | embedding_id, candidate_country, interface |
| NPS Trend by Device | embedding_id, candidate_country |
7. Known Exclusions / Filters Applied
- A hardcoded list of 5 position IDs is excluded from the dataset via a WHERE clause on position_id — rows where position_id IS NULL are retained (surveys not tied to a specific position).
- All NPS calculations (promoter %, detractor %, NPS score) filter to event = 'submit_survey' inside CASE expressions — other event types present in the table are excluded from these aggregations.
- Unique Survey Participants uses vs_cookie as its COUNT DISTINCT grain to count distinct users, not submissions. A candidate who completes two surveys is counted once.
- NPS and completion counts use unique_id as their COUNT DISTINCT grain to count distinct survey submissions. A single submission may produce multiple rows (rating + comment); deduplication on unique_id prevents double-counting.
- is_promoter = NULL rows (participants who viewed but did not rate) are excluded from the NPS denominator — only rows where is_promoter IS NOT NULL are counted as rated participants.
- The is_promoter classification uses configurable thresholds: by default, 1 (promoter) = rating equals max_rating, 0 (passive) = rating between promoter and detractor thresholds, -1 (detractor) = rating ≤ 3 on a 5-point scale. Customers can configure custom thresholds for 5-point or 10-point surveys.
- embedding_id, interface, and candidate_country are available as both drilldown dimensions and additional outer select filters, enabling dashboard-level cross-filtering by these attributes.
- Monthly trend widgets use DATE_TRUNC('month', t_create) as the time bucket and are ordered ascending by month.
8. Schema
| Column Name | Data Type | Notes |
| group_id | varchar | Customer/organization identifier; sourced from survey_analytics |
| t_create | datetime | Timestamp of the survey event; sourced from survey_analytics. Primary date field used for time-based filtering and monthly trend bucketing. |
| is_promoter | bigint | Derived classification flag: 1 = promoter, -1 = detractor, 0 = passive. Sourced from survey_analytics. Default threshold: 1 for rating = max_rating; -1 for rating <= 3 on 5-point scale. Configurable per customer. |
| unique_id | varchar | Unique identifier for a single survey submission; sourced from survey_analytics. Used as the COUNT DISTINCT grain for NPS calculations (promoters, detractors, total rated). |
| event | varchar | Survey lifecycle event type; sourced from survey_analytics. Key value: 'submit_survey' — all NPS and participant aggregations filter to this event. |
| rating | double | Numeric star rating given by the participant; sourced from survey_analytics. Used for AVG(rating) metric. Scale: 1-5 (configurable for 10-point surveys). |
| max_rating | double | Maximum possible rating on the survey scale; sourced from survey_analytics. Used to determine promoter threshold (rating = max_rating). |
| vs_cookie | varchar | Unique visitor/session cookie identifier; sourced from survey_analytics. Used as the COUNT DISTINCT grain for Unique Survey Participants (distinct users, not distinct submissions). |
| embedding_id | varchar | Identifier of the survey widget embedding context; sourced from survey_analytics. Available as a drilldown dimension and additional outer select filter. |
| candidate_country | varchar | Country of the survey participant; sourced from survey_analytics. Available as a drilldown and breakdown dimension (NPS by Country table). |
| interface | varchar | Device type used to submit the survey (e.g. mobile, pc); sourced from survey_analytics. Used as a breakdown column in NPS Trend by Device chart. |
| question_template_id | varchar | Identifier of the survey question template; sourced from survey_analytics |
| question_id | varchar | Identifier of the specific survey question; sourced from survey_analytics |
| question_label | varchar | Display label of the survey question; sourced from survey_analytics |
| answer | varchar | Free-text or selected answer given by the participant; sourced from survey_analytics |
| is_comment | bigint | Flag (0/1) indicating whether the row represents a comment response rather than a rating; sourced from survey_analytics |
| position_id | bigint | Position associated with the survey; sourced from survey_analytics. A hardcoded list of 5 excluded position IDs is filtered out at dataset level. |
| entity_type | varchar | Type of entity the survey is associated with; sourced from survey_analytics |
| entity_id | varchar | Identifier of the entity the survey is associated with; sourced from survey_analytics |
| utm_source | varchar | UTM source parameter from the survey URL; sourced from survey_analytics |
| utm_campaign | varchar | UTM campaign parameter from the survey URL; sourced from survey_analytics |
| user_email | varchar | Email of the user who submitted the survey; sourced from survey_analytics |
| user_id | varchar | Identifier of the user who submitted the survey; sourced from survey_analytics |