Customer and User Obsession Questions
Grounding product decisions in real user needs through empathy, pain-point identification, and relentless customer focus. Covers synthesizing qualitative and quantitative signals into insight, collecting and acting on customer feedback, integrating the voice of the customer into strategy, and balancing user needs against business goals. Assesses whether a candidate reasons from the customer inward rather than from features outward.
A post-launch in-app survey shows very positive satisfaction, but you suspect sampling bias because high-value customers respond more often. Describe statistical techniques to correct or account for this bias (weighting, post-stratification, raking, propensity scores) and how you would implement the correction in BI reports.
Sample Answer
Situation: We ran an in-app satisfaction survey and see very high scores, but response rates are higher among high-value customers — likely positive sampling bias. Below I describe statistical techniques to correct for it and how to implement them in BI reports.
Techniques and when to use them
- Weighting (basic inverse-probability): assign each respondent a weight = 1 / probability(they responded). If you can estimate response probabilities by strata (e.g., customer tier), this is simple and effective.
- Post-stratification: group population into mutually exclusive strata (e.g., tier × region × recency), compute population proportions from CRM, compute sample proportions, and assign weights so weighted sample matches population margins.
- Raking (iterative proportional fitting): when you have multiple marginal distributions (tier, region, device) but not full joint distribution, iteratively adjust weights to match each margin until convergence.
- Propensity-score weighting: model probability of response using logistic regression or tree-based model on observed covariates (value, tenure, activity). Use inverse propensity as weight (stabilize to avoid extremes). Preferable when many covariates predict response.
Implementation steps in BI
- Data collection: join survey responses to CRM/profile table (customer_id → value, tier, region, tenure, engagement metrics).
- Estimate response model / compute strata proportions offline (in SQL, Python/R). For post-stratification/raking, compute target margins from full user population; for propensity, train model on responders vs. non-responders.
- Produce a weights table (customer_id, weight, weight_type, timestamp) and store in the warehouse.
- In BI tool (Looker/Tableau/Power BI):
- Join survey responses to weights table.
- Use weighted aggregations: weighted_mean = SUM(score * weight)/SUM(weight); weighted_rate = SUM(event * weight)/SUM(weight).
- Expose toggle to switch between raw and weighted metrics for transparency.
- Validation & diagnostics:
- Compare unweighted vs weighted estimates; show confidence intervals (use design-based variance or bootstrap).
- Inspect weight distribution (min, max, percentiles); cap or trim extreme weights and report effect.
- Run sensitivity analyses (different models/strata).
- Communication: document assumptions, method, effective sample size, and limitations (unobserved confounders remain).
Key practical notes
- Always stabilize/trim weights to avoid high variance.
- If nonresponse correlates with unobserved satisfaction drivers, weighting can only reduce bias, not eliminate it — flag residual uncertainty.
- Automate weight recomputation on schedule and surface both weighted and unweighted results with diagnostic dashboards so stakeholders understand the correction.
For a mobile app, design an attribution approach to determine which onboarding flow leads to higher lifetime value. Cover instrumentation (stable user ID, campaign parameters), session stitching, deduplication, attribution windows, and how to handle delayed conversions. Explain how you'd present incremental LTV by flow to product teams.
Sample Answer
Situation: We want to know which onboarding flow (A, B, C...) produces higher lifetime value (LTV) so product can prioritize investment.
Instrumentation
- Stable user ID: generate a persistent user_id at first app open (server-assigned UUID tied to device identifier + optional account id once user signs up). Persist across installs where possible (install_referrer, device advertising ID) and reconcile to account_id after login.
- Campaign parameters: capture install referrer (Play Install Referrer / iOS SKAdNetwork where available), UTM params, creative_id, experiment_id, onboarding_flow, and timestamp. Send these on first_open and store as first_touch attributes.
Session stitching & deduplication
- Define session_id via app-side start/stop events; stitch events server-side by user_id and temporal proximity (e.g., gap <30m). Use first_open timestamp and install_referrer to attribute install-level source.
- Deduplicate by preferring deterministic identifiers (install_referrer > device id > fingerprint). Keep a source hierarchy and mark duplicates when same user_id has multiple install events; assign first_open as canonical.
Attribution windows & delayed conversions
- Use multiple windows: short-term (7d), medium (30d), long-term (90/180d) LTV. Attribute revenue to onboarding_flow using first-touch for onboarding experiment (since flow occurs at first session) and credit subsequent events to that flow.
- For delayed conversions (pay later), ingest revenue events continuously and backfill LTV windows. Implement event-time processing with upserted aggregates keyed by user_id and cohort_date so late-arriving events update cohorts.
Handling noise & ambiguity
- Use a special flag for ambiguous/skAdNetwork-limited installs; model their expected distribution separately.
- Maintain a control/holdout group (randomized assignment) to measure incremental effect and avoid selection bias.
Analysis & incremental LTV estimation
- Primary metric: incremental LTV per user at different windows (30/90/180d). Calculate mean LTV by flow and compute uplift vs control with confidence intervals.
- Use methods: difference-in-means with t-tests + bootstrapped CIs; for observational splits, adjust via propensity score weighting or doubly robust regression (covariates: device, geo, install_time, campaign).
- Segment by cohorts (country, platform), and show retention curves, ARPU, ARPPU, and revenue concentration (top X%).
Presentation to product teams (dashboard)
- Dashboard tabs:
- Overview: cohort counts, assignment balance, primary incremental LTV table (30/90/180d) with deltas, p-values, and % lift.
- Cohort LTV curves: cumulative LTV vs time by flow (lines), with shaded CI.
- Retention & conversion funnels: time-to-first-purchase, purchase frequency.
- Statistical notes: sample sizes, churn, attribution methodology, and data freshness/backfill policy.
- Visuals: bar chart for point estimates with error bars, Kaplan-Meier retention plots, and heatmap for segment lifts.
- Actionable callouts: whether lift is statistically significant, cost to run flow (development/engagement costs), predicted payback period, and recommended next steps (scale, iterate, or run A/B with larger N).
Implementation notes
- Pipeline: ingestion → raw events store (BigQuery/S3) → user-level enrichment (first_touch resolution, dedupe) → daily cohort aggregates → BI layer (Looker/Tableau).
- Data quality: enforce schema, backfill logic, and monitor attribution drift.
Result: this approach ties deterministic instrumentation to robust statistical comparison and clear dashboards so product can decide which onboarding flow materially increases LTV and by how much.
Given events(event_id, user_id, step_name, occurred_at) that encode a 5-step funnel for a product feature, write a SQL query (BigQuery standard SQL) to compute conversion and drop-off rate between consecutive steps and return the top 5 features (identified by step_name) with highest proportional drop-off. Include sample expected output.
Sample Answer
Approach:
- Infer funnel ordering from when each step first appears (safe when steps are consistent across product).
- Count unique users who reached each step.
- Join each step to the next step in order to compute conversion and proportional drop-off.
- Return top 5 steps (step_name) with highest drop-off to the next step.
WITH step_order AS (
-- infer canonical funnel order by the first time a step appears in the dataset
SELECT
step_name,
MIN(occurred_at) AS first_seen,
ROW_NUMBER() OVER (ORDER BY MIN(occurred_at)) AS step_idx
FROM `project.dataset.events`
GROUP BY step_name
),
step_users AS (
-- unique users who reached each step
SELECT
e.step_name,
so.step_idx,
COUNT(DISTINCT e.user_id) AS users_reached
FROM `project.dataset.events` e
JOIN step_order so USING(step_name)
GROUP BY e.step_name, so.step_idx
),
step_pairs AS (
-- join each step to the next step in funnel order
SELECT
curr.step_name AS step_name,
curr.step_idx,
curr.users_reached AS users_current,
next.users_reached AS users_next
FROM step_users curr
LEFT JOIN step_users next
ON next.step_idx = curr.step_idx + 1
)
SELECT
step_name,
step_idx,
users_current,
IFNULL(users_next, 0) AS users_next,
SAFE_DIVIDE(IFNULL(users_next,0), users_current) AS conversion_rate, -- proportion that moved to next step
1 - SAFE_DIVIDE(IFNULL(users_next,0), users_current) AS dropoff_rate -- proportional drop-off
FROM step_pairs
WHERE users_current > 0
ORDER BY dropoff_rate DESC
LIMIT 5;
Key points:
- SAFE_DIVIDE avoids divide-by-zero; LEFT JOIN ensures final step shows users_next = 0.
- Using MIN(occurred_at) to infer step order assumes steps are globally consistent. If you have an explicit step_index, use that instead.
- For stricter funnel (users must do steps in order), compute per-user max step reached and aggregate — useful if users can perform steps out-of-order.
Edge cases:
- Steps with zero users_current (filtered out).
- Out-of-order events may bias inferred ordering; replace step ordering with canonical mapping when available.
- Duplicate events per user/step handled by COUNT(DISTINCT user_id).
Sample expected output:
step_name | step_idx | users_current | users_next | conversion_rate | dropoff_rate
Feature A | 2 | 12,000 | 3,000 | 0.25 | 0.75
Feature B | 3 | 8,500 | 3,000 | 0.3529 | 0.6471
Feature C | 1 | 50,000 | 20,000 | 0.4 | 0.6
Feature D | 4 | 2,000 | 900 | 0.45 | 0.55
Feature E | 2 | 15,000 | 7,500 | 0.5 | 0.5
This returns the five steps with the largest proportional drop-off to their next step, helping prioritize which step to investigate for UX or technical issues.
How would you evaluate and present the ROI of a UX redesign whose benefits are diffuse and long-term (improved satisfaction, reduced support costs, small lift in retention)? Outline the modeling steps, data required, assumptions to document, and visualization approach to convince leadership to invest.
Sample Answer
Approach summary: build a benefits-cost projection model that converts diffuse UX outcomes into monetized and non-monetized KPIs, present range estimates (conservative/base/optimistic), and surface key assumptions and sensitivity analyses so leadership can see expected ROI and risk.
Modeling steps
- Define time horizon and perspective (e.g., 3-year horizon, company-wide P&L).
- Identify measurable KPIs tied to UX: CSAT/NPS lift → CLTV uplift; retention change → reduced churn; support volume → ticket reduction and agent cost savings; task time → productivity gain; conversion/funnel improvements → revenue lift.
- Baseline & target scenarios: compute current rates (churn, support per user, conversion) and plausible post-redesign estimates (use benchmarks, usability studies, pilot A/B).
- Monetize impacts:
- Revenue uplift = incremental conversion * average order value * number of visitors/users.
- CLTV uplift = (new retention rate – baseline) * average revenue per user * cohort size discounted over time.
- Support cost savings = reduced tickets * cost per ticket (including handling and all-in agent cost).
- Productivity savings = time saved * fully loaded hourly cost.
- Build three-case financial model (conservative/base/optimistic) with annual cash flows, NPV and payback period; include non-monetized qualitative benefits.
- Run sensitivity analysis and break-even (what minimum improvement yields positive NPV).
Data required
- User counts, MAU/DAU, traffic by channel
- Conversion funnels, AOV, revenue per user
- Churn/retention cohorts, historical CLTV
- Support ticket volumes, handle time, cost per ticket
- Time-on-task/usability test results or estimates
- Cost of redesign (design, engineering, QA, rollout, analytics)
- Discount rate and forecast assumptions
Assumptions to document
- Size and representativeness of pilot/A/B
- Attribution window for revenue/retention effects
- Decay or persistence of UX gains over time
- Costs included/excluded (one-time vs ongoing)
- Sensitivity ranges for key drivers (± values)
Visualization & presentation
- Executive one-pager: headline NPV, ROI%, payback, three-case summary.
- Interactive dashboard (Power BI/Tableau) with:
- Inputs panel to toggle assumptions and see live NPV/IRR
- Waterfall chart showing revenue/cost components contributing to ROI
- Cohort retention curves and delta visualization
- Ticket-volume and support-cost savings over time
- Tornado chart for sensitivity (ranked drivers)
- Append detailed model and assumption sheet for auditors.
Convincing leadership: focus on clear dollars and timelines, show conservative case to reduce perceived risk, surface sensitivities to show where to de-risk (pilot, instrumentation), and include qualitative benefits (brand, reduced escalations) as strategic upside.
A Product Manager argues to prioritize a revenue-generating feature that analytics suggest may harm long-term retention. As the BI Analyst, outline a data-driven recommendation showing short-term and long-term trade-offs, including a counterfactual LTV simulation, suggested experiments, and mitigations that could allow partial rollout without harming users.
Sample Answer
Executive recommendation (summary)
- Don’t green-light full rollout yet. Data shows positive immediate revenue uplift but a projected decline in retention that can erode long-term LTV. Recommend staged experiment + mitigations so we capture revenue now while protecting long-term value.
Short-term vs long-term trade-offs (quantified)
- Short-term: +X% ARPU per exposed user (observed from analytics). Immediate revenue = ARPU_new * exposed_users.
- Long-term: observed retention drop Δr (e.g., -3pp at 30 days). LTV effect approximated by cohort LTV = Σ_t (ARPU_t * P(retain to t)) discounted.
- Example counterfactual: baseline 6-mo LTV = $50. With +$2 ARPU month1 but -3pp retention, simulated 6-mo LTV falls to $46 → net loss despite initial revenue.
Counterfactual LTV simulation (how to build)
- Build retention curve by cohort (daily/weekly) and per-user ARPU by month from historical data.
- Define two scenarios:
- Control: baseline retention R0(t), ARPU A0(t)
- Treatment: observed immediate ARPU uplift ΔA(1) and retention shift ΔR(t) (use conservative / pessimistic bounds)
- Compute LTV_t = Σ_{t=1..T} A(t) * R(t) / (1+δ)^t (δ = discount rate)
- Run Monte Carlo over ΔR and ΔA distributions to produce confidence intervals and probability treatment LTV < control.
Suggested experiments
- Phase 1: Randomized A/B test (1:1) for 4–8 weeks with minimum sample to detect:
- Primary metrics: 30d retention, 90d retention, incremental revenue (per user), churn rate
- Secondary: engagement, complaints, NPS, support tickets
- Phase 2: Ramp experiment (1%, 5%, 20%, 100%) with sequential monitoring and pre-specified stopping rules.
- Holdout region: keep geographic or user-segment holdouts for 6 months to measure long-term effects without contamination.
Mitigations to enable partial rollout
- Targeting: limit to low-risk segments (power users, paid subscribers) where retention impact historically lower.
- Soft UX controls: make the revenue feature opt-in or reversible; A/B test wording/placement to reduce annoyance.
- Limits & quotas: cap exposure intensity per user to reduce fatigue.
- Compensation: small loyalty credit / follow-up benefit for users exposed to the change to offset negative sentiment.
- Monitoring & guardrails: real-time dashboard (retention, ARPU, complaints, support) with automated alerts and automatic rollback if retention delta exceeds threshold.
Operational steps I’ll deliver
- Pre-built dashboard: cohort retention, ARPU, LTV simulator with knobs for ΔA and ΔR and Monte Carlo outputs.
- Power analysis: required sample sizes and experiment timelines.
- Weekly experiment report with uplift vs LTV risk, recommendation to ramp/rollback.
Bottom line: run controlled experiments with conservative counterfactual LTV simulations and targeted mitigations to capture short-term revenue while protecting long-term user value.
Unlock Full Question Bank
Get access to all 34 Customer and User Obsession interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.