Meta’s Senior Data Analyst interview is one of the most experimentation-heavy in the industry. You will be expected to go beyond writing correct SQL โ interviewers want to see how you think about product metrics, design experiments for a two-sided platform, and diagnose sudden metric drops under ambiguity. This guide covers all four rounds with real questions from 2025โ2026 interviews, complete answers, and insider notes on what each round is actually scoring.
Python
A/B Testing
Experimentation
Tableau / Looker
Statistics
DAU / WAU stickiness
Retention cohorts
Friend graph analysis
Content engagement rate
North Star for Reels
DAU drop diagnosis
Feed ranking metrics
Metric trade-off analysis
Experiment design
Network effects & SUTVA
Statistical significance
Power analysis
Marketplace analytics
New feature metrics
Launch decision framework
Cross-product trade-offs
Round 1 โ Advanced SQL
| Questions | 5 questions |
| Duration | 60 minutes |
| Difficulty | Medium to Hard |
| Key Topics | Window FunctionsRetention CohortsDAU / WAU / MAUFriend GraphContent Engagement |
The growth team wants to track daily, weekly, and monthly active users and compute the stickiness ratio (DAU/MAU) for the last 90 days. A user is “active” if they have at least one event in the events table on that day.
Tables:
- events(user_id, event_type, event_date)
COUNT(DISTINCT user_id) correctly and whether you understand that DAU, WAU, MAU require different time-window aggregations. Many candidates compute DAU correctly but fail on WAU because they use a fixed 7-day window instead of a rolling one. Stickiness = DAU/MAU โ a value above 20% is generally considered healthy for a social product.-- DAU
SELECT
event_date,
COUNT(DISTINCT user_id) AS dau
FROM events
WHERE event_date >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY event_date;
-- WAU (rolling 7-day window)
SELECT
event_date,
COUNT(DISTINCT user_id) OVER (
ORDER BY event_date
RANGE BETWEEN INTERVAL '6 days' PRECEDING AND CURRENT ROW
) AS wau
FROM (
SELECT DISTINCT event_date, user_id FROM events
WHERE event_date >= CURRENT_DATE - INTERVAL '90 days'
) t;
-- MAU and stickiness
WITH dau_cte AS (
SELECT event_date, COUNT(DISTINCT user_id) AS dau
FROM events
WHERE event_date >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY event_date
),
mau_cte AS (
SELECT
DATE_TRUNC('month', event_date)::DATE AS month,
COUNT(DISTINCT user_id) AS mau
FROM events
WHERE event_date >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY DATE_TRUNC('month', event_date)
)
SELECT
d.event_date,
d.dau,
m.mau,
ROUND(100.0 * d.dau / NULLIF(m.mau, 0), 1) AS stickiness_pct
FROM dau_cte d
JOIN mau_cte m
ON DATE_TRUNC('month', d.event_date) = m.month
ORDER BY d.event_date;
- How would you compute a 28-day rolling MAU instead of calendar-month MAU?
- If DAU drops but MAU is flat, what does that tell you about user behaviour?
- How would you segment stickiness by user cohort (new vs returning)?
Build a retention cohort table: group users by the week they first logged in, then for each subsequent week (Week 0 to Week 4), calculate what percentage of the cohort was still active.
Tables:
- logins(user_id, login_date)
DATEDIFF divided by 7, and (2) using the cohort size (Week 0 count) as the denominator โ not the current week count. Week 0 retention is always 100% by definition.WITH first_login AS (
SELECT user_id, MIN(login_date) AS cohort_date
FROM logins
GROUP BY user_id
),
weekly_activity AS (
SELECT
l.user_id,
DATE_TRUNC('week', f.cohort_date)::DATE AS cohort_week,
FLOOR(
EXTRACT(EPOCH FROM (l.login_date - f.cohort_date))
/ 604800 -- seconds in 7 days
) AS weeks_since_start
FROM logins l
JOIN first_login f ON l.user_id = f.user_id
WHERE FLOOR(
EXTRACT(EPOCH FROM (l.login_date - f.cohort_date)) / 604800
) BETWEEN 0 AND 4
),
cohort_size AS (
SELECT cohort_week, COUNT(DISTINCT user_id) AS total
FROM weekly_activity WHERE weeks_since_start = 0
GROUP BY cohort_week
)
SELECT
wa.cohort_week,
cs.total AS cohort_size,
wa.weeks_since_start,
COUNT(DISTINCT wa.user_id) AS active_users,
ROUND(
100.0 * COUNT(DISTINCT wa.user_id) / cs.total, 1
) AS retention_pct
FROM weekly_activity wa
JOIN cohort_size cs ON wa.cohort_week = cs.cohort_week
GROUP BY wa.cohort_week, cs.total, wa.weeks_since_start
ORDER BY wa.cohort_week, wa.weeks_since_start;
- How would you visualise this cohort table as a heatmap? What would the axes be?
- Which cohort has the best Week-4 retention โ what product actions improved it?
- How would you adapt this query if “active” means posting content, not just logging in?
Top Interview Prep Resources
Used by 12,000+ candidates who cleared DA interviews at product companies.
- 2,200+ questions across all topics
- 23 analytics topics covered end-to-end
- 220+ questions, no fluff
- SQL advanced queries, data models, DBMS most asked topics
Calculate the engagement rate (likes + comments + shares divided by impressions) per post type (photo, video, reel, story) for the last 30 days. Also show which post type has the highest engagement rate and flag any type below 2%.
Tables:
- posts(post_id, user_id, post_type, created_at)
- interactions(interaction_id, post_id, user_id, type, interaction_date) โ type is ‘like’, ‘comment’, or ‘share’
- impressions(post_id, impression_date, impression_count)
WITH interaction_counts AS (
SELECT
p.post_type,
COUNT(i.interaction_id) AS total_interactions
FROM posts p
LEFT JOIN interactions i ON p.post_id = i.post_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY p.post_type
),
impression_counts AS (
SELECT
p.post_type,
SUM(im.impression_count) AS total_impressions
FROM posts p
LEFT JOIN impressions im ON p.post_id = im.post_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY p.post_type
)
SELECT
ic.post_type,
ic.total_interactions,
im.total_impressions,
ROUND(
100.0 * ic.total_interactions / NULLIF(im.total_impressions, 0), 2
) AS engagement_rate_pct,
CASE
WHEN 100.0 * ic.total_interactions / NULLIF(im.total_impressions, 0) < 2
THEN 'Below threshold'
ELSE 'Healthy'
END AS status
FROM interaction_counts ic
JOIN impression_counts im ON ic.post_type = im.post_type
ORDER BY engagement_rate_pct DESC;
- How would you weight interactions differently โ should a share count more than a like?
- If reels have 5x engagement but photos have 10x more impressions, which is more valuable to Meta?
Define an activity score for each user as: (posts ร 3) + (comments ร 2) + (likes ร 1) in the last 28 days. Identify the top 10% of users by this score โ these are “power users”. Show their user_id, score, and percentile rank.
Tables:
- posts(post_id, user_id, created_at)
- interactions(interaction_id, user_id, post_id, type, interaction_date)
WITH user_scores AS (
SELECT
user_id,
SUM(CASE WHEN activity = 'post' THEN 3
WHEN activity = 'comment' THEN 2
WHEN activity = 'like' THEN 1 END) AS activity_score
FROM (
SELECT user_id, 'post' AS activity FROM posts
WHERE created_at >= CURRENT_DATE - INTERVAL '28 days'
UNION ALL
SELECT user_id, type AS activity FROM interactions
WHERE interaction_date >= CURRENT_DATE - INTERVAL '28 days'
AND type IN ('comment', 'like')
) all_activity
GROUP BY user_id
),
ranked AS (
SELECT
user_id,
activity_score,
NTILE(10) OVER (ORDER BY activity_score DESC) AS decile,
ROUND(
100.0 * RANK() OVER (ORDER BY activity_score DESC)
/ COUNT(*) OVER (), 1
) AS percentile_rank
FROM user_scores
)
SELECT user_id, activity_score, percentile_rank
FROM ranked
WHERE decile = 1
ORDER BY activity_score DESC;
- How would you track whether power users this month were also power users last month?
- What product interventions would you test to convert mid-tier users into power users?
- โ 2200 Questions eBook
- โ Ace Any SQL Interview eBook
- โ 1 Mock Interview Session
- โ Resume Review
- โ Everything in Starter
- โ 2 Mock Interviews
- โ LinkedIn Profile Review
- โ Referral Support
- โ Company-Specific Prep Guide
- โ Everything in Complete
- โ 3 Mock Interviews
- โ 1:1 Mentor Calls
- โ Offer Negotiation Support
- โ Priority WhatsApp Access
Round 2 โ Product Analytics & Metrics
| Questions | 3 questions |
| Duration | 50 minutes |
| Difficulty | Medium to Hard |
| Key Topics | North Star MetricMetric TreeRoot Cause AnalysisTrade-off Analysis |
Meta is investing heavily in Reels. Define a North Star Metric (NSM) for Reels, defend your choice against at least two alternatives, and describe the metric tree below it.
Strong answer framework:
- Proposed NSM: Daily Reels Completion Rate โ percentage of Reels that users watch to โฅ80% of length. Captures both content quality and feed relevance simultaneously.
- Why not Time Spent: Time spent can be inflated by auto-play loops; completion rate requires genuine attention. A user watching 50 Reels to 90% completion is more valuable than watching 200 Reels to 30%.
- Why not Reels Created: Supply-side metric; doesn’t measure whether consumers find value. Can be gamed by incentivising creator volume regardless of quality.
- Metric tree: Completion Rate = (Reels shown ร Watch-through rate) where Watch-through = f(feed ranking quality, creator quality, content diversity).
- Guardrails: Overall time on platform (don’t cannibalise Stories/Feed), creator churn rate (supply health), share of Reels with negative feedback.
- If Reels completion rate goes up but overall Instagram DAU drops, is that a success?
- How would the NSM change if Meta wanted to monetise Reels vs grow creator supply?
DAU fell from 2.1 billion to 2.0 billion between Sunday and Monday with no planned deployments. Walk through a structured diagnostic process.
Diagnostic steps in order:
- Rule out measurement error first โ check if other metrics (MAU, sessions) dropped equally. If only DAU dropped, suspect logging.
- Segment by geography โ global drop vs. one country. A single country points to a regional issue (regulation, competitor, outage).
- Segment by platform โ iOS vs Android vs web. A platform-specific drop points to a client-side bug or OS update incompatibility.
- Check the Monday baseline โ DAU is structurally lower on Mondays vs Sundays. Compare to prior Monday, not prior day.
- Review deployment logs โ even without planned deploys, check for config changes, ML model refreshes, or content policy updates.
- Correlate with session quality โ if users who did log in had shorter sessions, it’s a product/content issue, not an access issue.
Round 3 โ A/B Testing & Experimentation
| Questions | 3 questions |
| Duration | 50 minutes |
| Difficulty | Hard |
| Key Topics | Experiment DesignNetwork Effects / SUTVAPower Analysisp-value Interpretation |
Meta’s feed team wants to test a new ranking model that prioritises content from close friends. Design the full experiment โ unit of randomisation, metrics, duration, and how you’d handle network effects.
Complete experiment design:
- Hypothesis: Prioritising close-friend content increases 28-day retention and reduces “negative feedback” (hide, unfollow) by โฅ5%.
- Unit of randomisation: Not individual users โ use graph clusters (ego networks). Users whose close friends are in the same cluster are randomised together to prevent cross-contamination. Alternatively, use geo-based holdout markets.
- Primary metric: 28-day retention (% of users still active after 28 days).
- Secondary metrics: Daily session length, posts created (creator-side), negative feedback rate (hide/unfollow), Reels watch time (guardrail โ don’t sacrifice video engagement).
- Duration: Minimum 4 weeks to capture full novelty bias decay. Feed algorithm changes often show a spike in Week 1 (novelty) that normalises by Week 3โ4.
- Sample size: Run a power calculation with ฮฑ=0.05, power=0.80, and MDE of 0.5% on 28-day retention. Given Meta’s scale, this likely requires only 1โ2% traffic allocation.
- Risks to flag: Creator supply-side effects (creators optimise content for close friends โ less broad reach), advertiser impact (if feed changes reduce ad inventory viewed), novelty bias inflating early results.
- The experiment shows +2% retention but -3% ad revenue. Do you ship it?
- How would you detect if novelty bias is inflating Week 1 results?
- What is the difference between a holdout experiment and a standard A/B test?
An experiment to reduce notification frequency shows: DAU +1.2% (p=0.03), session length -2.1% (p=0.01), 7-day retention +0.8% (p=0.09), unsubscribe rate -15% (p<0.001). Should you ship?
Analysis framework:
- What the data says: Users are visiting more often (DAU +) but spending less time per visit (session -). Fewer are unsubscribing from notifications (strong signal of reduced notification fatigue). 7-day retention improvement is directionally positive but not significant at 95%.
- Reconciling DAU up + session length down: This is consistent with a “healthier habit” โ users check the app briefly and intentionally rather than being repeatedly pulled in by notifications. Net engagement (DAU ร session length) is roughly flat or slightly positive.
- Decision: Ship, with monitoring. The unsubscribe rate drop (-15%, highly significant) is a strong long-term retention signal โ users who unsubscribe from notifications churn at 3x the rate of subscribed users. Prioritise long-term retention over short-term session length.
- Guardrail check: Confirm ad impressions per DAU did not drop more than 1% (session shortening could hurt ad revenue). If it did, consider a partial rollout.
Round 4 โ Case Study & Business Strategy
| Questions | 1 case study |
| Duration | 45 minutes |
| Difficulty | Hard |
| Key Topics | Launch DecisionMarket SizingCross-Product Trade-offsMetric Design |
Meta is considering launching Meta Verified (paid blue checkmark) in India at โน699/month. Evaluate the opportunity, size the market, define the success metrics, and recommend whether to launch.
Recommendation: Launch in a limited pilot โ target the top 0.1% of creators (โฅ50K followers) with a 3-month free trial, then convert to paid. This builds supply-side proof before mass rollout. Monitor trust perception scores and creator content output weekly. Full launch decision at Month 4 based on pilot data.
4-Week Plan to Crack Any Product Company Interview
This plan works for Meta, Google, Amazon, Airbnb โ any product-based company. It covers ~950 questions across two eBooks and includes three mock interviews. No shortcuts, no cramming.
Foundation
Build your base โ SQL, Python, case study frameworks
Master window functions, CTEs, cohort logic. Revise pandas basics, hypothesis testing. Learn the MECE framework for case studies. Read The Data Monk’s company-specific interview pattern posts to understand what is being asked before you prepare.
Question Bank
2200 Most Asked Analytics Interview Questions โ deep dive
Cover the SQL, Python, and case study sections of the 2200 questions eBook. Focus on company-specific question sets. The best way to prepare for an interview is to see exactly what gets asked โ this eBook gives you that edge.
End
SQL Mastery
Ace Any SQL Interview โ end to end, no excuses
Pick up the Ace Any SQL Interview eBook and work through every question. Hard window function problems, optimisation, and real company SQL patterns. A second mock interview at the end of this week.
End
Final Polish
Revise first 5 chapters of the 2200 questions eBook + timed practice
Revisit the first five chapters of the main eBook under timed conditions โ 15 minutes per SQL question, 20 minutes per case study. Simulate real interview pressure. A final mock interview to close out your preparation.
End