Skip to content

Surveys & Assessments Cubes

These cubes capture user feedback through two mechanisms: periodic surveys (following the SPACE framework) and session-specific assessments. Both provide qualitative insights that complement quantitative session metrics.

Source Table: survey_responses Description: Analytics for scheduled survey responses including SPACE framework questions for discovery and delivery teams.

Dimension Type Description
id string Response ID
surveyType string Type of survey
userId string Respondent
completedAt time Completion timestamp
createdAt time Creation timestamp
Dimension Type Description
taskHelpfulness number AI tool helpfulness (1-7)
cognitiveLoad number Mental effort required (1-7)
npsScore number Net Promoter Score (0-10)
deploymentConfidence number Confidence in deployments (1-5)
overallProductivity number Productivity rating (1-5)
jobSatisfaction number Job satisfaction (1-5)
aiToolImpact number AI tool impact (1-5)
teamCollaboration number Collaboration quality (1-5)
workLifeBalance number Work-life balance (1-5)
Dimension Type Description
discoverySatisfaction number Satisfaction with discovery process (1-5)
stakeholderConfidence number Stakeholder confidence in decisions (1-5)
customerTouchpointFrequency number Customer interactions per week
testedAssumptionsCount number Assumptions tested per sprint
crossFunctionalParticipation boolean Cross-team participation flag
insightUtilization number % insights used in decisions
timeToFirstValidationDays number Days to first validation
buildMeasureLearnCycleDays number Days per BML cycle
Dimension Type Description
codeQualityConfidence number Confidence in code quality (1-5)
flowStateFrequency string How often in flow state
buildCicdSatisfaction number CI/CD satisfaction (1-5)
techDebtImpact number Tech debt impact (1-5)
codeReviewQuality number Review quality (1-5)
codeReviewSpeed number Review speed (1-5)
sprintCompletionConfidence number Sprint confidence (1-5)
Measure Description
count Total responses
Measure Description
avgProductivity Average overall productivity
avgSatisfaction Average job satisfaction
avgAiImpact Average AI tool impact
avgTaskHelpfulness Average AI helpfulness
avgCognitiveLoad Average cognitive load
avgCollaboration Average team collaboration
avgWorkLifeBalance Average work-life balance
avgConfidence Average deployment confidence
Measure Description
avgNps Average NPS score
promoterCount Promoters (9-10)
passiveCount Passives (7-8)
detractorCount Detractors (0-6)
promoterPercentage % promoters
detractorPercentage % detractors
npsScore Calculated NPS (promoter% - detractor%)
Measure Description
avgDiscoverySatisfaction Average discovery satisfaction
avgStakeholderConfidence Average stakeholder confidence
avgCustomerTouchpoints Average customer touchpoints/week
avgTestedAssumptions Average tested assumptions/sprint
crossFunctionalParticipationRate % with cross-functional participation
avgInsightUtilization Average insight utilization
avgTimeToFirstValidation Average days to first validation
avgBuildMeasureLearnCycle Average BML cycle days
Measure Description
avgCodeQualityConfidence Average code quality confidence
avgBuildCicdSatisfaction Average CI/CD satisfaction
avgTechDebtImpact Average tech debt impact
avgCodeReviewQuality Average review quality
avgCodeReviewSpeed Average review speed
avgSprintCompletionConfidence Average sprint confidence
Measure Description
avgDuration Average completion time (seconds)
  • SPACE Framework Analysis: Track satisfaction, productivity, activity, collaboration, efficiency
  • Team Health Monitoring: Monitor job satisfaction and work-life balance
  • AI Tool ROI: Measure perceived AI impact on productivity
  • NPS Tracking: Monitor promoter/detractor trends
  • Discovery vs Delivery: Compare team-specific metrics

Source Table: session_assessments Description: User feedback and ratings for individual AI coding sessions, including detailed survey questions.

Dimension Type Description
id string Assessment ID
sessionId string Associated session
userId string Respondent
provider string AI provider
rating string Overall rating (thumbs_up, meh, thumbs_down)
surveyType string Survey type (short, standard, full)
completedAt time Completion timestamp
createdAt time Creation timestamp
Dimension Type Description
taskHelpfulness number Helpfulness rating (1-7)
effortImpact string Impact on effort level
speedComparison string Speed vs working alone
Dimension Type Description
verificationFrequency number How often verified output (1-7)
deploymentConfidence number Confidence deploying output (1-5)
errorDetectability string How easy to spot errors
Dimension Type Description
cognitiveLoad number Mental effort required (1-7)
mentalAlignment number AI alignment with thinking (1-5)
userControl number Feeling of control (1-5)
Dimension Type Description
learningOutcome string What was learned
understandingDepth string Understanding of generated code
growthImpact string Impact on skill growth
Dimension Type Description
npsScore number Net Promoter Score (0-10)
npsCategory string Promoter/Passive/Detractor
taskEnjoyment string Enjoyment level
stuckFrequency string How often got stuck
Dimension Type Description
aiPerception string Perception of AI tool
pairProgrammingComparison number Comparison to pair programming
futurePreference string Future usage preference
Measure Description
count Total assessments
shortSurveyCount Short survey completions
standardSurveyCount Standard survey completions
fullSurveyCount Full survey completions
Measure Description
thumbsUpCount Thumbs up count
mehCount Meh count
thumbsDownCount Thumbs down count
thumbsUpPercentage % thumbs up
mehPercentage % meh
thumbsDownPercentage % thumbs down
avgRating Average rating (1-3 scale)
Measure Description
avgDuration Average completion time (seconds)
maxDuration Maximum completion time
totalDuration Total completion time
Measure Description
avgTaskHelpfulness Average helpfulness
avgVerificationFrequency Average verification frequency
avgDeploymentConfidence Average deployment confidence
avgCognitiveLoad Average cognitive load
avgMentalAlignment Average mental alignment
avgUserControl Average user control
avgPairProgrammingComparison Average pair programming comparison
Measure Description
avgNpsScore Average NPS score
promotersCount Promoters (9-10)
passivesCount Passives (7-8)
detractorsCount Detractors (0-6)
promoterPercentage % promoters
detractorPercentage % detractors
npsScore Calculated NPS

Percentages are taken over respondents who answered the NPS question. Before methodology v1.1 the denominator was every response, so any assessment or survey that skipped NPS pulled both percentages — and therefore the NPS itself — toward zero.

These scores combine multiple responses into normalized 0-100 scales.

Every Likert answer is normalized with the same convention — min-subtracted, higher is always better — so the scale floor maps to 0 and the ceiling to 100 regardless of whether the underlying question is Likert-5, Likert-7 or reverse-scored:

likertToPercent(x, min, max, reverse) = ((reverse ? max + min - x : x) - min) / (max - min) * 100

Reverse-scored questions (where a low answer is the good outcome, such as cognitive load or verification frequency) are inverted before normalizing. Unanswered questions are excluded from the average rather than counted as zero, and if a composite’s component was never asked, the remaining components’ weights are renormalized.

Measure Description Calculation
helpfulnessScore Overall helpfulness mean(likertToPercent(task_helpfulness, 1..7))
accuracyScore Trust/accuracy score ½ likertToPercent(deployment_confidence, 1..5) + ½ likertToPercent(verification_frequency, 1..7, reversed)
speedScore Speed perception Mean of the speed comparison weights (much faster 100, somewhat faster 75, about the same 50, somewhat slower 25, much slower 0) over answered responses; “Not sure” is excluded
clarityScore Cognitive clarity ½ likertToPercent(cognitive_load, 1..7, reversed) + ½ likertToPercent(mental_alignment, 1..5)

The formulas are defined once in apps/server/src/shared/scoring/, which generates both the cube SQL and the unit-test expectations.

These formulas changed in methodology v1.1. Previously each composite used a different zero point — a Likert-7 floor mapped to 14.3 and a Likert-5 floor to 20, so “0-100” scores with different effective floors sat side by side on the same dashboard. Only the ceiling (100) was correct in every case. Min-subtracting every component fixes the floor.

What to expect when comparing to older values:

  • helpfulnessScore, accuracyScore and clarityScore shift down by roughly 4-9 points. The shift is largest for low scores and disappears entirely at 100.
  • speedScore shifts up substantially. In addition to the zero-point problem it had two bugs of its own: it divided by every assessment rather than only those that answered the question, and three of its five choice weights matched labels that never existed in the stored data. In practice it reported approximately “the percentage of sessions rated much faster”, so it read close to zero.

Underlying survey answers are unchanged; only the derived scores moved.

  • Session Quality: Track thumbs up/down trends
  • Provider Comparison: Compare ratings across AI providers
  • Survey Completion: Monitor short vs full survey rates
  • Quality Indicators: Use composite scores for dashboards
  • NPS Monitoring: Track promoter/detractor trends by provider

The Survey Responses cube implements the SPACE framework for developer productivity:

Letter Dimension Discovery Questions Delivery Questions
S Satisfaction & Wellbeing discoverySatisfaction jobSatisfaction
P Performance stakeholderConfidence codeQualityConfidence
A Activity customerTouchpoints, testedAssumptions deploymentFrequency
C Communication & Collaboration crossFunctionalParticipation, insightUtilization codeReviewQuality
E Efficiency & Flow timeToFirstValidation, buildMeasureLearnCycle buildCicdSatisfaction
Join Description
Users Respondent
SurveyInstances Parent survey instance
Teams Via user membership
Join Description
Sessions Parent session
Users Respondent
ProjectsViaSessions Project via session
TeamsViaUsers Team via user

Survey NPS by team:

measures: [SurveyResponses.npsScore, SurveyResponses.count]
dimensions: [Teams.name]

Assessment ratings by provider:

measures: [Assessments.thumbsUpPercentage, Assessments.avgRating]
dimensions: [Assessments.provider]

SPACE metrics for discovery:

measures: [
SurveyResponses.avgDiscoverySatisfaction,
SurveyResponses.avgTimeToFirstValidation,
SurveyResponses.crossFunctionalParticipationRate
]
filters: [{ member: "SurveyResponses.surveyType", operator: "equals", values: ["discovery"] }]