Flipkart Business Analyst

Flipkart Business Analyst

This guide features 10 challenging Business Analyst interview questions for Flipkart (BA to Lead BA levels), covering SQL proficiency, operations analytics, growth metrics, root cause analysis, and data-driven decision-making aligned with Flipkart’s mission of delivering data excellence at scale.

1. Cart Additions Decline Analysis: Root Cause & Diagnostic Framework

Difficulty Level: High

Role: Business Analyst / Senior Business Analyst

Source: LinkedIn (Rajat Sharma), YouTube PM Mock Interviews

Topic: Root Cause Analysis & Data Segmentation

Interview Round: Analytics / Problem-Solving (45 min)

Business Function: Operations Analytics / Consumer Experience

Question: “You’re a Business Analyst at Flipkart and have observed a 15% decline in cart additions over the past three days. Walk us through your diagnostic framework to identify the root cause, key hypotheses, and what metrics you would monitor. Consider technical issues, user behavior changes, product/inventory changes, and data segmentation approaches.”


Answer Framework

STAR Method Structure:
- Situation: Critical metric drop (15% cart additions) requiring rapid diagnosis to prevent revenue impact (potential ₹50 Cr weekly loss)
- Task: Form testable hypotheses, prioritize investigation based on likelihood and impact, design diagnostic approach using data segmentation
- Action: Segment by platform (Android historically problematic 60% of issues), check recent deployments, analyze funnel drop-off points, validate with event logs
- Result: Identify Android “Add to Cart” button bug deployed 3 days ago, rollback restores metric within 24 hours, establish monitoring alerts preventing future occurrences

Key Competencies Evaluated:
- Structured Problem-Solving: Hypothesis formation using framework (technical, product, external, behavioral)
- Data Segmentation: Breaking down aggregate metric to isolate root cause via platform, user type, category, geography
- Prioritization: Testing high-probability hypotheses first based on historical patterns (Android issues 60% of cart problems)
- Cross-Functional Collaboration: Knowing when to involve engineering, analytics, marketing teams for resolution

Diagnostic Framework

PROBLEM DEFINITION

Metric: Cart Additions
→ Definition: Count of unique add-to-cart events (product added to cart)
→ Baseline: 100k daily cart additions (7-day average)
→ Current: 85k daily cart additions (15% decline)
→ Duration: 3 days (started Dec 26, 2024)
→ Business Impact: ₹50 Cr weekly revenue at risk (15% × ₹350 Cr weekly GMV)

HYPOTHESIS PRIORITIZATION

Hypothesis 1: Technical Issue - Android App Bug (HIGHEST PRIORITY - 60% historical)
→ Why: Historical data shows 60% of cart addition issues traced to Android platform
→ What to check: Recent deployments (last 3 days), error logs, API failure rates
→ Segmentation: Android vs iOS vs Web, app version distribution
→ Validation: Event logs showing "Add to Cart" clicks not translating to cart_added events
→ Expected finding: Specific Android app version (v8.45) has button rendering issue

Hypothesis 2: Product/UX Change - Checkout Flow Modification (30% historical)
→ Why: Recent A/B test on checkout flow (started 4 days ago)
→ What to check: Experiment logs, variant assignment, conversion by cohort
→ Segmentation: Control vs treatment groups, funnel drop-off analysis
→ Validation: Treatment group shows 25% lower cart addition vs control
→ Expected finding: New checkout flow adds friction (extra login step, mandatory field)

Hypothesis 3: External Factor - Competitor Flash Sale (10% historical)
→ Why: Amazon Great Indian Festival running concurrently
→ What to check: Competitor pricing, promotional intensity, traffic patterns
→ Segmentation: User overlap (Flipkart + Amazon shoppers), category analysis
→ Validation: Traffic down 10% in Electronics (Amazon's strong category)
→ Expected finding: Price-sensitive users shifting to Amazon for deals

DATA SEGMENTATION APPROACH

By Platform (Primary Segmentation):
→ Android (45% traffic): -25% cart additions (PRIMARY ISSUE)
→ iOS (30% traffic): -5% (slight decline, likely spillover)
→ Web (25% traffic): +2% (users switching to web as workaround)

By App Version (Android Deep Dive):
→ v8.45 (released 3 days ago): -40% cart additions
→ v8.44 (previous version): -5% (normal variance)
→ Conclusion: v8.45 has critical bug

By User Type:
→ New users: -20% (higher impact, less patient with bugs)
→ Returning users: -12% (some retry, some switch to web)

By Category:
→ Electronics: -18% (high-consideration, users research more)
→ Fashion: -12% (impulse purchases, less affected)
→ Grocery: -10% (repeat purchases, users persistent)

By Geography:
→ Tier-1 cities: -18% (more alternatives like Amazon)
→ Tier-2/3 cities: -12% (higher Flipkart loyalty)

DIAGNOSTIC SQL QUERIES

-- Query 1: Platform-level segmentation
SELECT
    DATE(event_timestamp) AS event_date,
    platform,
    app_version,
    COUNT(DISTINCT CASE WHEN event_type = 'product_view' THEN session_id END) AS product_views,
    COUNT(DISTINCT CASE WHEN event_type = 'add_to_cart' THEN session_id END) AS cart_additions,
    ROUND(100.0 * COUNT(DISTINCT CASE WHEN event_type = 'add_to_cart' THEN session_id END) /
          NULLIF(COUNT(DISTINCT CASE WHEN event_type = 'product_view' THEN session_id END), 0), 2) AS conversion_rate
FROM events
WHERE event_timestamp >= CURRENT_DATE - 7
GROUP BY DATE(event_timestamp), platform, app_version
ORDER BY event_date DESC, platform;

-- Query 2: Funnel analysis identifying drop-off point
SELECT
    funnel_step,
    COUNT(DISTINCT session_id) AS sessions,
    ROUND(100.0 * COUNT(DISTINCT session_id) /
          LAG(COUNT(DISTINCT session_id)) OVER (ORDER BY funnel_order), 2) AS conversion_rate,
    ROUND(100.0 * (COUNT(DISTINCT session_id) - LAG(COUNT(DISTINCT session_id)) OVER (ORDER BY funnel_order)) /
          LAG(COUNT(DISTINCT session_id)) OVER (ORDER BY funnel_order), 2) AS drop_off_rate
FROM (
    SELECT session_id, 'Product View' AS funnel_step, 1 AS funnel_order FROM events WHERE event_type = 'product_view'
    UNION ALL
    SELECT session_id, 'Add to Cart', 2 FROM events WHERE event_type = 'add_to_cart'
    UNION ALL
    SELECT session_id, 'View Cart', 3 FROM events WHERE event_type = 'view_cart'
    UNION ALL
    SELECT session_id, 'Checkout', 4 FROM events WHERE event_type = 'checkout'
) funnel
WHERE session_date >= CURRENT_DATE - 7
GROUP BY funnel_step, funnel_order
ORDER BY funnel_order;

-- Query 3: Category-level impact analysis
SELECT
    category,
    COUNT(DISTINCT CASE WHEN event_date >= CURRENT_DATE - 3 THEN session_id END) AS recent_cart_adds,
    COUNT(DISTINCT CASE WHEN event_date BETWEEN CURRENT_DATE - 10 AND CURRENT_DATE - 4 THEN session_id END) AS baseline_cart_adds,
    ROUND(100.0 * (COUNT(DISTINCT CASE WHEN event_date >= CURRENT_DATE - 3 THEN session_id END) -
                   COUNT(DISTINCT CASE WHEN event_date BETWEEN CURRENT_DATE - 10 AND CURRENT_DATE - 4 THEN session_id END)) /
          NULLIF(COUNT(DISTINCT CASE WHEN event_date BETWEEN CURRENT_DATE - 10 AND CURRENT_DATE - 4 THEN session_id END), 0), 2) AS pct_change
FROM events
WHERE event_type = 'add_to_cart'
GROUP BY category
ORDER BY pct_change ASC;

INVESTIGATION STEPS

Step 1: Quick Wins (15 minutes)
→ Check deployment logs: Any releases in last 3 days?
→ Query error monitoring: Spike in API failures or client errors?
→ Review A/B tests: Any active experiments affecting checkout?

Step 2: Data Segmentation (30 minutes)
→ Platform: Android (45% traffic), iOS (30%), Web (25%)
→ User type: New (20%), Returning (80%)
→ Category: Electronics (30%), Fashion (40%), Grocery (20%), Other (10%)
→ Geography: Tier-1 (50%), Tier-2 (30%), Tier-3 (20%)

Step 3: Funnel Analysis (45 minutes)
→ Product View → Add to Cart → View Cart → Checkout
→ Identify drop-off point: If PV→ATC drops 15%, issue is "Add to Cart" action
→ If ATC→VC drops, issue is cart page loading or visibility

Step 4: Event Log Validation (60 minutes)
→ Sample 1000 users who viewed products but didn't add to cart
→ Check client-side events: Did "Add to Cart" button click fire?
→ Check server-side events: Did cart_added API call succeed?
→ Gap between click and API = client-side bug
→ API call failed = server-side issue

METRICS TO MONITOR

Primary Metrics:
→ Cart addition rate: (Cart additions / Product views) × 100
→ Daily cart additions: Absolute count trend
→ Cart addition funnel: Product view → Add to cart conversion

Secondary Metrics:
→ Cart abandonment rate: (Carts created - Completed orders) / Carts created
→ Checkout completion rate: Completed orders / Cart additions
→ Revenue per session: Total GMV / Total sessions

Segmented Metrics:
→ Platform-wise: Android, iOS, Web cart addition rates
→ User-type: New vs returning user cart additions
→ Category-wise: Electronics, Fashion, Grocery cart additions
→ Geography: Tier-1, Tier-2, Tier-3 cart additions

Answer (Part 1 of 3): Hypothesis Formation & Prioritization

Hypothesis prioritization uses historical pattern analysis where 60% of cart addition issues traced to Android platform due to fragmentation (1000+ device models, varying OS versions 8-14, manufacturer customizations like Samsung OneUI, Xiaomi MIUI), making Android highest priority investigation target. Diagnostic approach checks deployment logs identifying Android app v8.45 released 3 days ago (timing precisely matches metric drop), queries error monitoring showing 15% spike in “Add to Cart” button click events not followed by cart_added API calls (gap indicates client-side rendering issue not server problem), and segments by app version revealing v8.45 users experiencing -40% cart additions vs v8.44 users at -5% (normal variance confirming version-specific bug). Validation samples 1000 users on v8.45 who viewed products but didn’t add to cart, examines event logs showing button click events fired but button visually unresponsive (CSS rendering bug causing button to appear disabled despite being clickable, confusing users who abandon), confirming root cause as Android-specific UI regression introduced in v8.45 deployment requiring immediate rollback.

Answer (Part 2 of 3): Data Segmentation & Funnel Analysis

Segmentation strategy breaks down aggregate -15% metric by platform (Android -25% primary issue, iOS -5% slight decline likely spillover, Web +2% indicating users switching to web as workaround), user type (new users -20% showing lower tolerance for friction vs returning users -12% who retry or find alternatives), category (Electronics -18% as high-consideration purchases more sensitive to friction, Fashion -12% as impulse buys less affected, Grocery -10% as repeat purchases drive persistence), and geography (Tier-1 cities -18% with more alternatives like Amazon, Tier-2/3 -12% with higher Flipkart loyalty). Funnel analysis examines Product View → Add to Cart → View Cart → Checkout identifying drop-off at PV→ATC stage (conversion rate dropped from 35% to 20% = 43% relative decline explaining 15% absolute cart addition drop), while ATC→VC and VC→Checkout remain stable indicating issue isolated to “Add to Cart” action not downstream cart or checkout flows. Event log analysis reveals 100k “Add to Cart” button clicks recorded but only 60k cart_added API calls (40% gap), with gap concentrated in Android v8.45 users, confirming client-side bug preventing button clicks from triggering API calls despite user intent, requiring engineering team involvement for CSS fix and QA process improvement.

Answer (Part 3 of 3): Resolution & Monitoring Framework

Immediate resolution (0-4 hours) rolls back Android app v8.45 to v8.44 via forced update prompt for affected users (estimated 5M users on v8.45 representing 45% of mobile traffic), monitors cart addition recovery expecting 80% restoration within 2 hours as users update to stable version, and communicates issue to customer support team preparing for user complaints about forced update and potential lost carts. Short-term fix (4-24 hours) conducts root cause analysis revealing bug introduced by CSS refactoring in v8.45 where button disabled state styling accidentally applied to enabled state (visual bug making clickable button appear grayed out), fixes bug in v8.46 with comprehensive testing including device matrix (top 50 Android devices covering 80% of user base), and implements gradual rollout (10% canary → 50% → 100% over 3 days) monitoring cart additions at each stage preventing repeat incidents. Long-term prevention (1-4 weeks) establishes automated monitoring alerting if cart additions drop >5% for >1 hour (current monitoring only daily aggregates missing intraday issues), improves QA process adding “Add to Cart” action to critical path requiring manual testing on top 10 Android devices before any release, implements A/B test isolation ensuring experiments on checkout flow don’t affect core “Add to Cart” functionality, and creates incident retrospective documenting learnings (CSS changes require extra scrutiny, Android fragmentation necessitates broader device testing, faster rollback procedures needed for critical bugs affecting revenue-generating actions).


2. Window Functions vs. Aggregate Functions: Advanced SQL Application

Difficulty Level: High

Role: Business Analyst / Senior Business Analyst

Source: LinkedIn (Rajat Sharma, Bhuvnesh Kumar), Flipkart SQL Round

Topic: SQL Proficiency & Query Optimization

Interview Round: SQL Technical Round (60 min)

Business Function: Operations Analytics / Data Analysis

Question: “Explain the difference between window functions and aggregate functions. Provide a specific use case where window functions are superior, and write an example query for a Flipkart business problem: Identify top 3 best-selling products within each category while preserving transaction details.”


Answer Framework

STAR Method Structure:
- Situation: Need to rank products within categories while maintaining granular transaction data for analysis
- Task: Explain conceptual difference between window vs aggregate functions, demonstrate superior use case
- Action: Use RANK() OVER (PARTITION BY category ORDER BY sales DESC) preserving row-level detail vs GROUP BY losing granularity
- Result: Query returns top 3 products per category with full transaction history enabling deeper analysis (customer segments, time trends, pricing impact)

Key Competencies Evaluated:
- SQL Mastery: Understanding window functions (ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, running totals)
- Business Context: Applying SQL to real Flipkart problems (product ranking, customer retention, cohort analysis)
- Query Optimization: Knowing when window functions outperform aggregate functions (O(n) vs O(n²) complexity)
- Data Preservation: Maintaining granularity for downstream analysis vs premature aggregation

Answer (Part 1 of 3): Conceptual Difference & Use Cases

Aggregate functions (SUM, AVG, COUNT, MIN, MAX) collapse multiple rows into single summary row requiring GROUP BY, losing granular detail: query “SELECT category, SUM(sales) FROM orders GROUP BY category” returns one row per category showing total sales but cannot show individual product performance within category. Window functions (ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, SUM OVER) perform calculations across row sets while preserving every input row, enabling ranking, running totals, and row-to-row comparisons without GROUP BY: query “SELECT *, RANK() OVER (PARTITION BY category ORDER BY sales DESC) FROM orders” returns all original rows plus ranking column showing each product’s position within its category. Superior use case demonstrates Flipkart business problem: identify top 3 best-selling products per category while preserving transaction details (order date, customer segment, pricing) for trend analysis—aggregate approach “SELECT category, product_id, SUM(sales) GROUP BY category, product_id LIMIT 3” fails because LIMIT applies globally not per category, and loses transaction-level data needed for understanding why products perform well (seasonal trends, customer demographics, pricing strategies).

Answer (Part 2 of 3): Flipkart SQL Implementation

Top 3 products per category query uses RANK() window function partitioning by category and ordering by sales descending, filtering WHERE rank <= 3 to retain only top performers while preserving all transaction details enabling downstream analysis of customer segments, time trends, and pricing impact on top products:

-- Correct approach using window functions
WITH ranked_products AS (
    SELECT
        order_id,
        order_date,
        category,
        product_id,
        product_name,
        quantity_sold,
        unit_price,
        quantity_sold * unit_price AS sales,
        customer_segment,
        RANK() OVER (PARTITION BY category ORDER BY quantity_sold * unit_price DESC) AS sales_rank
    FROM orders
    WHERE order_date >= CURRENT_DATE - 90
)
SELECT
    category,
    product_id,
    product_name,
    SUM(sales) AS total_sales,
    COUNT(DISTINCT order_id) AS num_orders,
    AVG(unit_price) AS avg_price,
    sales_rank
FROM ranked_products
WHERE sales_rank <= 3
GROUP BY category, product_id, product_name, sales_rank
ORDER BY category, sales_rank;

-- Wrong approach using aggregate functions (loses granularity)
SELECT
    category,
    product_id,
    SUM(quantity_sold * unit_price) AS total_sales
FROM orders
WHERE order_date >= CURRENT_DATE - 90
GROUP BY category, product_id
ORDER BY category, total_sales DESC
LIMIT 3;  -- PROBLEM: LIMIT applies globally, not per category!

Repeat customer identification uses LAG() window function accessing previous row’s order_date within customer partition, identifying customers who purchased in last 30 days but NOT in previous 30 days (reactivated customers requiring targeted retention campaigns):

SELECT DISTINCT customer_id, customer_name, last_order_date
FROM (
    SELECT
        customer_id,
        customer_name,
        order_date AS last_order_date,
        LAG(order_date) OVER (PARTITION BY customer_id ORDER BY order_date) AS prev_order_date,
        DATEDIFF(day, LAG(order_date) OVER (PARTITION BY customer_id ORDER BY order_date), order_date) AS days_between_orders
    FROM orders
    WHERE order_date >= CURRENT_DATE - 60
) subquery
WHERE last_order_date >= CURRENT_DATE - 30
AND (prev_order_date IS NULL OR prev_order_date < CURRENT_DATE - 30);

Answer (Part 3 of 3): Window Function Types & Business Applications

ROW_NUMBER() assigns unique sequential rank (no ties) useful for deduplication: “ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY signup_date ASC)” identifies first customer registration when duplicates exist, keeping earliest record. RANK() allows ties with gaps (1, 2, 2, 4) useful for competitive ranking: “RANK() OVER (PARTITION BY category ORDER BY sales DESC)” shows product sales rank where tied products receive same rank and next rank skips (two products tied at #2, next is #4 not #3). DENSE_RANK() allows ties without gaps (1, 2, 2, 3) useful for percentile analysis: “DENSE_RANK() OVER (ORDER BY customer_lifetime_value DESC)” creates customer value tiers without gaps. LAG/LEAD access previous/next row values useful for trend analysis: “LEAD(order_date) OVER (PARTITION BY customer_id ORDER BY order_date) - order_date AS days_to_next_purchase” calculates purchase frequency. Running totals use SUM() OVER with ORDER BY for cumulative calculations: “SUM(daily_revenue) OVER (ORDER BY order_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)” shows cumulative revenue trend, critical for Flipkart’s Big Billion Days tracking where real-time GMV monitoring requires running totals updated every hour without re-aggregating entire dataset (window function O(n) complexity vs re-aggregation O(n²) for large datasets).


3. Return-to-Origin (RTO) Rate Reduction Strategy

Difficulty Level: Very High

Role: Senior Business Analyst / Lead Business Analyst

Source: LinkedIn (Raj Singh Sendhav), Academic Research on RTO Detection

Topic: Operations Analytics & Data-Driven Strategy

Interview Round: Case Study / Business Strategy (60 min)

Business Function: Supply Chain & Logistics / Operations Analytics

Question: “Flipkart’s RTO (Return-to-Origin) rate stands at 23.5%, which is unsustainable and driving significant revenue loss (~$9M impact annually). As a Business Analyst, propose a data-driven strategy to reduce RTO while maintaining customer satisfaction and seller profitability. What metrics would you track? Provide SQL queries for root cause analysis.”


Answer Framework

STAR Method Structure:
- Situation: 23.5% RTO rate (industry benchmark 8-12%) causing $9M annual loss, threatening unit economics and seller satisfaction
- Task: Identify RTO drivers via data segmentation, design interventions balancing cost reduction with customer/seller experience
- Action: Segment RTO by root cause (COD 35%, quality 30%, logistics 25%, behavior 10%), implement prevention (quality scoring), intervention (smart routing), resolution (proactive refunds)
- Result: RTO reduced to 18.5% (21% improvement), $3M cost savings, customer NPS maintained 7.2, seller NPS improved 6.8 to 7.1

Key Competencies Evaluated:
- Root Cause Analysis: Segmenting aggregate metric to identify drivers (payment method, category, pincode, seller quality)
- Data-Driven Strategy: Using SQL to quantify impact and prioritize interventions
- Trade-off Management: Balancing cost reduction (RTO prevention) with customer experience (liberal returns) and seller economics (RTO penalties)
- Metrics Design: Defining success metrics across multiple stakeholders (customers, sellers, platform)

Answer (Part 1 of 3): Root Cause Analysis & SQL Segmentation

RTO definition measures percentage of delivered/attempted deliveries where customer refuses product or courier cannot complete delivery, order returned to origin warehouse, with current baseline 23.5% (23.5M returns of 100M annual orders) causing financial impact: logistics cost ₹50/return × 23.5M = ₹117.5 Cr ($15M), inventory write-off ₹30/return × 23.5M = ₹70.5 Cr ($9M), warehouse congestion and seller dissatisfaction creating secondary costs. Root cause segmentation identifies COD payment method as largest driver (35% of RTO = 8.2 percentage points) with SQL query:

-- RTO analysis by payment method
SELECT
    payment_method,
    COUNT(*) AS total_orders,
    SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) AS rto_count,
    ROUND(100.0 * SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS rto_pct,
    ROUND(AVG(order_value), 2) AS avg_order_value
FROM orders
WHERE order_date >= CURRENT_DATE - 90
GROUP BY payment_method
ORDER BY rto_pct DESC;

-- Expected output: COD 30% RTO vs Prepaid 10% RTO (3x higher)

Product quality issues (30% of RTO = 7.0 pp) concentrated in Electronics category with SQL identifying high-RTO products:

-- High-RTO product categories and quality indicators
SELECT
    category,
    COUNT(DISTINCT order_id) AS total_orders,
    SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) AS rto_orders,
    ROUND(100.0 * SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS rto_pct,
    AVG(product_rating) AS avg_rating,
    COUNT(CASE WHEN damage_reported = 1 THEN 1 END) AS damage_complaints,
    ROUND(100.0 * COUNT(CASE WHEN damage_reported = 1 THEN 1 END) / COUNT(*), 2) AS damage_pct
FROM orders
WHERE order_date >= CURRENT_DATE - 90
GROUP BY category
ORDER BY rto_pct DESC;

-- Expected output: Electronics 28% RTO (defects, transit damage), Fashion 20%, Grocery 15%

Logistics issues (25% of RTO = 5.9 pp) with specific pincodes showing 40%+ RTO requiring pincode-level analysis:

-- Pincode-level RTO analysis identifying problematic areas
SELECT
    pincode,
    city_tier,
    COUNT(*) AS total_orders,
    SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) AS rto_count,
    ROUND(100.0 * SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS rto_pct,
    AVG(delivery_time_days) AS avg_delivery_days,
    logistics_partner
FROM orders
WHERE order_date >= CURRENT_DATE - 90
GROUP BY pincode, city_tier, logistics_partner
HAVING COUNT(*) > 100  -- Minimum volume for statistical significance
ORDER BY rto_pct DESC
LIMIT 50;

-- Expected output: Tier-3 pincodes with poor logistics partners showing 40%+ RTO

Answer (Part 2 of 3): Prevention & Intervention Strategies

Prevention strategies implement product quality scoring (1-5 visible score compositing rating, return rate, defect rate, seller quality) with SQL calculating quality score:

-- Product quality score calculation
WITH product_metrics AS (
    SELECT
        product_id,
        AVG(product_rating) AS avg_rating,
        ROUND(100.0 * SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS rto_pct,
        ROUND(100.0 * SUM(CASE WHEN damage_reported = 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS damage_pct,
        COUNT(*) AS total_orders
    FROM orders
    WHERE order_date >= CURRENT_DATE - 90
    GROUP BY product_id
)
SELECT
    product_id,
    avg_rating,
    rto_pct,
    damage_pct,
    -- Quality score: weighted average (rating 40%, RTO 40%, damage 20%)
    ROUND(
        (avg_rating / 5.0 * 0.4) +
        ((100 - rto_pct) / 100.0 * 0.4) +
        ((100 - damage_pct) / 100.0 * 0.2),
    2) * 5 AS quality_score,
    CASE
        WHEN ((avg_rating / 5.0 * 0.4) + ((100 - rto_pct) / 100.0 * 0.4) + ((100 - damage_pct) / 100.0 * 0.2)) * 5 < 3.0
        THEN 'High Risk - Require Extra Confirmation'
        WHEN ((avg_rating / 5.0 * 0.4) + ((100 - rto_pct) / 100.0 * 0.4) + ((100 - damage_pct) / 100.0 * 0.2)) * 5 BETWEEN 3.0 AND 4.0
        THEN 'Medium Risk - Show Warning'
        ELSE 'Low Risk - No Action'
    END AS risk_category
FROM product_metrics
WHERE total_orders >= 50  -- Minimum orders for reliable score
ORDER BY quality_score ASC;

Payment method incentives shift COD to prepaid (reducing RTO from 30% to 10%) via ₹50 discount, faster delivery, priority support, with SQL tracking shift impact:

-- Track payment method shift and RTO impact
WITH payment_trends AS (
    SELECT
        DATE_TRUNC('week', order_date) AS week,
        payment_method,
        COUNT(*) AS orders,
        SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) AS rto_count,
        ROUND(100.0 * SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS rto_pct
    FROM orders
    WHERE order_date >= CURRENT_DATE - 12 * 7  -- Last 12 weeks
    GROUP BY DATE_TRUNC('week', order_date), payment_method
)
SELECT
    week,
    SUM(CASE WHEN payment_method = 'COD' THEN orders ELSE 0 END) AS cod_orders,
    SUM(CASE WHEN payment_method != 'COD' THEN orders ELSE 0 END) AS prepaid_orders,
    ROUND(100.0 * SUM(CASE WHEN payment_method = 'COD' THEN orders ELSE 0 END) / SUM(orders), 2) AS cod_pct,
    AVG(CASE WHEN payment_method = 'COD' THEN rto_pct END) AS cod_rto_pct,
    AVG(CASE WHEN payment_method != 'COD' THEN rto_pct END) AS prepaid_rto_pct
FROM payment_trends
GROUP BY week
ORDER BY week DESC;

-- Target: Shift COD from 50% to 30% of orders (20pp reduction × 20% RTO difference = 4% overall RTO reduction)

Smart logistics routing uses ML model predicting RTO risk (COD + electronics + tier-3 city = high risk) routing high-risk orders through Flipkart-owned logistics (not 3PL) with SQL identifying high-risk orders:

-- RTO risk scoring for smart routing
SELECT
    order_id,
    customer_id,
    category,
    payment_method,
    pincode,
    city_tier,
    order_value,
    -- Risk score calculation (0-100)
    (CASE WHEN payment_method = 'COD' THEN 30 ELSE 0 END) +
    (CASE WHEN category = 'Electronics' THEN 25 ELSE 0 END) +
    (CASE WHEN city_tier = 'Tier-3' THEN 20 ELSE 0 END) +
    (CASE WHEN order_value > 5000 THEN 15 ELSE 0 END) +
    (CASE WHEN customer_rto_history > 20 THEN 10 ELSE 0 END) AS rto_risk_score,
    CASE
        WHEN (CASE WHEN payment_method = 'COD' THEN 30 ELSE 0 END) +
             (CASE WHEN category = 'Electronics' THEN 25 ELSE 0 END) +
             (CASE WHEN city_tier = 'Tier-3' THEN 20 ELSE 0 END) +
             (CASE WHEN order_value > 5000 THEN 15 ELSE 0 END) +
             (CASE WHEN customer_rto_history > 20 THEN 10 ELSE 0 END) > 60
        THEN 'Route via Flipkart Logistics (Premium)'
        ELSE 'Route via Standard 3PL'
    END AS routing_recommendation
FROM orders o
JOIN customer_profiles c ON o.customer_id = c.customer_id
WHERE order_date >= CURRENT_DATE
ORDER BY rto_risk_score DESC;

Answer (Part 3 of 3): Success Metrics & Impact Measurement

Success measurement targets overall RTO reduction from 23.5% to 18.5% (21% improvement, sub-20% goal) with segmented targets tracked via SQL dashboard:

-- RTO dashboard tracking multiple dimensions
WITH rto_metrics AS (
    SELECT
        DATE_TRUNC('week', order_date) AS week,
        category,
        payment_method,
        city_tier,
        COUNT(*) AS total_orders,
        SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) AS rto_orders,
        ROUND(100.0 * SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS rto_pct
    FROM orders
    WHERE order_date >= CURRENT_DATE - 26 * 7  -- Last 26 weeks (6 months)
    GROUP BY DATE_TRUNC('week', order_date), category, payment_method, city_tier
)
SELECT
    week,
    -- Overall RTO
    SUM(rto_orders) AS total_rto,
    SUM(total_orders) AS total_orders,
    ROUND(100.0 * SUM(rto_orders) / SUM(total_orders), 2) AS overall_rto_pct,
    -- Segmented RTO
    ROUND(AVG(CASE WHEN payment_method = 'COD' THEN rto_pct END), 2) AS cod_rto_pct,
    ROUND(AVG(CASE WHEN category = 'Electronics' THEN rto_pct END), 2) AS electronics_rto_pct,
    ROUND(AVG(CASE WHEN city_tier = 'Tier-3' THEN rto_pct END), 2) AS tier3_rto_pct
FROM rto_metrics
GROUP BY week
ORDER BY week DESC;

-- Targets: Overall 18.5%, COD 24%, Electronics 22%, Tier-3 30%

Financial impact calculation shows cost savings from RTO reduction:

-- Financial impact of RTO reduction
WITH rto_comparison AS (
    SELECT
        'Baseline (23.5%)' AS scenario,
        100000000 AS annual_orders,
        23.5 AS rto_pct,
        23500000 AS rto_orders,
        50 AS logistics_cost_per_rto,
        30 AS inventory_writeoff_per_rto
    UNION ALL
    SELECT
        'Target (18.5%)',
        100000000,
        18.5,
        18500000,
        50,
        30
)
SELECT
    scenario,
    rto_orders,
    rto_orders * logistics_cost_per_rto AS logistics_cost_cr,
    rto_orders * inventory_writeoff_per_rto AS writeoff_cost_cr,
    (rto_orders * logistics_cost_per_rto + rto_orders * inventory_writeoff_per_rto) AS total_cost_cr
FROM rto_comparison;

-- Expected savings: (23.5M - 18.5M) × (₹50 + ₹30) = 5M × ₹80 = ₹400 Cr ($50M) annually

Trade-off monitoring ensures interventions don’t degrade customer/seller experience:

-- Monitor customer and seller satisfaction alongside RTO
SELECT
    DATE_TRUNC('month', metric_date) AS month,
    AVG(customer_nps) AS avg_customer_nps,
    AVG(seller_nps) AS avg_seller_nps,
    AVG(rto_pct) AS avg_rto_pct,
    AVG(repeat_purchase_rate) AS avg_repeat_rate
FROM daily_metrics
WHERE metric_date >= CURRENT_DATE - 180
GROUP BY DATE_TRUNC('month', metric_date)
ORDER BY month DESC;

-- Target: Customer NPS ≥7.2, Seller NPS ≥7.0, RTO <20%, Repeat Rate ≥45%

4. Big Billion Days Performance Analysis & Profitability Assessment

Difficulty Level: Very High

Role: Senior Business Analyst / Lead Business Analyst

Source: YouTube BBD Analysis, LinkedIn Case Studies

Topic: Business Analytics & Profitability Metrics

Interview Round: Case Study / Data Interpretation (75 min)

Business Function: Marketplace Analytics / Growth & Consumer Insights

Question: “You’re a Business Analyst assigned to analyze Flipkart’s Big Billion Days 2025 performance. Given a dataset with product-level details (inventory, sales, discounts, profit margin), identify: Which product categories are most profitable? Inventory management assessment (oversupply vs. stockouts)? Impact of ad spend on product sales? Seller performance and quality issues? Provide SQL queries and business recommendations.”


Answer Framework

STAR Method Structure:
- Situation: BBD drives 10-15% of annual GMV (₹6,000 Cr in 5 days), requiring post-event analysis to optimize future sales
- Task: Analyze category profitability, inventory efficiency (burn score), ad spend ROI, seller quality using SQL
- Action: Calculate profit margins by category, burn score (sales/inventory) identifying over/understocking, ROAS (return on ad spend) flagging underperforming ads, seller RTO rates
- Result: Electronics 18% margin (highest), Fashion overstocked (burn score 0.3), 30% of ad spend ROAS <3 (unprofitable), 15% of sellers >25% RTO (quality issues)

Key Competencies Evaluated:
- Profitability Analysis: Calculating net margins accounting for discounts, ad spend, COGS
- Inventory Optimization: Using burn score to identify overstocking/understocking
- Marketing ROI: Measuring ROAS and identifying inefficient ad spend
- Seller Quality: Tracking RTO, cancellation rates, customer ratings

Answer (Part 1 of 3): Category Profitability & Inventory Analysis

Category profitability SQL calculates net margin after discounts and ad spend:

SELECT
    category,
    SUM(sales_amount) AS total_revenue,
    SUM(cost_of_goods) AS total_cogs,
    SUM(discount_amount) AS total_discount,
    SUM(ad_spend) AS total_ad_spend,
    SUM(sales_amount) - SUM(cost_of_goods) - SUM(discount_amount) - SUM(ad_spend) AS net_profit,
    ROUND(100.0 * (SUM(sales_amount) - SUM(cost_of_goods) - SUM(discount_amount) - SUM(ad_spend)) / SUM(sales_amount), 2) AS profit_margin_pct,
    COUNT(DISTINCT product_id) AS num_products,
    COUNT(DISTINCT order_id) AS num_orders
FROM bbd_orders
WHERE event_date BETWEEN '2025-10-01' AND '2025-10-05'
GROUP BY category
ORDER BY profit_margin_pct DESC;

Burn score analysis identifies inventory health (sales/inventory stocked):

SELECT
    product_id,
    product_name,
    category,
    quantity_stocked AS initial_inventory,
    SUM(quantity_sold) AS quantity_sold,
    ROUND(CAST(SUM(quantity_sold) AS FLOAT) / NULLIF(quantity_stocked, 0), 2) AS burn_score,
    CASE
        WHEN CAST(SUM(quantity_sold) AS FLOAT) / NULLIF(quantity_stocked, 0) > 0.8 THEN 'Understock Risk (Stockout)'
        WHEN CAST(SUM(quantity_sold) AS FLOAT) / NULLIF(quantity_stocked, 0) BETWEEN 0.4 AND 0.8 THEN 'Optimal Inventory'
        WHEN CAST(SUM(quantity_sold) AS FLOAT) / NULLIF(quantity_stocked, 0) < 0.4 THEN 'Overstock (Cash Tied Up)'
        ELSE 'No Sales'
    END AS inventory_health
FROM bbd_orders
GROUP BY product_id, product_name, category, quantity_stocked
ORDER BY burn_score DESC;

Answer (Part 2 of 3): Ad Spend ROI & Seller Performance

ROAS analysis identifies underperforming ad campaigns:

SELECT
    product_id,
    category,
    SUM(ad_spend) AS total_ad_spend,
    SUM(sales_amount) AS total_sales,
    ROUND(SUM(sales_amount) / NULLIF(SUM(ad_spend), 0), 2) AS roas,
    ROUND(100.0 * SUM(ad_spend) / NULLIF(SUM(sales_amount), 0), 2) AS ad_spend_pct_of_sales,
    CASE
        WHEN SUM(sales_amount) / NULLIF(SUM(ad_spend), 0) > 5 THEN 'Excellent (>5x)'
        WHEN SUM(sales_amount) / NULLIF(SUM(ad_spend), 0) BETWEEN 3 AND 5 THEN 'Good (3-5x)'
        WHEN SUM(sales_amount) / NULLIF(SUM(ad_spend), 0) BETWEEN 1 AND 3 THEN 'Marginal (1-3x)'
        ELSE 'Unprofitable (<1x)'
    END AS roas_category
FROM bbd_orders
WHERE ad_spend > 0
GROUP BY product_id, category
HAVING SUM(ad_spend) > 1000  -- Minimum spend threshold
ORDER BY roas ASC;

Seller quality metrics track RTO, cancellations, ratings:

SELECT
    seller_id,
    seller_name,
    COUNT(DISTINCT order_id) AS total_orders,
    SUM(sales_amount) AS total_revenue,
    AVG(customer_rating) AS avg_rating,
    ROUND(100.0 * SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS rto_pct,
    ROUND(100.0 * SUM(CASE WHEN cancellation_flag = 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS cancellation_rate,
    CASE
        WHEN AVG(customer_rating) >= 4.5 AND
             100.0 * SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) / COUNT(*) < 10 AND
             100.0 * SUM(CASE WHEN cancellation_flag = 1 THEN 1 ELSE 0 END) / COUNT(*) < 2
        THEN 'Top Seller'
        WHEN 100.0 * SUM(CASE WHEN rto_flag = 1 THEN 1 ELSE 0 END) / COUNT(*) > 25 OR
             100.0 * SUM(CASE WHEN cancellation_flag = 1 THEN 1 ELSE 0 END) / COUNT(*) > 5
        THEN 'At-Risk Seller'
        ELSE 'Average Seller'
    END AS seller_tier
FROM bbd_orders
GROUP BY seller_id, seller_name
HAVING COUNT(DISTINCT order_id) > 10
ORDER BY total_revenue DESC;

Answer (Part 3 of 3): Business Recommendations

Category strategy recommends Electronics focus (18% margin highest), reduce Fashion discounts (overstocked with 0.3 burn score indicating 70% unsold inventory), expand Grocery (high frequency, retention driver despite lower 8% margin). Inventory optimization suggests increasing Electronics stock 30% (burn score 0.85 near stockout), reducing Fashion stock 40% (burn score 0.3 overstock), implementing dynamic pricing for slow-moving inventory (burn score <0.2 products discount 20-30% to clear stock). Ad spend optimization reallocates budget from ROAS <3 products (30% of spend) to ROAS >5 products (20% of spend), pauses campaigns with ROAS <1 (unprofitable), tests video ads for Fashion (underutilized format per Redseer benchmarking). Seller quality improvement rewards top sellers (4.5+ rating, <10% RTO, <2% cancellation) with lower commission rates and promotional support, intervenes with at-risk sellers (>25% RTO, >5% cancellation) via training and inventory management tools, considers removing bottom 5% sellers (>40% RTO, <3.5 rating) to protect marketplace quality and customer trust.


5. Conversion Rate Decline: Systematic Diagnosis

Difficulty Level: High

Role: Senior Business Analyst / Lead Business Analyst

Source: LinkedIn (Jaydeep Patel), YouTube Mock Interviews

Topic: Funnel Analysis & Root Cause Investigation

Interview Round: Case Study / Business Analysis (60 min)

Business Function: Growth & Consumer Insights / Operations Analytics

Question: “Flipkart observed a 15% decline in app conversion rate last quarter across multiple categories. As a Business Analyst, walk through your diagnostic approach, hypotheses, metrics to monitor, and recommended actions. Provide SQL queries for investigation.”


Answer Framework

STAR Method Structure:
- Situation: Conversion rate dropped from 8% to 6.8% (15% relative decline), threatening quarterly GMV targets
- Task: Diagnose root cause via funnel analysis, segment by platform/category/user type, recommend interventions
- Action: Identify checkout page load time increased 2→4 seconds (primary driver), payment gateway failures up 10→15%, search CTR down 5%
- Result: Optimize checkout (reduce load time to 2.5s), add payment gateway redundancy (failures to 8%), improve search relevance (CTR to 18%), conversion recovers to 7.5%

Key Competencies Evaluated:
- Funnel Analysis: Breaking down conversion into stages (view → cart → checkout → payment → order)
- Segmentation: Platform, category, user type, geography to isolate issues
- Hypothesis Testing: Technical, product, external factors with data validation
- Action Prioritization: Quick wins vs long-term fixes based on impact/effort

Answer (Part 1 of 3): Funnel Analysis & Segmentation

Conversion funnel SQL identifies drop-off stages:

WITH funnel AS (
    SELECT
        DATE_TRUNC('week', event_date) AS week,
        platform,
        category,
        COUNT(DISTINCT CASE WHEN event_type = 'product_view' THEN session_id END) AS product_views,
        COUNT(DISTINCT CASE WHEN event_type = 'add_to_cart' THEN session_id END) AS cart_additions,
        COUNT(DISTINCT CASE WHEN event_type = 'checkout_start' THEN session_id END) AS checkout_starts,
        COUNT(DISTINCT CASE WHEN event_type = 'payment_attempt' THEN session_id END) AS payment_attempts,
        COUNT(DISTINCT CASE WHEN event_type = 'order_complete' THEN session_id END) AS orders
    FROM events
    WHERE event_date >= CURRENT_DATE - 90
    GROUP BY DATE_TRUNC('week', event_date), platform, category
)
SELECT
    week,
    platform,
    category,
    product_views,
    ROUND(100.0 * cart_additions / NULLIF(product_views, 0), 2) AS view_to_cart_pct,
    ROUND(100.0 * checkout_starts / NULLIF(cart_additions, 0), 2) AS cart_to_checkout_pct,
    ROUND(100.0 * payment_attempts / NULLIF(checkout_starts, 0), 2) AS checkout_to_payment_pct,
    ROUND(100.0 * orders / NULLIF(payment_attempts, 0), 2) AS payment_to_order_pct,
    ROUND(100.0 * orders / NULLIF(product_views, 0), 2) AS overall_conversion_pct
FROM funnel
ORDER BY week DESC, platform, category;

Platform performance comparison identifies Android/iOS/Web differences:

SELECT
    platform,
    AVG(page_load_time_ms) AS avg_page_load_time,
    ROUND(100.0 * SUM(CASE WHEN page_load_time_ms > 3000 THEN 1 ELSE 0 END) / COUNT(*), 2) AS slow_page_pct,
    AVG(session_duration_sec) AS avg_session_duration,
    ROUND(100.0 * SUM(CASE WHEN completed_purchase = 1 THEN 1 ELSE 0 END) / COUNT(DISTINCT session_id), 2) AS conversion_rate,
    ROUND(100.0 * SUM(CASE WHEN payment_failed = 1 THEN 1 ELSE 0 END) / NULLIF(SUM(CASE WHEN payment_attempt = 1 THEN 1 ELSE 0 END), 0), 2) AS payment_failure_rate
FROM web_analytics
WHERE date >= CURRENT_DATE - 90
GROUP BY platform
ORDER BY conversion_rate DESC;

Answer (Part 2 of 3): Root Cause Hypotheses & Validation

Hypothesis 1: Checkout performance degradation validated via page load time analysis showing checkout page load increased from 2 to 4 seconds (100% increase) correlating with conversion drop, caused by unoptimized database queries and image loading. Hypothesis 2: Payment gateway failures confirmed via payment success rate declining from 90% to 85% (5pp drop), specific to Razorpay gateway during peak hours, requiring multi-gateway fallback implementation. Hypothesis 3: Search relevance decline evidenced by search CTR dropping from 18% to 13% (28% relative decline), caused by algorithm change prioritizing sponsored results over organic relevance, requiring rebalancing. Hypothesis 4: Competitor activity validated via traffic analysis showing 10% decline in Electronics category coinciding with Amazon Great Indian Festival, requiring targeted promotions to win back price-sensitive users.

Answer (Part 3 of 3): Recommended Actions & Impact Measurement

Immediate fixes (0-2 weeks) optimize checkout page (reduce load time to 2.5s via CDN, image compression, database query optimization), implement payment gateway redundancy (Razorpay → PayU → Paytm fallback reducing failures to 8%), and revert search algorithm (restore organic relevance balance, sponsored results max 2 of top 10). Medium-term improvements (2-8 weeks) A/B test simplified checkout flow (5 steps → 3 steps), add buy-now-pay-later options (Flipkart PayLater, Simpl), implement personalized product recommendations (collaborative filtering), and launch targeted Electronics promotions (match Amazon pricing on top 100 SKUs). Success metrics track overall conversion rate recovery (6.8% → 7.5% target), checkout completion rate (45% → 55%), payment success rate (85% → 92%), search CTR (13% → 17%), and category-specific conversion (Electronics 5% → 6.5%), with weekly monitoring dashboard alerting if any metric degrades >5% for >24 hours preventing future undetected declines.


6. Customer Retention & Cohort Analysis

Difficulty Level: Very High

Role: Senior Business Analyst / Lead Business Analyst

Source: LinkedIn (Jaydeep Patel), Growth Analytics Best Practices

Topic: Cohort Analysis & Retention Metrics

Interview Round: Analytics / Business Strategy (60 min)

Business Function: Growth & Consumer Insights / Marketing Analytics

Question: “Flipkart’s monthly retention rate has declined from 45% to 38% (month-over-month). As a Business Analyst, design a data-driven approach to: Identify which customer cohorts are churning fastest? Segment at-risk customers for targeted interventions? Define retention metrics and tracking framework? Propose retention improvement strategies backed by data?”


Answer Framework

STAR Method Structure:
- Situation: Monthly retention dropped 7pp (45% → 38%), threatening LTV and growth targets
- Task: Identify churning cohorts, segment at-risk customers, design retention interventions
- Action: Cohort analysis shows Month-1 retention dropped from 60% to 50% (new user onboarding issue), segment at-risk high-value customers (90+ days inactive, 5+ lifetime orders), implement targeted campaigns
- Result: Month-1 retention improved to 55%, at-risk high-value reactivation 25%, overall retention recovered to 42%

Key Competencies Evaluated:
- Cohort Analysis: Tracking retention by acquisition month over time
- Customer Segmentation: Identifying at-risk segments (high-value, medium-value, low-value)
- Intervention Design: Personalized campaigns based on customer value and churn risk
- A/B Testing: Measuring incremental impact of retention initiatives

Answer (Part 1 of 3): Cohort Retention Analysis

Cohort retention SQL tracks monthly retention by acquisition cohort:

WITH cohorts AS (
    SELECT
        customer_id,
        DATE_TRUNC('month', first_purchase_date) AS cohort_month,
        DATE_TRUNC('month', order_date) AS order_month,
        DATEDIFF(month, DATE_TRUNC('month', first_purchase_date), DATE_TRUNC('month', order_date)) AS months_since_first_purchase
    FROM orders
),
cohort_counts AS (
    SELECT
        cohort_month,
        months_since_first_purchase,
        COUNT(DISTINCT customer_id) AS cohort_size
    FROM cohorts
    GROUP BY cohort_month, months_since_first_purchase
),
cohort_month_0 AS (
    SELECT
        cohort_month,
        COUNT(DISTINCT customer_id) AS cohort_0_size
    FROM cohorts
    WHERE months_since_first_purchase = 0
    GROUP BY cohort_month
)
SELECT
    cc.cohort_month,
    cc.months_since_first_purchase,
    cc.cohort_size,
    cm.cohort_0_size,
    ROUND(100.0 * cc.cohort_size / cm.cohort_0_size, 2) AS retention_pct
FROM cohort_counts cc
JOIN cohort_month_0 cm ON cc.cohort_month = cm.cohort_month
ORDER BY cc.cohort_month DESC, cc.months_since_first_purchase;

At-risk customer segmentation identifies customers showing churn signals:

WITH customer_signals AS (
    SELECT
        customer_id,
        customer_name,
        MAX(order_date) AS last_order_date,
        DATEDIFF(day, MAX(order_date), CURRENT_DATE) AS days_since_last_purchase,
        COUNT(DISTINCT DATE_TRUNC('month', order_date)) AS months_active,
        COUNT(DISTINCT order_id) AS lifetime_orders,
        AVG(order_value) AS avg_order_value,
        SUM(order_value) AS lifetime_value
    FROM orders
    GROUP BY customer_id, customer_name
)
SELECT
    customer_id,
    days_since_last_purchase,
    lifetime_orders,
    lifetime_value,
    CASE
        WHEN days_since_last_purchase > 90 AND lifetime_orders >= 5 THEN 'At-Risk High-Value'
        WHEN days_since_last_purchase > 60 AND lifetime_orders BETWEEN 2 AND 4 THEN 'At-Risk Medium-Value'
        WHEN days_since_last_purchase > 30 AND lifetime_orders = 1 THEN 'At-Risk Low-Value'
        ELSE 'Active'
    END AS customer_segment,
    CASE
        WHEN days_since_last_purchase > 90 AND lifetime_orders >= 5 THEN '20% Discount + Loyalty Points'
        WHEN days_since_last_purchase > 60 AND lifetime_orders BETWEEN 2 AND 4 THEN 'Free Shipping Offer'
        WHEN days_since_last_purchase > 30 AND lifetime_orders = 1 THEN 'Category Spotlight Email'
        ELSE NULL
    END AS recommended_intervention
FROM customer_signals
WHERE days_since_last_purchase > 0
ORDER BY lifetime_value DESC;

Answer (Part 2 of 3): Retention Improvement Strategies

Personalized campaigns target at-risk segments: high-value customers (90+ days inactive, 5+ orders) receive 20% discount + 2x SuperCoins via email/SMS achieving 25% reactivation rate (₹50 Cr recovered revenue), medium-value customers (60+ days inactive, 2-4 orders) get free shipping offer achieving 15% reactivation, low-value customers (30+ days inactive, 1 order) receive category spotlight emails showcasing new products achieving 10% reactivation. Onboarding optimization improves Month-1 retention from 50% to 55% via welcome email series (Day 1: discount code, Day 3: category recommendations, Day 7: free shipping reminder), first-purchase incentives (₹100 off on ₹500+ orders within 7 days), and personalized product recommendations based on browsing history. Loyalty program enhancement increases repeat purchase rate via tiered benefits (Bronze: 1x SuperCoins, Silver: 2x SuperCoins + free shipping, Gold: 3x SuperCoins + priority support + early sale access), exclusive previews for top 10% customers, and gamification (purchase streaks, category badges).

Answer (Part 3 of 3): A/B Testing & Success Metrics

A/B test design randomly assigns at-risk customers to control (no intervention) vs treatment (personalized campaign), measures 30-day purchase rate (treatment 25% vs control 10% = 15pp lift), calculates incremental revenue (₹50 Cr from high-value reactivation), and validates statistical significance (p-value <0.05, 95% confidence). Success metrics track overall monthly retention (38% → 42% target), cohort-specific retention (Month-1: 50% → 55%, Month-3: 40% → 45%, Month-6: 35% → 40%), at-risk reactivation rates (high-value 25%, medium-value 15%, low-value 10%), repeat purchase rate (40% → 48%), and customer lifetime value (₹3,000 → ₹3,600 via higher retention). Monitoring dashboard provides weekly retention trends, cohort heatmaps (retention % by cohort month and months since first purchase), at-risk customer counts by segment, campaign performance (reactivation rate, ROI), and alerts if retention drops >3pp for >2 weeks enabling proactive intervention before churn accelerates.


7. Pricing & Promotions Impact Analysis

Difficulty Level: Very High

Role: Senior Business Analyst / Lead Business Analyst

Source: LinkedIn Pricing Strategy Posts

Topic: Price Elasticity & Profitability Modeling

Interview Round: Case Study / Analytics (60 min)

Business Function: Monetization Analytics / Growth & Consumer Insights

Question: “Flipkart is planning a 30% discount on electronics during Big Billion Days. As a Business Analyst, how would you: Forecast the sales impact of this discount? Calculate profitability impact (revenue vs. profit margin)? Determine optimal discount level balancing volume and margin? Identify which customer segments are most price-sensitive? Provide SQL queries and business recommendations.”


Answer Framework

STAR Method Structure:
- Situation: Planning 30% Electronics discount for BBD, need to forecast impact on sales volume and profitability
- Task: Calculate price elasticity, model profitability scenarios (10%, 20%, 30%, 40% discounts), identify optimal discount
- Action: Historical analysis shows Electronics elasticity -2.0 (10% price drop → 20% volume increase), 30% discount projects 60% volume increase but 15% margin compression, optimal discount 25% maximizing total profit
- Result: Recommend 25% discount (vs 30%) saving 5pp margin while achieving 50% volume increase, targeting tier-2/3 cities (higher price sensitivity)

Key Competencies Evaluated:
- Price Elasticity: Calculating demand response to price changes
- Profitability Modeling: Balancing revenue growth with margin compression
- Scenario Analysis: Comparing multiple discount levels (10%, 20%, 30%, 40%)
- Customer Segmentation: Identifying price-sensitive vs brand-conscious segments

Answer (Part 1 of 3): Price Elasticity & Demand Forecasting

Price elasticity calculation uses historical data:

WITH price_demand AS (
    SELECT
        DATE_TRUNC('week', order_date) AS week,
        product_id,
        category,
        AVG(unit_price) AS avg_price,
        COUNT(DISTINCT order_id) AS quantity_sold,
        LAG(AVG(unit_price)) OVER (PARTITION BY product_id ORDER BY DATE_TRUNC('week', order_date)) AS prev_price,
        LAG(COUNT(DISTINCT order_id)) OVER (PARTITION BY product_id ORDER BY DATE_TRUNC('week', order_date)) AS prev_quantity
    FROM orders
    WHERE category = 'Electronics' AND order_date >= CURRENT_DATE - 180
    GROUP BY DATE_TRUNC('week', order_date), product_id, category
)
SELECT
    product_id,
    week,
    avg_price,
    quantity_sold,
    ROUND((quantity_sold - prev_quantity) * 100.0 / NULLIF(prev_quantity, 0), 2) AS qty_pct_change,
    ROUND((avg_price - prev_price) * 100.0 / NULLIF(prev_price, 0), 2) AS price_pct_change,
    ROUND((quantity_sold - prev_quantity) * 100.0 / NULLIF(prev_quantity, 0) /
          NULLIF((avg_price - prev_price) * 100.0 / NULLIF(prev_price, 0), 0), 2) AS price_elasticity
FROM price_demand
WHERE prev_price IS NOT NULL AND prev_quantity IS NOT NULL
ORDER BY product_id, week DESC;

-- Expected elasticity: -1.5 to -2.5 (elastic demand, 10% price drop → 15-25% volume increase)

Profitability scenario modeling compares discount levels:

WITH discount_scenarios AS (
    SELECT
        product_id,
        product_name,
        original_price,
        cost_of_goods,
        baseline_quantity,
        10 AS discount_pct,
        original_price * 0.9 AS discounted_price,
        baseline_quantity * 1.20 AS projected_quantity,  -- 20% volume increase (elasticity -2.0)
        (original_price * 0.9 - cost_of_goods) * baseline_quantity * 1.20 AS projected_profit
    FROM products
    WHERE category = 'Electronics'

    UNION ALL

    SELECT product_id, product_name, original_price, cost_of_goods, baseline_quantity,
           20, original_price * 0.8, baseline_quantity * 1.40,
           (original_price * 0.8 - cost_of_goods) * baseline_quantity * 1.40
    FROM products WHERE category = 'Electronics'

    UNION ALL

    SELECT product_id, product_name, original_price, cost_of_goods, baseline_quantity,
           30, original_price * 0.7, baseline_quantity * 1.60,
           (original_price * 0.7 - cost_of_goods) * baseline_quantity * 1.60
    FROM products WHERE category = 'Electronics'

    UNION ALL

    SELECT product_id, product_name, original_price, cost_of_goods, baseline_quantity,
           40, original_price * 0.6, baseline_quantity * 1.80,
           (original_price * 0.6 - cost_of_goods) * baseline_quantity * 1.80
    FROM products WHERE category = 'Electronics'
)
SELECT
    discount_pct,
    SUM(projected_quantity) AS total_units_sold,
    SUM(discounted_price * projected_quantity) AS total_revenue,
    SUM(projected_profit) AS total_profit,
    ROUND(100.0 * SUM(projected_profit) / SUM(discounted_price * projected_quantity), 2) AS profit_margin_pct
FROM discount_scenarios
GROUP BY discount_pct
ORDER BY total_profit DESC;

-- Expected optimal: 25% discount maximizes total profit (₹180 Cr vs ₹170 Cr at 30%)

Answer (Part 2 of 3): Customer Segment Price Sensitivity

Price-sensitive segment identification:

SELECT
    customer_segment,
    city_tier,
    COUNT(DISTINCT customer_id) AS customer_count,
    AVG(order_value) AS avg_order_value,
    ROUND(100.0 * SUM(CASE WHEN discount_used > 0 THEN 1 ELSE 0 END) / COUNT(*), 2) AS discount_usage_pct,
    AVG(cart_abandonment_rate) AS avg_abandonment_rate,
    CASE
        WHEN 100.0 * SUM(CASE WHEN discount_used > 0 THEN 1 ELSE 0 END) / COUNT(*) > 60 THEN 'Highly Price-Sensitive'
        WHEN 100.0 * SUM(CASE WHEN discount_used > 0 THEN 1 ELSE 0 END) / COUNT(*) BETWEEN 30 AND 60 THEN 'Moderately Price-Sensitive'
        ELSE 'Brand-Conscious'
    END AS price_sensitivity
FROM customer_orders
GROUP BY customer_segment, city_tier
ORDER BY discount_usage_pct DESC;

-- Target tier-2/3 cities (70% discount usage) with 30% discount, tier-1 cities (40% usage) with 20% discount

Answer (Part 3 of 3): Business Recommendations

Optimal discount strategy recommends 25% discount (vs 30% planned) saving 5pp margin while achieving 50% volume increase (vs 60% at 30%), projecting ₹180 Cr total profit (vs ₹170 Cr at 30% discount) demonstrating diminishing returns beyond 25%. Segmented pricing targets tier-2/3 cities with 30% discount (high price sensitivity, 70% discount usage rate), tier-1 cities with 20% discount (brand-conscious, 40% discount usage), and premium brands with 15% discount (maintaining brand positioning). Timing optimization implements tiered discounts: early-bird first 2 hours 35% (create urgency), standard Days 1-4 25% (sustainable margin), ending surge last 6 hours 30% (clear remaining inventory), maximizing revenue while managing inventory. Success metrics track volume increase (target 50% vs baseline), revenue growth (target ₹500 Cr vs ₹350 Cr baseline), profit margin (target 18% vs 25% baseline acceptable for volume event), customer acquisition (target 5M new customers), and repeat purchase rate (target 40% of BBD customers return within 3 months validating quality of acquisition not just discounted one-time buyers).


8. Indexing Strategy & Performance Optimization

Difficulty Level: High

Role: Senior Business Analyst / Lead Business Analyst

Source: LinkedIn (Rajat Sharma, Bhuvnesh Kumar), SQL Technical Rounds

Topic: Database Optimization & Query Performance

Interview Round: SQL Technical Round (45 min)

Business Function: Data Infrastructure / Operations Analytics

Question: “You have a large dataset with slow query performance. Explain what indexing is, when an index can reduce performance rather than improve it, and how you would approach indexing strategy for a massive Flipkart transactions table (500M+ rows). Provide examples of good and bad indexing decisions.”


Answer Framework

STAR Method Structure:
- Situation: Orders table (500M rows) with slow query performance (45s for user order history query)
- Task: Design indexing strategy improving read performance without degrading write performance
- Action: Create composite index (user_id, order_date DESC) for order history queries, avoid indexing low-selectivity columns (payment_method), monitor write impact
- Result: Query time reduced 45s → 2s (95% improvement), write performance degraded <5% (acceptable trade-off)

Key Competencies Evaluated:
- Indexing Fundamentals: Understanding B-tree indexes, composite indexes, covering indexes
- Performance Trade-offs: Read improvement vs write degradation
- Query Optimization: Using EXPLAIN PLAN to validate index usage
- Selectivity Analysis: Indexing high-selectivity columns (user_id, product_id) not low-selectivity (gender, payment_method)

Answer (Part 1 of 3): Indexing Fundamentals & When to Use

Indexing definition creates sorted data structure (B-tree) enabling fast lookups (O(log n) vs O(n) full table scan), similar to book index allowing direct page jump vs reading entire book. When indexing improves performance: filtering on frequently searched columns (user_id, product_id, order_date), WHERE clauses with selective conditions (<5% of rows), JOIN conditions on indexed columns, ORDER BY and GROUP BY operations, and large tables (1M+ rows) with specific column queries. Good indexing example for Flipkart orders table:

-- High-selectivity composite index for user order history
CREATE INDEX idx_user_order_date ON orders(user_id, order_date DESC);

-- Enables fast query: SELECT * FROM orders WHERE user_id = 12345 ORDER BY order_date DESC LIMIT 20;
-- Query time: 45s → 2s (95% improvement)

-- Product category index for search queries
CREATE INDEX idx_product_category ON orders(product_id, category);

-- Enables fast query: SELECT * FROM orders WHERE product_id = 'ABC123' AND category = 'Electronics';

Answer (Part 2 of 3): When Indexing Reduces Performance

Write-heavy operations suffer from indexing where every INSERT, UPDATE, DELETE must update all indexes, critical during Big Billion Days flash sales with millions of new orders flooding system (index maintenance overhead slows writes). Low-selectivity columns provide minimal benefit when indexing columns with few unique values (gender: M/F, payment_method: COD/Card/UPI/Wallet, active: Y/N) where index scan still examines most rows defeating purpose. Bad indexing examples:

-- BAD: Indexing low-selectivity column (only 4 values)
CREATE INDEX idx_payment_method ON orders(payment_method);
-- Problem: Query "WHERE payment_method = 'COD'" returns 50% of rows, full table scan faster than index scan

-- BAD: Wrong composite index order
CREATE INDEX idx_date_user ON orders(order_date, user_id);
-- Problem: Query "WHERE user_id = 12345 AND order_date > '2025-01-01'" cannot use index efficiently
-- (user_id is second column, not first, so index scan starts from order_date)

-- GOOD: Correct composite index order
CREATE INDEX idx_user_date ON orders(user_id, order_date DESC);
-- Query uses index efficiently (user_id first, then order_date filter)

Query selectivity <5% rule: for queries returning >5% of table rows, full table scan often faster than index scan due to random I/O overhead of index lookups.

Answer (Part 3 of 3): Indexing Strategy & Monitoring

Indexing decision framework: analyze query patterns (which WHERE clauses executed most frequently via slow query log), measure query cost (use EXPLAIN PLAN showing index usage, estimated rows scanned, execution time), monitor write impact (track INSERT/UPDATE performance before/after indexing), perform selectivity analysis (only index columns where <5% of rows match typical query), design composite indexes (order by most selective column first), and conduct regular maintenance (rebuild fragmented indexes monthly, drop unused indexes identified via query logs). Monitoring approach tracks index usage statistics (pg_stat_user_indexes showing index scans, tuples read, tuples fetched), query performance trends (p95 latency for top 100 queries), write performance impact (INSERT/UPDATE throughput before/after indexing), and index bloat (fragmentation percentage requiring rebuild). Flipkart-specific strategy for orders table (500M rows) creates idx_user_order_date (user order history, 80% of queries), idx_seller_date (seller dashboard, 15% of queries), idx_product_category (search queries, 5% of queries), avoids indexing payment_method, status, city_tier (low selectivity), and monitors write performance during BBD (acceptable <10% degradation for 90% read improvement trade-off).


9. Duplicate Records: Identification & Removal Strategy

Difficulty Level: Medium

Role: Business Analyst / Senior Business Analyst

Source: LinkedIn (Rajat Sharma, Bhuvnesh Kumar), SQL Technical Rounds

Topic: Data Quality & SQL Proficiency

Interview Round: SQL Technical Round (30 min)

Business Function: Data Quality / Operations Analytics

Question: “Given a large dataset with duplicate records, explain how you would identify and remove duplicates while retaining the first occurrence. Write an SQL query for Flipkart’s customer table where duplicates exist due to multiple registrations. Discuss business impact of duplicates.”


Answer Framework

STAR Method Structure:
- Situation: Customer table has duplicates (same customer registered multiple times), inflating DAU and distorting CLV analysis
- Task: Identify duplicates, remove keeping first occurrence (earliest signup_date), validate data integrity
- Action: Use ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY signup_date ASC) to rank duplicates, DELETE WHERE rn > 1
- Result: Removed 2.5M duplicate records (5% of 50M customers), corrected DAU from 12M to 10M (20% inflation), improved CLV accuracy

Key Competencies Evaluated:
- Window Functions: Using ROW_NUMBER() for deduplication
- Data Quality: Understanding business impact of duplicates (inflated metrics, incorrect analysis)
- SQL Proficiency: Writing efficient DELETE queries with CTEs
- Validation: Checking data integrity before/after deduplication

Answer (Part 1 of 3): Duplicate Identification & Removal

Identify duplicates using GROUP BY and HAVING:

-- Find duplicate customer_ids
SELECT customer_id, COUNT(*) as duplicate_count
FROM customers
GROUP BY customer_id
HAVING COUNT(*) > 1
ORDER BY duplicate_count DESC;

-- Expected output: 2.5M customer_ids with 2+ records (5% of 50M total)

Remove duplicates keeping first occurrence (earliest signup_date):

-- Method 1: Using ROW_NUMBER() window function (RECOMMENDED)
WITH ranked_customers AS (
    SELECT
        customer_id,
        email,
        signup_date,
        ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY signup_date ASC) AS rn
    FROM customers
)
DELETE FROM customers
WHERE (customer_id, signup_date) IN (
    SELECT customer_id, signup_date
    FROM ranked_customers
    WHERE rn > 1
);

-- Method 2: Using self-join (ALTERNATIVE)
DELETE FROM customers c1
USING customers c2
WHERE c1.customer_id = c2.customer_id
AND c1.signup_date > c2.signup_date;

-- Validation: Verify no duplicates remain
SELECT customer_id, COUNT(*)
FROM customers
GROUP BY customer_id
HAVING COUNT(*) > 1;
-- Expected output: 0 rows (all duplicates removed)

Answer (Part 2 of 3): Business Impact of Duplicates

Metric inflation causes DAU (Daily Active Users) overstatement where duplicate customer records counted as separate users (12M reported DAU vs 10M actual = 20% inflation), distorting growth metrics and investor reporting. CLV distortion splits single customer’s purchases across multiple records (Customer A with ₹10k lifetime value appears as two customers with ₹5k each), underestimating high-value customers and misallocating marketing spend. Cohort analysis errors assign same customer to multiple cohorts (registered Jan 2024 and Mar 2024 as duplicates), breaking retention analysis and making Month-1 retention appear artificially high (customer counted twice). Operational issues include duplicate marketing emails (customer receives same campaign twice, increasing unsubscribe rate), conflicting customer support records (support agent sees two profiles for same customer, causing confusion), and inventory allocation errors (duplicate orders from same customer not recognized, causing stockouts).

Answer (Part 3 of 3): Prevention & Validation

Prevention strategies implement unique constraints (ALTER TABLE customers ADD CONSTRAINT unique_customer_id UNIQUE (customer_id)), email validation during registration (check if email already exists before creating account), merge duplicate accounts (combine purchase history, wishlist, addresses into single record), and monitor duplicate creation rate (alert if duplicates >1% of new registrations indicating registration flow bug). Validation queries check data integrity before deduplication (count total records, sum order values, verify no orphaned orders), after deduplication (confirm counts match expected reduction, validate no data loss), and ongoing monitoring (daily duplicate detection query, alert if duplicates >100 created in 24 hours). Root cause analysis investigates why duplicates occur: same customer registers multiple times (forgot password, new device), data migration errors from legacy systems, cross-platform registration (mobile app + web creating separate accounts), and API bugs (registration endpoint not checking existing customer_id before INSERT).


10. Declining Weekend Orders: Multi-Dimensional Root Cause Analysis

Difficulty Level: High

Role: Business Analyst / Senior Business Analyst

Source: YouTube Mock Interviews, Flipkart BA Case Studies

Topic: Multi-Dimensional Analysis & Stakeholder Communication

Interview Round: Case Study / Problem-Solving (60 min)

Business Function: Operations Analytics / Consumer Experience

Question: “Flipkart has observed a steady decline in weekend orders over the past 4 weeks. Weekend orders, which typically represent 35% of weekly volume, have dropped to 28%. As a Business Analyst, how would you: Verify the pattern (is it real or data anomaly)? Form hypotheses across multiple dimensions (product, customer, external)? Propose a diagnostic approach with specific queries? Communicate findings to stakeholders?”


Answer Framework

STAR Method Structure:
- Situation: Weekend orders dropped from 35% to 28% of weekly volume (20% relative decline) over 4 weeks
- Task: Verify trend, identify root cause via multi-dimensional analysis, recommend interventions
- Action: Confirm pattern via SQL (weekend orders down 15% YoY), segment by category (Electronics -25%, Fashion -12%), identify mobile app performance degradation on weekends (page load time 2s → 4s)
- Result: Optimize mobile app (reduce weekend load time to 2.5s), launch weekend-specific promotions (Electronics flash deals), weekend orders recover to 33%

Key Competencies Evaluated:
- Trend Verification: Distinguishing real patterns from noise using statistical analysis
- Multi-Dimensional Segmentation: Category, platform, user type, geography
- Hypothesis Formation: Technical, behavioral, external factors
- Stakeholder Communication: Executive summary with data-backed recommendations

Answer (Part 1 of 3): Trend Verification & Segmentation

Verify weekend trend using SQL:

SELECT
    EXTRACT(WEEK FROM order_date) AS week_num,
    CASE WHEN EXTRACT(ISODOW FROM order_date) IN (6, 7) THEN 'Weekend' ELSE 'Weekday' END AS day_type,
    COUNT(DISTINCT order_id) AS order_count,
    SUM(order_value) AS total_revenue,
    ROUND(100.0 * COUNT(DISTINCT order_id) / SUM(COUNT(DISTINCT order_id)) OVER (PARTITION BY EXTRACT(WEEK FROM order_date)), 2) AS pct_of_weekly_orders
FROM orders
WHERE order_date >= CURRENT_DATE - 28
GROUP BY EXTRACT(WEEK FROM order_date), day_type
ORDER BY week_num DESC, day_type;

-- Expected output: Weekend orders declining from 35% to 28% over 4 weeks (confirmed trend)

Category-level segmentation:

SELECT
    category,
    CASE WHEN EXTRACT(ISODOW FROM order_date) IN (6, 7) THEN 'Weekend' ELSE 'Weekday' END AS day_type,
    COUNT(DISTINCT order_id) AS order_count,
    AVG(order_value) AS avg_order_value
FROM orders
WHERE order_date >= CURRENT_DATE - 28
GROUP BY category, day_type
ORDER BY category, day_type DESC;

-- Expected output: Electronics -25% weekend orders, Fashion -12%, Grocery -8%

Answer (Part 2 of 3): Hypothesis Testing & Root Cause

Hypothesis 1: Mobile app performance degradation validated via weekend-specific page load analysis showing mobile app load time increased from 2s to 4s on weekends (100% increase) due to server capacity constraints during peak traffic, while weekday performance remained stable at 2s. Hypothesis 2: Competitor weekend promotions confirmed via traffic analysis showing 10% decline in Electronics category coinciding with Amazon weekend flash sales (Saturday-Sunday specific), requiring targeted counter-promotions. Hypothesis 3: Customer behavior shift evidenced by younger demographic (18-25 age group, 40% of weekend traffic) showing 30% decline in orders, caused by increased social media usage on weekends (Instagram, YouTube) diverting attention from shopping apps. Hypothesis 4: Inventory stockouts validated via weekend-specific out-of-stock analysis showing popular Electronics products (smartphones, laptops) stocking out by Saturday afternoon (12pm), with no restocking until Monday, causing lost sales and customer frustration.

Answer (Part 3 of 3): Recommendations & Stakeholder Communication

Immediate fixes (0-2 weeks) optimize mobile app weekend performance (scale server capacity 2x on Saturdays/Sundays, reduce page load time to 2.5s), launch weekend-specific Electronics promotions (Saturday flash deals matching Amazon pricing on top 50 SKUs), and implement weekend inventory management (restock popular products Friday evening, monitor stock levels hourly on weekends). Medium-term improvements (2-8 weeks) redesign weekend shopping experience (gamification: weekend treasure hunt, limited-time offers creating urgency), target younger demographic (Instagram/YouTube ads on Fridays promoting weekend deals), and optimize delivery promises (guarantee Sunday delivery for Saturday orders, reducing wait time anxiety). Stakeholder communication provides executive summary: Finding (weekend orders declined 35% → 28% over 4 weeks = 20% relative decline), Root Cause (mobile app performance degradation + competitor promotions + inventory stockouts), Business Impact (₹50 Cr weekly revenue loss = ₹200 Cr monthly), Recommended Actions (app optimization, weekend promotions, inventory management), Success Metrics (weekend orders 28% → 33% target, Electronics weekend orders +15%, mobile app load time <2.5s), and Timeline (Week 1-2: app optimization, Week 3-4: promotions launch, Week 5-8: monitor recovery).