Company Interview Questions · Banking & Fintech

PhonePe: Decision Scientist

❓ 6 questions🏢 PhonePe🆕 Recent reports

PhonePe: Decision Scientist Interview Experiences (2024–25). Rounds, real reported questions and model answers, compiled from public candidate reports (sources at the end). Practice mode hides every answer: say your answer first, press Show answer, then rate yourself. Use 🔁 Review again to build your revision list and 🎲 Random question for a quick drill.

About this interview

Compiled from public candidate reports for PhonePe Decision Scientist roles: Bengaluru (September 2024, 3 rounds) and July 2025 (5 rounds: SQL coding + 4 interviews). The questions are paraphrased, and the model answers are written by EasyLearnSpace.

Role Decision Scientist (data science / analytics)
Rounds SQL coding → technical (SQL + resume) → root cause analysis (RCA) + SQL → case studies → associate director (incl. data modelling)
Reported tasks Easy–medium SQL, RCA problems, case studies, design 5 tables for a BookMyShow-like app
Outcomes Not selected in both reports (rated difficult / negative)
Lesson SQL fluency + structured RCA thinking decide this loop

01Rounds at a glance

02Questions and model answers

Q1
RCA: UPI payment success rate dropped from 97% to 94% yesterday. How do you investigate?
  1. Validate: a logging or definition change? A partial-day effect? Compare with the same weekday last week.
  2. Segment the drop: - Bank (issuer or remitter): one bank's server down? - PSP/app version, OS, merchant category, transaction type (P2P vs P2M), amount band, geography, hour.
  3. Error codes: timeouts vs declines vs "insufficient funds" (user behaviour) vs technical failures.
  4. External events: NPCI incidents, bank maintenance windows, festivals with traffic spikes.
  5. Quantify each contributor (contribution to the delta), then recommend: route around a failing bank, alert the partner, add retries, fix the app bug.
  6. Prevent: anomaly alerts by bank and error code.
Q2
Design 5 core tables for a ticket-booking app like BookMyShow.
users(user_id PK, name, phone UNIQUE, email, city, created_at)
theatres(theatre_id PK, name, city, address)
screens_seats(seat_id PK, theatre_id FK, screen_no, row_label, seat_no, seat_type)
shows(show_id PK, movie_id FK, theatre_id FK, screen_no, start_time, base_price)
bookings(booking_id PK, user_id FK, show_id FK, status, amount, payment_id, created_at)
booking_seats(booking_id FK, seat_id FK, show_id FK, PRIMARY KEY(show_id, seat_id))  -- prevents double booking
  • Plus movies(movie_id, title, language, duration, rating).
  • Explain the unique (show_id, seat_id) constraint and seat locking with a TTL during payment. Index shows(theatre_id, start_time).
Q3
SQL: find users whose number of transactions dropped more than 50% month over month.
WITH m AS (
  SELECT user_id, DATE_TRUNC('month', txn_time) AS mon, COUNT(*) AS n
  FROM txns GROUP BY 1, 2
), w AS (
  SELECT user_id, mon, n, LAG(n) OVER (PARTITION BY user_id ORDER BY mon) AS prev_n FROM m
)
SELECT user_id, mon, prev_n, n
FROM w WHERE prev_n IS NOT NULL AND n < 0.5 * prev_n;
  • Note that users with zero transactions in a month have no row, so join to a calendar (or user × month grid) to catch full drop-offs.
Q4
Case: how would you measure the success of a new cashback campaign?
  • Goal: incremental transactions or users, not just total redemptions.
  • Design: a randomised holdout (or geo test); a primary metric (incremental transacting users, GMV); guardrails (cost per incremental user, fraud/abuse, post-campaign retention).
  • Analysis: lift vs holdout with confidence intervals; ROI = incremental margin − cashback cost; check cannibalisation and pull-forward effects; segment by new vs existing users.
  • Recommendation: continue for the segments with positive ROI and stop elsewhere.
Q5
How would you detect fraud or abuse in a cashback or referral programme?
  • Signals:
  • Many accounts on one device.
  • Shared bank accounts or UPI handles.
  • Rapid sign-up → redeem → dormant patterns.
  • Circular P2P transfers.
  • Emulator or rooted-device flags.
  • Methods: rules for known patterns, a graph (connected components on device/bank/phone links), anomaly scores, and a supervised model once labels exist.
  • Actions: hold rewards for review, set velocity limits, require KYC for higher tiers. Track the false-positive impact on genuine users.
Q6
Explain the difference between WHERE and HAVING, and between INNER and LEFT JOIN with a filter.
  • WHERE filters rows before aggregation; HAVING filters groups after aggregation (e.g. HAVING COUNT(*) > 5).
  • Pitfall: LEFT JOIN b ... WHERE b.col = 'x' turns it into an inner join (rows with NULLs are dropped). Put the condition in the ON clause to keep the unmatched left rows.

03How to prepare for PhonePe

Sources

Created by Ajeetkumar