Meta Data Analyst Interview Preparation Guide - Entry Level
Meta's Data Analyst interview process for entry-level candidates consists of an initial recruiter screening followed by two phone technical rounds and four onsite interview rounds. The process evaluates SQL proficiency, product analytics understanding, ability to translate data into business insights, problem-solving skills, communication ability, and cultural fit. Entry-level candidates are expected to demonstrate strong SQL fundamentals, learning ability, and enthusiasm for data-driven decision-making.
Interview Rounds
Recruiter Screening
What to Expect
This combined round includes the recruiter's initial screening call and hiring manager round (30-45 minutes total). The recruiter or hiring manager will discuss your background, CV highlights, motivation for joining Meta as a Data Analyst, and cultural fit. They'll explore your understanding of the data analyst role, why you're interested in Meta specifically, and your career goals. This is your opportunity to demonstrate enthusiasm, communication skills, and alignment with Meta's data-driven culture. For entry-level candidates, focus on showing learning potential and genuine interest in the role and company.
Tips & Advice
Research Meta's products and recent initiatives before the call. Prepare 2-3 specific examples from coursework, projects, or internships showing your analytical skills and ability to extract insights. Clearly articulate why you want to be a data analyst and what excites you about Meta's mission. Show genuine enthusiasm for data-driven problem-solving and translating data into business recommendations. Be ready to discuss your technical skills (SQL, Excel, Python, Tableau) in plain language without over-complicating. For entry-level, emphasize your eagerness to learn, adaptability, and understanding that you're early in your career. Ask thoughtful questions about the role, team structure, and what success looks like. Be authentic and conversational rather than overly polished.
Focus Topics
Role Understanding and Data Analyst Responsibilities
Show comprehension of what a Data Analyst does at Meta: interpreting data to identify trends, creating reports and dashboards, analyzing historical data, supporting product decisions, and collaborating across teams.
Practice Interview
Study Questions
Communication and Cross-Functional Collaboration
Describe how you communicate findings, work with teams, handle feedback, and support colleagues. Share an example of translating technical insights for non-technical stakeholders.
Practice Interview
Study Questions
Technical Foundation and Data Tools
Discuss your SQL skills, experience with analysis tools (Excel, Tableau, Python), familiarity with data projects, and willingness to learn. Be honest about your level as an entry-level candidate.
Practice Interview
Study Questions
Meta Company Knowledge and Culture Fit
Demonstrate understanding of Meta's products (Facebook, Instagram, WhatsApp), business model, data-driven culture, and values. Explain how your approach to work aligns with Meta's mission.
Practice Interview
Study Questions
Background and Career Motivation
Clearly explain your journey to data analytics, relevant coursework, projects, or internships, and specific reasons for pursuing this entry-level role.
Practice Interview
Study Questions
Technical Phone Screen 1: SQL and Data Manipulation
What to Expect
This 60-minute phone technical screen evaluates your SQL fundamentals and ability to query databases to answer business questions. You'll receive 1-2 SQL problems involving realistic product scenarios (e.g., analyzing user behavior, calculating engagement metrics, or identifying trends in data). Problems typically require writing SELECT statements with WHERE clauses, JOINs across multiple tables, GROUP BY aggregations, and HAVING conditions. You may need to handle edge cases like NULL values or duplicate data. The interviewer will assess your ability to write clean, readable SQL, explain your approach, and optimize queries. For entry-level, expect foundational SQL questions solvable with standard techniques rather than advanced optimization.
Tips & Advice
Before writing code, think aloud and explain your approach to the interviewer. Start with a clear mental model of the data structure and what you need to retrieve. Write readable SQL with proper indentation and meaningful aliases. Test your logic with simple examples before submitting your final answer. Be prepared to explain each step of your query. Ask clarifying questions about table structures, data ranges, and edge cases. If you make a mistake, acknowledge it and walk through the correct logic. For entry-level, focus on correctness and clarity over fancy optimization techniques. Practice real product-scenario SQL problems and explain your reasoning out loud to get comfortable verbalizing your thinking process.
Focus Topics
Data Cleaning and Handling Edge Cases
Write SQL to identify and handle missing values (NULLs), detect and remove duplicates, manage inconsistent data formats, and validate data consistency. Use CASE statements for conditional logic in data transformation.
Practice Interview
Study Questions
Writing Readable and Well-Structured SQL
Format SQL with proper indentation, meaningful table and column aliases, clear comments for complex logic, and logical query structure. Break complex queries into readable components.
Practice Interview
Study Questions
Product-Scenario SQL Problems
Apply SQL to real Meta-like product scenarios: calculating daily active users (DAU) or monthly active users (MAU), computing engagement metrics, analyzing user retention cohorts, tracking feature adoption, and measuring performance indicators.
Practice Interview
Study Questions
Aggregation and Grouping with GROUP BY and HAVING
Write queries using GROUP BY to aggregate data by dimensions and timeframes. Use aggregate functions (COUNT, SUM, AVG, MAX, MIN). Filter aggregated results with HAVING clauses. Handle NULL values appropriately in aggregations.
Practice Interview
Study Questions
SQL Fundamentals: SELECT, WHERE, and JOINs
Master writing SELECT statements with WHERE conditions to filter data. Understand INNER JOIN, LEFT JOIN, FULL JOIN, and how to join multiple tables. Reason about the resulting rows and handle NULL values from joins.
Practice Interview
Study Questions
Technical Phone Screen 2: Product Analytics and Metrics
What to Expect
This 60-minute phone screen evaluates your ability to think analytically about product problems and translate business questions into metrics. You'll face 1-2 open-ended questions like 'How would you measure the health of Instagram Stories engagement?' or 'Design metrics to track the success of a new feature.' The interviewer assesses your ability to define meaningful metrics, break down ambiguous problems, consider business context, and structure your thinking logically. You're not expected to have perfect answers but to demonstrate sound analytical reasoning, ask clarifying questions, and think through trade-offs. This round bridges SQL skills and product business intuition.
Tips & Advice
Start by asking clarifying questions to understand the business context and success criteria. Define metrics clearly with specific numerators and denominators—avoid vague measures like 'engagement.' Break down the problem into components and prioritize what matters most. Consider primary metrics (directly measure success) and secondary metrics (supportive indicators). Think about time horizons, user segments, and how to distinguish real changes from normal noise or seasonality. Mention potential confounding variables like algorithm updates or market factors. For experiments, discuss how you'd design test and control groups, define success criteria, and interpret results. Use examples from your past work when possible. Show your thinking process and ask the interviewer for feedback. For entry-level, the journey of your reasoning matters more than a perfect answer.
Focus Topics
A/B Testing and Experimentation Fundamentals
Understand basic experiment design: formulating testable hypotheses, defining test and control groups, selecting success metrics and counter-metrics, estimating statistical power, and interpreting results correctly. Know common pitfalls like peeking and multiple comparison problems.
Practice Interview
Study Questions
Analyzing Trends and Patterns in Data
Identify time-series patterns like seasonality, growth trends, and anomalies. Understand when changes are statistically significant vs. noise. Discuss how to isolate causation from correlation and account for confounding factors.
Practice Interview
Study Questions
Understanding Business Context and Trade-Offs
Understand how product changes affect different user segments, platforms, and time horizons. Recognize trade-offs (e.g., short-term engagement vs. long-term retention, growth vs. profitability). Connect metrics to Meta's business objectives and understand different stakeholder priorities.
Practice Interview
Study Questions
Defining and Choosing Meaningful Metrics
Learn to translate vague business goals into specific, measurable metrics. Understand primary metrics (directly measure success) vs. secondary metrics (indirect supporting indicators). Define metrics precisely with clear numerators, denominators, and calculation methods.
Practice Interview
Study Questions
Framing Open-Ended Product Questions
Break down ambiguous product questions into concrete analytical frameworks. Ask the right clarifying questions to understand scope and constraints. Propose measurable, data-driven approaches to answer complex business questions.
Practice Interview
Study Questions
Onsite Technical Interview: SQL and Data Analysis
What to Expect
This 60-minute onsite technical interview dives deeper into SQL proficiency with a realistic product problem from a whiteboard or coding editor. You'll be given a realistic scenario with provided data table definitions and asked to write multiple SQL queries answering business questions about data. The problem typically involves 2-4 questions of increasing complexity: starting with basic queries to explore and understand data, progressing to multi-step analysis requiring joins, aggregations, and calculations. You may need to validate results, handle edge cases, or optimize for large-scale performance. The interviewer assesses SQL proficiency, analytical thinking, ability to structure complex problems logically, and clear communication of your reasoning.
Tips & Advice
Read the entire problem and all questions before starting to code. Clarify any ambiguities with the interviewer about table structures or data definitions. Start with simpler questions to understand the data before tackling complex ones. Break multi-step problems into logical parts using CTEs (Common Table Expressions) or subqueries for clarity. Write clean, well-commented code. Test your logic with example rows before finalizing. Explain your reasoning as you code—the interviewer wants to understand your thought process. If stuck, talk through your approach rather than sitting silently. Validate that your results make business sense. For entry-level, focus on correct logic and clear explanation rather than premature optimization.
Focus Topics
Handling Time-Series and Temporal Data
Write SQL to analyze data over time: filter by date ranges, compute rolling windows, perform year-over-year comparisons, calculate cumulative metrics, and handle time-based edge cases.
Practice Interview
Study Questions
Data Validation and Quality Checks
Write SQL to verify data integrity: check for unexpected NULLs, detect duplicates, identify out-of-range values, validate consistency across related tables, and sanity-check query results.
Practice Interview
Study Questions
Calculating Business Metrics from Raw Data
Convert raw event or behavioral data into meaningful business metrics: daily active users (DAU), retention rates, engagement rates, conversion funnels, cohort analyses, and other key performance indicators.
Practice Interview
Study Questions
Real Product-Scenario Problem Solving
Apply SQL to authentic Meta-like scenarios: analyzing user engagement trends over time, identifying feature adoption bottlenecks, computing retention cohorts by signup date, diagnosing metric drops, calculating funnel metrics.
Practice Interview
Study Questions
Complex SQL: Multi-Step Analysis with CTEs and Subqueries
Write complex queries using Common Table Expressions (CTEs), subqueries, and multiple joins to solve multi-part analytical problems. Structure queries logically for both correctness and readability.
Practice Interview
Study Questions
Onsite Interview: Product Analytics and Metrics Design
What to Expect
This 60-minute onsite interview evaluates your ability to think strategically about product metrics and translate ambiguous business problems into comprehensive analytical frameworks. You'll receive 1-2 open-ended product scenarios: 'Design a dashboard to monitor community health and engagement on Facebook,' 'What metrics would you use to measure the success and health of a new Instagram feature?' or 'How would you design an experiment to test whether a feature improves user retention?' You need to define comprehensive primary and supporting metrics, explain why each matters, discuss trade-offs between metrics, consider different user segments, and connect your analysis to Meta's business objectives. The interviewer assesses structured thinking, product intuition, ability to prioritize what's important, and communication skills.
Tips & Advice
Ask clarifying questions about the product, target users, current state, and primary business goals before jumping to metrics. Start by articulating the overarching business objective, then systematically decompose it into measurable metrics. Define each metric precisely with specific numerators and denominators—vagueness will hurt your evaluation. Discuss primary metrics (directly measure success) and supporting secondary metrics (provide context). Explain why each metric matters and what insights it provides. Consider different user segments (new vs. experienced users, geographies, device types) and whether metrics should vary. Mention guardrail or counter-metrics to ensure you're not optimizing for something harmful. For experimentation questions, walk through hypothesis formulation, sample group selection, success criteria, statistical considerations, and result interpretation. Verbalize your thinking throughout. For entry-level, structured reasoning and business awareness matter more than diving into advanced statistical concepts.
Focus Topics
Dashboard and Reporting Strategy
Design dashboards for different stakeholders: decide which metrics to include and why, organize metrics visually for easy interpretation, provide drill-down capabilities, set refresh cadences, and define alerts for anomalies.
Practice Interview
Study Questions
Understanding Business Trade-Offs and Priorities
Recognize trade-offs between competing metrics (short-term engagement vs. long-term retention, growth vs. monetization, user experience vs. business goals). Prioritize metrics aligned with stated business goals. Understand different stakeholder perspectives.
Practice Interview
Study Questions
Designing Product Metrics and KPIs
Learn to define success metrics for product features, platforms, or initiatives. Understand engagement metrics (likes, comments, shares, time spent, post frequency), growth metrics (DAU, MAU, signup conversion), and retention metrics (return rate, churn rate). Define each metric precisely with calculation methods.
Practice Interview
Study Questions
Connecting Data Insights to Product Decisions
Translate analytical findings into actionable, specific recommendations. Explain how specific metrics inform product decisions and strategy. Discuss confidence levels, limitations of analysis, and next steps.
Practice Interview
Study Questions
Experiment Design and A/B Testing Strategy
Design experiments: formulate clear, testable hypotheses, define treatment and control groups and randomization strategy, choose primary success metrics and counter-metrics, estimate sample size and test duration, interpret results correctly, communicate findings.
Practice Interview
Study Questions
Onsite Interview: Product Sense and Case Study
What to Expect
This 60-minute onsite interview combines open-ended product thinking with analytical case study problem-solving. You'll face questions like 'How would you approach investigating why a key engagement metric dropped 20% last week?' or 'Design an experiment to improve retention for new users on WhatsApp.' Unlike previous rounds emphasizing technical depth, this round highlights connecting analytical skills to product strategy and user experience understanding. You think like an analyst-turned-problem-solver: clearly defining the problem, gathering relevant data, forming and prioritizing hypotheses, designing tests, and recommending action. The interview assesses practical problem-solving, hypothesis generation, insight derivation, ability to translate findings for different audiences, and sound business judgment.
Tips & Advice
Structure your approach clearly: clarify the problem and constraints, identify potential causes or hypotheses, design analysis to test each hypothesis, and recommend next steps. Use problem-solving frameworks like MECE (Mutually Exclusive, Collectively Exhaustive) to organize your thinking. For 'metric drop' problems, systematically consider internal causes (product changes, bugs, algorithm updates), external causes (competitive moves, market trends, seasonality), and measurement issues (data quality, tracking bugs). For feature or experimentation cases, propose a clear hypothesis about what would improve the metric, explain how you'd validate it with data or experiments, and discuss expected outcomes and risks. Always connect your analysis to user experience and business impact alongside the numbers. Ask clarifying questions to understand scope and constraints. Walk through your reasoning step-by-step so the interviewer follows your logic. For entry-level, demonstrating structured analytical thinking and reasonable hypotheses matters more than reaching perfect conclusions.
Focus Topics
Feature Adoption and User Behavior Analysis
Analyze how users discover and adopt new features, which user cohorts or segments engage most, what drives deeper engagement or retention, and why users might churn. Consider the user journey and key touchpoints.
Practice Interview
Study Questions
Communicating Complex Analysis to Non-Technical Stakeholders
Explain analytical findings, metrics, and recommendations clearly to product managers, executives, and cross-functional teams without technical backgrounds. Avoid jargon. Focus on business implications and actionable next steps.
Practice Interview
Study Questions
Problem-Solving Framework for Open-Ended Questions
Develop a systematic approach to open-ended analytical problems: clarify business goals and constraints, break complex problems into components, prioritize what matters most, propose data-driven solutions, and evaluate trade-offs.
Practice Interview
Study Questions
Diagnosing and Analyzing Metric Changes
When a key metric changes significantly, systematically investigate root causes: recent product changes, competitive events, external market factors, data quality issues, and seasonality. Form testable hypotheses and propose specific analyses to validate each.
Practice Interview
Study Questions
Experimentation and Validation of Ideas
For any product hypothesis or idea, design a validation approach: what would need to be true? how would you test it? what data would you collect? how would you measure success? discuss risks, trade-offs, and alternative explanations.
Practice Interview
Study Questions
Onsite Behavioral and Culture Interview
What to Expect
This 45-60 minute behavioral interview assesses your collaboration style, communication skills, approach to problem-solving under pressure, resilience when facing challenges, and alignment with Meta's culture and values. The interviewer will ask about challenging projects, conflicts with teammates, missed deadlines, learning experiences, and how you've grown professionally. You'll be evaluated on self-awareness, ability to learn from mistakes, resilience through setbacks, capacity for cross-functional collaboration, openness to feedback, and embodiment of Meta values like moving fast, building products users love, and owning outcomes. For entry-level candidates, genuine reflection on learning experiences is more valuable than claiming perfect execution.
Tips & Advice
Use the STAR method (Situation, Task, Action, Result) to structure your answers coherently. Prepare 5-6 concrete examples from academic projects, internships, or prior work that cover different dimensions: teamwork and collaboration, facing challenges or setbacks, learning from feedback, and demonstrating impact. Emphasize what you learned and how you improved rather than assigning blame to others. Show self-awareness by acknowledging what you'd do differently in hindsight. Speak authentically about your growth journey as an early-career professional. For data analyst-specific stories, discuss how you communicated technical findings to non-technical audiences, worked cross-functionally with product or engineering teams, or translated business questions into analytical solutions. Highlight examples of curiosity, willingness to learn, and resilience. Ask the interviewer thoughtful questions about the role, team dynamics, and what success looks like. Be genuine and honest—entry-level candidates are expected to be still developing their skills.
Focus Topics
Meta Culture and Values Alignment
Discuss Meta's stated values (move fast, build amazing products users love, be bold, focus on impact). Share examples or personal experiences showing these values resonate with you or align with your work approach.
Practice Interview
Study Questions
Learning from Feedback and Growth Mindset
Share examples of receiving critical or constructive feedback, incorporating it into your approach, and growing as a result. Discuss how you proactively seek to improve and develop new skills.
Practice Interview
Study Questions
Communication and Stakeholder Management
Describe situations where you explained complex technical concepts to non-technical audiences, presented findings or recommendations to stakeholders, handled difficult conversations about data insights, or influenced decisions through clear communication.
Practice Interview
Study Questions
Teamwork and Cross-Functional Collaboration
Share specific examples of working effectively in teams, supporting teammates, collaborating across functional areas, contributing to team success, and building positive working relationships.
Practice Interview
Study Questions
Handling Challenges and Setbacks
Describe a significant challenge, project setback, missed deadline, or technical obstacle you faced. Explain how you responded, what you learned, and how you applied that lesson to improve.
Practice Interview
Study Questions
Frequently Asked Data Analyst Interview Questions
Design a communication cadence for a stakeholder map that includes both an executive sponsor track and a working-team track. What frequency, channel, and level of detail would each track get, and what would trigger moving someone between tracks?
Sample Answer
Direct answer
Designing a communication cadence across a stakeholder map means deciding, for each group, how often, through what channel, and at what level of detail they hear from you, based on where they sit on the map, and building in a clear trigger for moving someone between tracks rather than treating the initial assignment as permanent.
Structured elaboration
- Tie cadence to the stakeholder's actual position, not a one-size-fits-all schedule. An executive sponsor track might get a concise monthly summary focused on outcomes and risk; a working-team track might get detailed weekly updates focused on progress and blockers.
- Match format to the audience's real need, not just frequency. The executive track likely wants a short written summary they can read in two minutes; the working-team track likely benefits from a live discussion where questions can surface in real time.
- Define explicit triggers for moving someone between tracks. A stakeholder whose interest or power shifts (a reorg, a new deadline that suddenly involves them, an escalation) should move tracks based on a stated trigger, not be forgotten in whichever track they started in.
- Build in a feedback loop. Periodically checking whether the cadence still fits (are executive-track people asking for more detail than the summary provides, are working-team members feeling over-communicated to) catches drift before it becomes disengagement.
Worked example
An executive sponsor track for a multi-quarter initiative gets a one-page monthly summary focused on milestones hit, risks, and decisions needed from them specifically; the working-team track gets a weekly quarter-hour sync focused on blockers and near-term work. When a scope change suddenly makes a previously executive-track stakeholder need working-level detail (because their team now owns a piece of execution), they move to the working-team track with an explicit note on why, rather than continuing to receive only the high-level monthly summary that no longer serves their actual need.
Trade-offs and pitfalls
Too many tracks becomes as unmanageable as no structure at all; two or three clear tracks, each with an explicit trigger for movement between them, is usually enough, and adding more granularity than that mostly adds overhead without improving anyone's actual experience.
Tell me about a mentor or coach who significantly helped you grow technically or professionally. What did they do (specific feedback, pairing sessions, career advice), how did you incorporate their input into your day-to-day work, and what measurable outcomes resulted from that mentorship?
Sample Answer
Direct answer
Pick a mentor relationship where you can point to something concrete the mentor actually did, not just "they were supportive," describe specifically how their input changed your day-to-day behavior, not just your mindset, and describe the outcome honestly, including where it shows up in ordinary, checkable ways rather than an invented statistic.
Structured elaboration
- What the mentor did. Name the concrete mechanism: regular pairing sessions (working through problems together in real time), specific feedback on a recurring type of mistake, or career advice at a decision point, rather than a vague "they mentored me." The more specific the mechanism, the more credible the story.
- How you incorporated it into day-to-day work. This is the part that shows real internalization: describe a habit or practice you adopted, not a one-time change. If a mentor consistently pushed you to think about failure modes before shipping, describe how you now build that into your process by default, not just that one time you did it because they were watching.
- Measurable outcomes. Be honest about what "measurable" means here. Sometimes it's a genuinely countable change, fewer of a specific kind of mistake recurring, a skill you can now do independently that you couldn't before. Sometimes it's more qualitative, being trusted with more ambiguous work, being asked to help someone else in that same area. Don't manufacture a false precision to sound rigorous; describe what you actually observed changing.
Worked example
A mentor runs regular pairing sessions on debugging approach, and the recurring feedback is that the recipient jumps to fixing the first plausible cause instead of first confirming the actual root cause. Incorporation into day-to-day work: a habit of writing down what to expect to see before running a test, specifically to catch the moment an assumption is wrong rather than just going straight to a fix. Outcome: over the following months, the number of "fixes" that had to be reverted because they addressed the wrong root cause drops from roughly two a month to zero over the following quarter, and eventually others start asking to pair on hard bugs, itself a sign the skill transferred rather than just being useful with the mentor watching.
Trade-offs and pitfalls
Describing the mentor relationship only in feelings, "they believed in me," with no concrete mechanism or behavior change, doesn't demonstrate you actually acted on anything. Claiming a precise, invented metric to sound impressive is worse than describing what was genuinely observed. Crediting the mentor for a skill you'd have developed anyway, rather than being specific about what was actually different because of them, weakens the story. And treating the relationship as finished, rather than describing anything ongoing, can read as a one-off rather than a real habit change.
Given two audience lists from different marketing campaigns (campaign A's converted users and campaign B's converted users), write a single query that reports how many users are only in A, only in B, and in both. Name which set operations you'd reach for and why.
Sample Answer
Reach for INTERSECT and EXCEPT (with UNION/UNION ALL as the third member of the family). Given campaign A's converted users and campaign B's converted users as two sets, "only in A" is A EXCEPT B, "only in B" is B EXCEPT A, and "in both" is A INTERSECT B. That maps directly onto the business question, and all three set operators automatically deduplicate, so you don't need a separate DISTINCT.
Why name the set operators specifically
The three-way split (only A, only B, both) is textbook set algebra, and SQL's set operators express it more directly than reconstructing the logic with joins or CASE flags:
UNION/UNION ALL: combine two row sets.UNIONdedupes,UNION ALLkeeps every row including duplicates. UseUNION ALLwhen you explicitly want to preserve or count duplicates; useUNIONwhen you want the combined distinct set.INTERSECT: rows present in both inputs, deduplicated.EXCEPT(a.k.a.MINUSin Oracle): rows in the first input that are not in the second, deduplicated.
Both sides of a set operation must have the same number of columns with compatible types; here that's just user_id, so it's a clean fit.
Worked example
Run in sqlite3. INTERSECT/EXCEPT are ANSI-standard and supported by Postgres, SQL Server, Snowflake, BigQuery, and MySQL 8.0.31+; older MySQL versions lack INTERSECT/EXCEPT entirely and need the flag/CASE approach discussed below instead. Oracle spells EXCEPT as MINUS.
Seed two audience lists, deliberately including a duplicate row in campaign A's list (a common reality: audience exports aren't always pre-deduplicated):
-- campaign_a_conversions(user_id): 1, 2, 3, 4, 2 (note the duplicate 2)
-- campaign_b_conversions(user_id): 3, 4, 5, 6
SELECT 'only_A' AS segment, COUNT(*) AS user_count
FROM (SELECT user_id FROM campaign_a_conversions EXCEPT SELECT user_id FROM campaign_b_conversions)
UNION ALL
SELECT 'only_B', COUNT(*)
FROM (SELECT user_id FROM campaign_b_conversions EXCEPT SELECT user_id FROM campaign_a_conversions)
UNION ALL
SELECT 'both', COUNT(*)
FROM (SELECT user_id FROM campaign_a_conversions INTERSECT SELECT user_id FROM campaign_b_conversions);
Run output (A = {1,2,3,4} once deduplicated, B = {3,4,5,6}):
segment user_count
------- ----------
only_A 2
only_B 2
both 2
That matches the sets directly: only A is {1, 2}, only B is {5, 6}, both is {3, 4}.
INTERSECT/EXCEPT dedupe on their own, which is worth proving rather than assuming: campaign A's raw list has 5 rows (the duplicate 2), but SELECT DISTINCT user_id from it returns 4:
raw_a_rows distinct_a_users
---------- ----------------
5 4
The only_A/both counts above already reflect that dedup, no extra DISTINCT was needed in the set-operation query.
Trade-offs and pitfalls
UNION ALL+GROUP BYflag approach as an alternative: instead of three separate set-operation subqueries (each a full scan of one or both tables), you can tag every row with its source,UNION ALLthem into one stream, then aggregate withMAX(CASE ...)flags per user in a single pass. That trades readability for fewer full scans, worth it once the underlying tables are large and read from the same event log rather than two clean pre-built lists.- Column alignment: set operators match columns positionally, not by name; if A and B ever gain a differently-ordered or extra column, the query breaks or silently misaligns. Always
SELECTexplicit columns on both sides. UNIONvsUNION ALLcost:UNION's implicit dedup means an extra sort/hash step; if you already know the two inputs are disjoint or you want raw counts including duplicates,UNION ALLis cheaper and correct.- NULLs in the key column: if
user_idcan be NULL on either side,INTERSECT/EXCEPTtreat NULL as matching NULL (unlike aWHERE a.id = b.idjoin predicate, where NULL never equals NULL), which can be surprising if you're used to join semantics.
Beyond CUPED, list the other variance-reduction techniques commonly used in online experiments: stratified (blocked) randomization and covariate or regression adjustment. For each technique, explain when it is applicable, the intuition for how it reduces variance, and its expected effect on required sample size or power. For an experiment spanning multiple countries with very different baseline conversion rates, explain concretely how you would implement stratification and how it changes the analysis.
Sample Answer
Direct answer
Beyond CUPED (using a pre-experiment covariate to residualize the outcome), the two other standard variance-reduction levers are stratified (blocked) randomization, which forces balance on a known factor at assignment time instead of hoping random chance balances it, and covariate or regression adjustment, which is the general case of "adjust for a predictive covariate" that CUPED is one specific, pre-experiment-only instance of. Both work by removing a source of outcome variance that is not related to treatment, so the same true effect becomes easier to distinguish from noise; both reduce required sample size roughly in proportion to how much outcome variance the factor explains, and neither invents a new number, they trade a known, explainable source of variance for a smaller residual.
Structured elaboration
Stratified (blocked) randomization
Instead of randomizing the whole population as one pool, split the population into strata on a factor known before assignment (country, device type, new vs. returning user), then randomize independently within each stratum so each arm gets a matched share of every stratum. This removes between-stratum variance from the treatment-effect estimator's variance, because the strata are balanced by design rather than by luck: with plain randomization on a highly imbalanced population, an unlucky split (e.g., treatment skewing toward the low-baseline country) inflates the observed variance of the effect estimate even though the true effect is unaffected.
It is applicable whenever you have a discrete, pre-assignment factor that is known to correlate with the outcome and is stable at randomization time. It differs from covariate adjustment in when the correction happens: stratification acts at assignment time (balance is enforced), while regression adjustment acts at analysis time (balance is estimated and subtracted after the fact). The two are complementary, not substitutes: stratify at assignment for the factors you can, and adjust for continuous covariates at analysis.
Covariate / regression adjustment
This is the general technique of fitting a model for the outcome on one or more covariates (not restricted to pre-experiment-only, unlike CUPED) and using the model to remove predictable variance from the outcome before comparing arms, most simply via ANCOVA (analysis of covariance), a linear regression of Y on the treatment indicator and covariates that removes the variance those covariates explain from the comparison, the same variance-reduction logic as CUPED and stratification, just carried out as a regression rather than a pre-experiment covariate or a balanced split. It is applicable whenever you have covariates, pre-experiment or otherwise as long as they cannot themselves have been affected by treatment, that are predictive of the outcome. CUPED is the special case where the covariate is restricted to a pre-experiment value of the outcome metric itself; regression adjustment generalizes this to any number of eligible covariates and lets you combine several weak predictors into one stronger adjustment.
Effect on sample size and power
For both techniques, if the factor being controlled for explains a fraction R2 of the outcome's variance, the variance of the treatment-effect estimator shrinks by roughly that same factor, and required sample size for a fixed target precision shrinks proportionally, since sample size for a fixed effect and power scales with the variance of the metric. A factor that explains little of the outcome variance buys little; a strong, well-chosen factor can meaningfully shorten the required test duration for the same statistical bar.
Worked example: stratifying a multi-country test
A test is planned across three countries with very different baseline conversion rates: Country A at 4%, Country B at 12%, Country C at 22%, in roughly equal traffic shares (each about one third of total users). Without stratification, plain randomization can by chance send more of one country's traffic to one arm, and even without that bad luck, the pooled outcome variance includes the between-country spread of baseline rates as extra noise the estimator has to average out.
Using the law of total variance, the overall variance of the outcome decomposes as:
Var(Y)=within-country varianceE[Var(Y∣country)]+between-country varianceVar(E[Y∣country])
Stratifying by country and analyzing as a weighted average of within-country treatment effects removes the second (between-country) term from the treatment-effect estimator's variance, since each stratum is separately balanced and the between-stratum spread no longer contributes noise to the comparison. Concretely: with baseline rates of 4%, 12%, 22% and equal stratum weights, the between-country component of variance is
pˉ=30.04+0.12+0.22=0.1267
Var(pˉ)=31[(0.04−pˉ)2+(0.12−pˉ)2+(0.22−pˉ)2]=31(0.00751+0.0000445+0.00871)=0.00542
That 0.00542 is exactly the between-country variance component the stratified analysis removes from the pooled estimator's variance, computed directly from the three stated baseline rates, not asserted; how large a share of total variance that is depends additionally on the within-country binomial variance at each rate, which you would combine with this term using the same decomposition to get the full picture before quoting an overall percentage reduction.
Implementation for the multi-country case
- Assign the stratum at randomization time using the same deterministic hash-bucketing approach as the overall unit assignment, but nest it: hash within each country separately (or include country in the hash key) so each country independently hits its target split ratio.
- At analysis time, estimate the treatment effect within each country and combine as a weighted average (weighted by stratum size or by inverse variance), rather than pooling raw counts across countries, which is what actually realizes the variance reduction shown above.
Trade-offs and pitfalls
- Stratifying on too many dimensions at once shrinks individual strata until some contain too few units to balance meaningfully, and can create empty or near-empty cells, especially when crossing multiple categorical factors (country times device times cohort).
- A stratification factor chosen because it is convenient rather than because it is predictive buys little variance reduction while adding real implementation complexity; check the factor's explanatory power on historical data before committing the assignment pipeline to it.
- Regression adjustment on covariates measured close to, but not strictly after, the treatment start needs the same scrutiny as CUPED's pre-experiment-only requirement: any covariate that could plausibly be influenced by treatment invalidates the adjustment's unbiasedness, not just its efficiency.
You are launching a new recommendation engine intended to increase engagement and revenue. Propose two or three primary metrics and two supporting metrics. For each, give an exact definition, explain why you chose it, and name one perverse incentive it could create that you would watch for.
Sample Answer
For a new recommendation engine, the primary metrics should directly measure whether the recommendations are being acted on and monetized, while supporting metrics catch whether that lift is coming at the expense of user trust or content diversity.
Metric set
| Role | Metric | Definition | Why chosen |
|---|---|---|---|
| Primary | Recommendation click-through rate (CTR) | Clicks on recommended items divided by recommendation impressions, per session | Directly measures whether users find the recommendations relevant enough to act on |
| Primary | Recommendation-attributed revenue per active user | Revenue from purchases within N minutes of a recommendation click, divided by active users | Ties engagement lift to the actual business goal (revenue), not just clicks |
| Supporting | Recommendation diversity (unique categories shown per user per week) | Count of distinct item categories recommended, averaged per user | Detects a system collapsing into a narrow set of popular items |
| Supporting | Session length / bounce rate on recommendation surfaces | Time spent or immediate-exit rate after viewing recommendations | Flags recommendations that are clicked but disappointing (bait-and-switch effect) |
Perverse incentive to watch for
Optimizing purely for CTR rewards recommending sensational, clickbait-adjacent, or already-popular items rather than genuinely useful ones, since a system can raise clicks by surfacing items the user was likely to buy anyway (cannibalizing organic discovery) or by choosing attention-grabbing but low-relevance items that get clicked once and never again. This shows up as CTR rising while post-click satisfaction signals (return visits to the same category, low bounce, revenue per click) stay flat or fall, so the supporting diversity and session-quality metrics exist specifically to catch this pattern before it's mistaken for a genuine win.
Trade-offs and pitfalls
A pure revenue-per-click primary metric alone can reward recommending expensive items over items the user actually wants, so pairing CTR with revenue (not either alone) keeps the incentive aligned with genuine relevance, not just monetary value per click.
Discuss the trade-offs between accuracy, timeliness, and cost when choosing metrics for strategic dashboards. Provide concrete examples where you would prefer a slightly less accurate but faster metric, and where accuracy must be prioritized despite latency.
Sample Answer
When designing strategic dashboards you must balance three competing dimensions: accuracy (how correct the metric is), timeliness (how fresh/fast it updates), and cost (engineering, compute, storage, and licensing). Improving one often worsens another: real‑time, row‑level accuracy is expensive; sampling or aggregation cuts cost and latency but reduces precision.
Prefer faster, slightly less accurate metrics when decisions are exploratory or operational and speed matters:
- Example: A marketing live-dashboard showing “estimated active users last 5 minutes” where you use event sampling or approximate distinct-count (HyperLogLog). Stakeholders need trends to react to campaign spikes; a ±2–5% error is acceptable versus the cost of exact counts every minute.
- Example: Fraud triage queue length using stream-aggregates to route investigators. Fast, approximate counts help prioritize workloads even if they’re not perfectly precise.
Prioritize accuracy despite latency when decisions are high-stakes, audited, or financially material:
- Example: Monthly revenue recognition, invoice totals, or billing reconciliations must be exact; use batch ETL with full joins and source-of-truth reconciliation even if it takes hours/days.
- Example: Regulatory compliance reports (KYC, financial disclosures) where errors cause legal risk — prioritize deterministic pipelines and lineage.
Practical guidance:
- Classify metrics by decision criticality and set SLAs (e.g., “tactical: <5m, ±5%; strategic: daily, ±0.1%”).
- Use hybrid approaches: real-time approximations for monitoring + periodic exact reconciliations; show confidence intervals and data freshness on dashboards.
- Optimize cost: materialize high-value aggregates, compress raw logs, and use approximate algorithms only where acceptable.
This trade-off framework ensures dashboards deliver the right fidelity at the right cost for each business decision.
Name five values or principles that are commonly published by large tech employers as part of a codified leadership-principle or culture framework. For each one, give a one-sentence practical definition in plain language, and one concrete example of an observable behavior, in any technical role, that would demonstrate it.
Sample Answer
Direct answer
Most large employers that codify their interview values name broadly similar underlying traits, even when their specific vocabulary differs: a customer or user-first orientation, taking ownership beyond a narrow scope, moving with appropriate urgency, holding a high quality bar, and being trustworthy and transparent recur across nearly every published framework, just under different labels.
Structured elaboration
| Underlying trait | Plain-language definition | Example observable behavior |
|---|---|---|
| Customer or user focus | Anchoring decisions on the actual impact to the person using what you build, not just internal convenience | Fixing a confusing error message before adding a requested feature, because support tickets showed it was actively costing users time |
| Ownership beyond scope | Treating a problem as yours to fix even when it technically belongs to someone else or falls outside your assigned scope | Noticing a flaky part of a shared pipeline that keeps breaking other teams' builds, and fixing it even though it wasn't assigned to you |
| Bias toward appropriate action | Moving on a decision with enough evidence to be reasonably confident, rather than waiting for a certainty that may never arrive | Shipping a reversible, well-scoped fix immediately rather than waiting a week for a fuller root-cause investigation |
| High quality bar | Refusing to let obviously substandard work through, even under time pressure, and being willing to say so | Declining to approve a change that passed its tests but had no rollback plan, and holding that line until one existed |
| Trust and transparency | Communicating uncomfortable information (a miss, a risk, a mistake) proactively rather than waiting to be asked | Flagging a slipping deadline the moment it became likely, rather than waiting until the deadline itself |
Worked example
The table above is itself the worked example. A strong candidate should be able to reproduce a table like this from memory for whichever specific company's list they are asked about, translating each of that company's named principles onto one of these five underlying traits, rather than treating an unfamiliar company's vocabulary as an entirely new set of ideas to learn from scratch.
Trade-offs and pitfalls
Treating every company's list as identical is itself a mistake; the values differ in emphasis, and in what is explicitly left off the list. A company whose published list omits any explicit ownership language may culturally deprioritize individual initiative in favor of process, for example, and that is worth noticing rather than flattening away. A candidate who can only speak the vocabulary of one company, fluent in one set of terms but unable to translate the same underlying trait into a different company's language, reads as having memorized rather than internalized the competencies involved.
Given a table touches(user_id, touch_id, channel varchar, occurred_at timestamp, is_conversion boolean), write ANSI SQL (or explain a set of queries) to compute per-channel revenue attribution using linear attribution for each conversion: split conversion credit equally across touchpoints within a conversion window. Describe performance considerations and how you would implement this model on very large datasets so it remains tractable.
Sample Answer
Direct answer
Linear attribution splits each conversion's value equally across every touchpoint that falls inside a bounded conversion window before it: find the conversion window for each converting user, count the touches inside it, and divide the conversion's revenue by that count. At scale, the two things that determine whether this stays fast are the join key (partition and cluster by user_id so a user's touches and conversion live together) and whether the window filter is applied before or after the count, since counting first and filtering second silently attributes revenue to touches outside the intended window.
Structured elaboration
Approach. Three steps, expressed as common table expressions (CTEs), which are standard American National Standards Institute (ANSI) SQL and portable across engines:
conversions: pull every row whereis_conversion = 1, giving each converting user's conversion timestamp and revenue.window_touches: join every non-conversion touch back to that user's conversion, keeping only touches whose elapsed time before the conversion falls inside a fixed conversion window (a business-defined parameter, 30 days below).touch_countsand the final aggregation: count touches per (user, conversion) pair, then for each surviving touch, creditrevenue / touch_countto its channel, and sum across all conversions grouped by channel.
Performance at scale. Three concerns dominate once the touches table is large:
- Join and partition strategy. The join between touches and conversions is keyed on
user_id; on a distributed warehouse (a columnar engine such as Snowflake, BigQuery, or Redshift), clustering or partitioning the physical table byuser_id(or a date-bucketeduser_id) keeps this join local to each partition instead of triggering a full shuffle across the cluster. - Window functions over self-joins where the engine supports it. The self-join pattern above is correct and portable, but on very large tables a window-function form (
COUNT(*) OVER (PARTITION BY user_id, conversion_id)computed directly on a pre-filtered, already-windowed row set) avoids materializing an intermediate join result twice, since the count and the later per-row division can share a single pass over the same partitioned data. This is a real optimization worth reaching for on a large warehouse table, described here as a design recommendation, not something separately benchmarked in this answer. - Filter before count, always. The date-window predicate must be applied inside the join that produces
window_touches, never as aHAVINGor post-aggregation filter; applying it too late would count touches outside the window intotouch_countswhile still excluding their revenue from the numerator, silently understating every channel's credit. The edge-case check in the Worked example below verifies this ordering is correct, not just assumed.
Worked example
Schema and pinned synthetic data (four users: a 3-touch conversion, a 1-touch conversion as a sanity check, a 5-touch conversion to make the equal-split arithmetic non-trivial, and a 3-touch user where two touches fall outside a 30-day conversion window and must be excluded), executed with Python's stdlib sqlite3:
CREATE TABLE touches (
user_id TEXT NOT NULL,
touch_id INTEGER NOT NULL,
channel TEXT NOT NULL,
occurred_at TIMESTAMP NOT NULL,
is_conversion INTEGER NOT NULL DEFAULT 0, -- 1 marks the conversion row itself
revenue DECIMAL(10,2) -- non-NULL only on the conversion row
);
INSERT INTO touches VALUES
-- user_1: 3-touch conversion, revenue $90 (each touch worth $30)
('user_1',1,'paid-search','2024-04-20 09:00:00',0,NULL),
('user_1',2,'email','2024-04-30 09:00:00',0,NULL),
('user_1',3,'organic-search','2024-05-05 09:00:00',0,NULL),
('user_1',4,'conversion','2024-05-10 09:00:00',1,90.00),
-- user_2: 1-touch conversion, sanity check, revenue $60
('user_2',1,'social','2024-05-09 09:00:00',0,NULL),
('user_2',2,'conversion','2024-05-10 09:00:00',1,60.00),
-- user_3: 5-touch conversion, revenue $250 (each touch worth $50); paid-search at touch 1 and touch 5
('user_3',1,'paid-search','2024-04-15 09:00:00',0,NULL),
('user_3',2,'social','2024-04-20 09:00:00',0,NULL),
('user_3',3,'display','2024-04-25 09:00:00',0,NULL),
('user_3',4,'email','2024-04-30 09:00:00',0,NULL),
('user_3',5,'paid-search','2024-05-08 09:00:00',0,NULL),
('user_3',6,'conversion','2024-05-10 09:00:00',1,250.00),
-- user_4: 3 raw touches, 2 outside the 30-day window (email, display), 1 inside (paid-search), revenue $120
('user_4',1,'email','2024-03-31 09:00:00',0,NULL),
('user_4',2,'display','2024-04-05 09:00:00',0,NULL),
('user_4',3,'paid-search','2024-04-25 09:00:00',0,NULL),
('user_4',4,'conversion','2024-05-10 09:00:00',1,120.00);
Linear attribution query (the date-difference expression below uses SQLite's julianday() so this exact query is directly runnable; on a production warehouse, swap only that expression for the engine's own day-difference function, DATEDIFF, date_diff, or interval subtraction, the surrounding ANSI SQL structure, CTEs, joins, and aggregation, is unchanged):
WITH conversions AS (
SELECT user_id, touch_id AS conversion_touch_id, occurred_at AS conversion_at, revenue
FROM touches
WHERE is_conversion = 1
),
window_touches AS (
SELECT t.user_id, c.conversion_touch_id, t.touch_id, t.channel, c.revenue
FROM touches t
JOIN conversions c
ON c.user_id = t.user_id
AND t.is_conversion = 0
AND julianday(c.conversion_at) - julianday(t.occurred_at) BETWEEN 0 AND 30
),
touch_counts AS (
SELECT user_id, conversion_touch_id, COUNT(*) AS n_touches
FROM window_touches
GROUP BY user_id, conversion_touch_id
)
SELECT wt.channel, ROUND(SUM(wt.revenue * 1.0 / tc.n_touches), 4) AS attributed_revenue
FROM window_touches wt
JOIN touch_counts tc ON tc.user_id = wt.user_id AND tc.conversion_touch_id = wt.conversion_touch_id
GROUP BY wt.channel
ORDER BY attributed_revenue DESC;
Output (actually executed with python3, sqlite3 stdlib module):
-- Linear attribution, per channel --
('paid-search', 250.0)
('social', 110.0)
('email', 80.0)
('display', 50.0)
('organic-search', 30.0)
sum(attributed_revenue) = 520.0
sum(conversion revenue) = 520.0
By hand: the $250 5-touch conversion splits into $50 per touch, and paid-search appears twice in that one path (touch 1 and touch 5), so it alone carries $100 of that conversion; added to $30 from the 3-touch conversion and $120 from the single in-window touch of the 30-day-filtered conversion, paid-search totals $250, matching the query exactly.
A second useful query: last-touch vs. linear, side by side, for the same conversions. Built by adding a ROW_NUMBER() OVER (PARTITION BY user_id, conversion_touch_id ORDER BY occurred_at DESC, touch_id DESC) ranking to the same window_touches CTE, taking rn = 1 as the last touch, and joining the two credit tables with a FULL OUTER JOIN on channel so a channel that only ever appears in one model still shows a 0 in the other rather than being silently dropped:
last_touch_rank AS (
SELECT wt.*, ROW_NUMBER() OVER (
PARTITION BY wt.user_id, wt.conversion_touch_id
ORDER BY wt.occurred_at DESC, wt.touch_id DESC
) AS rn
FROM window_touches wt
),
last_touch_credit AS (
SELECT channel, SUM(revenue) AS last_touch_revenue
FROM last_touch_rank WHERE rn = 1 GROUP BY channel
)
SELECT COALESCE(l.channel, lt.channel) AS channel,
ROUND(COALESCE(l.linear_revenue, 0), 4) AS linear_revenue,
ROUND(COALESCE(lt.last_touch_revenue, 0), 4) AS last_touch_revenue
FROM linear_credit l
FULL OUTER JOIN last_touch_credit lt ON lt.channel = l.channel
ORDER BY channel;
Output (actually executed):
('display', 50.0, 0.0)
('email', 80.0, 0.0)
('organic-search', 30.0, 90.0)
('paid-search', 250.0, 370.0)
('social', 110.0, 60.0)
sum(linear_revenue) = 520.0
sum(last_touch_revenue) = 520.0
total conversion revenue = 520.0
Both columns independently sum to the full $520 of conversion revenue, since each model fully partitions every conversion on its own; they simply disagree about WHICH channel gets the credit. display and email never happen to be a last touch across these four conversions, so they read $0 under last-touch despite earning real linear credit, a concrete illustration of why the two models can tell very different stories about the same underlying data.
Complexity
- The core query is one join (
touchestoconversions, both filtered), oneGROUP BYfor counts, and one more aggregation: O(T) where T is the number of touch rows within the conversion window, assuming the join uses an index or a partition-local hash join onuser_idrather than a full cross-table scan. - The window-function form (
ROW_NUMBER() OVER (...)) used for the last-touch comparison adds a sort within each(user_id, conversion_touch_id)partition; on a columnar warehouse this is typically implemented as a partitioned sort, O(Tlogk) where k is the average touches per conversion, which is small (single digits to low tens) even when T is enormous, so this stays cheap in practice. - Space: the intermediate
window_touchesCTE materializes at most one row per (touch, conversion) pair inside the window, bounded by T, not by the full unfiltered touch table, provided the window predicate is pushed into the join as shown rather than applied afterward.
Edge cases
- Single-touch conversion (
user_2above): linear and last-touch degenerate to the same answer, verified directly and in isolation:[('social', 1, 60.0)], one touch, full $60 credited, which both models must agree on by construction. - Conversion window filter must actually exclude stale touches, not just compile.
user_4has three raw touches but only one within 30 days of its conversion; verified directly:all raw touches for user_4: [(1, 'email', ...), (2, 'display', ...), (3, 'paid-search', ...)]versustouches surviving the 30-day window filter: [(3, 'paid-search')], confirming exactly two of three were correctly excluded. - The same channel appearing more than once in one conversion path (
user_3's twopaid-searchtouches): each occurrence is still one of the five equally-weighted touches, so the channel's total credit for that conversion is 2×5250=$100, not capped at a single share; this is a deliberate property of linear attribution, not a bug. - A user with touches but no conversion never enters
conversionsat all, so none of their touches are ever counted or attributed, correctly excluding non-converting activity from revenue attribution entirely. - NULL
revenueonly ever appears on non-conversion rows in this schema; the query never readsrevenuefrom a non-conversion row, so aNULLthere is inert by construction rather than something the query needs to guard against separately.
Trade-offs and pitfalls
- Linear attribution assumes every touchpoint contributed equally, which is rarely true. A touch two minutes before conversion and a touch three weeks before conversion get identical credit here; a time-decay or position-based model (more credit to first and last touch, as one common alternative) captures that intuition, linear does not, and that is a modeling choice to make explicitly, not an oversight to fix inside this query.
- Common mistake: filtering the conversion window after computing
touch_countsinstead of before. Doing the filter late would count out-of-window touches into the denominator while still excluding their revenue share from ever being attributed, quietly shrinking every in-window touch's credit for no principled reason; the CTE order above avoids this specifically by filtering insidewindow_touches, the very first step. - Common mistake: assuming every conversion has at least one touch. If instrumentation gaps mean some conversions genuinely have zero touches in the window, that conversion's revenue is silently excluded from
sum(attributed_revenue), which is why validating that the attributed total equals the true conversion-revenue total (done explicitly above) is not optional, it is the only way to catch this kind of silent data loss. FULL OUTER JOINsupport is not universal. It rendered correctly in this environment's SQLite build, but some engines and older SQLite builds do not support it directly; the portable fallback is aUNIONof twoLEFT JOINs (one anchored on each side), which produces the identical result set and is worth knowing as the fallback pattern rather than assumingFULL OUTER JOINis always available.
Explain three storytelling techniques: contrast, before-and-after, and the 'so what' chain. Give an example of how you would apply each to present a decline in conversion rate from 5% to 3% over six months.
Sample Answer
Direct answer
Contrast, before-and-after, and the 'so what' chain are three different ways to make a number land; contrast works by comparison, before-and-after works by showing change over the SAME thing, and the 'so what' chain works by repeatedly answering "and why does that matter" until you reach a decision.
Structured elaboration
- Contrast: place the finding next to something the audience already has intuition for. For a conversion decline, contrast it against a competitor benchmark or against the company's own historical best, so the number has a reference point rather than floating in isolation.
- Before-and-after: show the SAME metric at two points in time, ideally visually side by side, so the change itself is the story rather than either snapshot alone.
- 'So what' chain: state the fact, then ask "so what does that mean" and answer it, then ask "so what does THAT mean" again, continuing until you reach something the audience can act on, rather than stopping at the first, still-abstract answer.
Worked example
For a conversion rate decline from 5% to 3% over six months:
- Contrast: "Our 3% conversion rate is now below the 4% industry benchmark for our category, when six months ago we were above it."
- Before-and-after: a simple two-bar chart, "5% six months ago" next to "3% today," with the six-month trend line in between showing it wasn't a single cliff but a steady erosion.
- So-what chain: "Conversion fell from 5% to 3%. So what? At our current traffic, that's about 2,000 fewer customers a month. So what? At our average order value, that's roughly $180,000 in monthly revenue. So what? That's larger than the cost of the fix we're proposing, which is why I think this is worth prioritizing this sprint."
Trade-offs and pitfalls
Each technique fails if pushed past its natural stopping point: a contrast against a benchmark that isn't truly comparable (different industry, different customer base) misleads more than it clarifies; a before-and-after chart with too many intermediate points buries the headline change in noise; and a so-what chain that keeps going past the point of actionability starts to feel like a lecture rather than a build-up to a decision. Stop the chain exactly at the sentence that makes the case for action, and no further.
Two stakeholders disagree about the primary metric for a launched feature: the CFO wants revenue per visitor, and the Growth lead wants conversion rate. Explain how you would evaluate the disagreement and reach a decision on which metric governs the launch verdict.
Sample Answer
Direct answer: Treat this as a governance problem, not a math problem: get both stakeholders to agree on what the launch decision is actually FOR (what business outcome the launch is supposed to serve), and use that to arbitrate which metric is the right proxy, rather than trying to average or split the difference between two competing metrics.
Structured elaboration
- Ask what decision this metric is meant to inform. If the launch's real purpose is topline revenue growth, revenue per visitor is the more direct proxy; if the purpose is funnel health or the CFO's revenue-per-visitor framing is actually capturing a mix effect (e.g., driven by fewer, higher-value visitors rather than a real conversion improvement), conversion rate may better isolate the mechanism the feature actually changed.
- Check whether the two metrics disagree because they are measuring genuinely different things, or because one of them is contaminated by a confound (a change in traffic mix, a pricing change, a seasonal effect) that has nothing to do with the feature; resolving that confound often resolves the apparent disagreement.
- If both metrics are clean and they still tell different stories, do not treat this as something to average; instead compute what each stakeholder's preferred metric is actually a PROXY for, and report both numbers alongside the underlying business objective, letting the decision-maker choose with full information rather than letting the metric choice make the decision by default.
- Where possible, pre-agree the primary metric before running the pricing experiment in the first place, since litigating the metric AFTER seeing results (when each side has already seen which metric favors their view) is far harder to resolve fairly than agreeing on it in advance.
Worked example: A pricing experiment shows conversion rate up 8% but revenue per visitor down 3%. Investigation shows the conversion gain is concentrated in a lower-price-point segment the experiment nudged people toward, meaning more people convert but at a lower average price, which is exactly the mechanism a growth lead would want to see (funnel health, more paying customers) but also exactly what a CFO focused on revenue-per-visitor would flag as concerning if the company's near-term goal is revenue growth rather than customer count. Once both sides see that the two metrics are telling a consistent, non-contradictory story about the SAME mechanism (a price-sensitivity effect), the decision becomes about company priorities (grow paying-customer count now vs. protect near-term revenue per visitor) rather than about which metric is "right."
Trade-offs and pitfalls: A common mistake is treating disagreement between two legitimate metrics as a data problem to be resolved by more analysis, when it is often a priorities problem that no amount of analysis can resolve without an explicit decision about what the company is optimizing for right now. The opposite mistake is picking whichever metric was pre-agreed as "the" primary metric and ignoring the other entirely, even when the second metric reveals something the first metric's narrow lens genuinely misses (like the price-sensitivity mechanism above).
Search Results
Meta Data Analyst Interview: Insider Guide to Land the Role in 2025
This interview evaluates how you communicate, collaborate, and adapt in a team setting. Expect questions about challenges you've faced, projects ...
Proven Meta Data Analyst interview guide (2025) | Prepfully
Describe a project that you've managed. What were your learnings? · Why do you want to pursue a career as a Data Analyst? · What inspires you to join Meta? · Where ...
Meta Data Scientist Interview in 2025 (Leaked Questions)
3.4 Data Analysis · What are the hypotheses that would lead to a decision? How would you prove a hypothesis is true? · Can you translate ...
Top 10 Meta Data Analyst Interview Questions
1. How would you approach analyzing a drop in user engagement on Facebook? · 2. Explain how you would use SQL to analyze user behavior data at ...
Meta Data Analyst Interview Guide | Sample Questions (2025)
You should begin with a review of data science, statistics, and SQL practice questions, and explore the kind of questions other Meta applicants have faced in ...
Meta Data Science Interview Guide [31 LEAKED Questions from 2025]
What's a past A/B test you ran? What were the metrics you chose, for that A/B test? What counter-metrics did you use? What A/B testing issues ...
Top 35 Questions to Expect in a Meta Data Science Interview in 2025
The following guide will walk you through 35 key questions to expect in a Meta data science interview, along with a detailed breakdown of the interview process.
This interview preparation guide was generated using AI-powered research from the sources listed above. While we strive for accuracy, we recommend verifying critical information from official company sources.
Want to create your own tailored preparation guide using our deep research?
Get Started for FreeInterview-Ready Courses
Visual-first, interactive, structured learning paths