Skip to content

HDFC Bank Data Analytics Interview Questions & Answers

Curated interview practice questions with answers. These are practice scenarios, not a verified list of past interview questions.

About HDFC Bank hiring for Data Analytics roles

HDFC Bank is one of India's largest private sector banks, offering retail banking, loans, cards, wholesale banking and digital banking. Its analytics, risk and technology teams work on credit decisions, customer analytics, fraud detection and digital channels. It hires for data analysts, credit and risk analysts, testers and technology roles.

For Data Analytics roles, this HDFC Bank practice set focuses most on SQL (7), Statistics and Case Studies (6), Python for Analysis (5), A/B Testing & Experiments (4). It has 3 easy, 33 medium, 4 hard questions, so you can start easy and work up to the harder ones.

Company type
Banking & finance
Headquarters
Mumbai, India
Main India offices
Mumbai, Chennai, Bengaluru

HDFC Bank Data Analytics interview process

  1. Online assessment (aptitude + domain)
  2. Technical or functional interview
  3. Managerial round
  4. HR round

Typical pattern based on public candidate experiences. Rounds vary by role, team and year.

Solved for HDFC BankStart practicing
3 QUESTIONS FREESign up to unlock the full question bank and track your progress.Unlock every question and answer, then continue practising company-wise and package-wise.
3 questions free Unlock the rest in seconds
01

You share a forecasting workbook and users keep overwriting formulas. How do you protect it?

Save to ▾
Show answer
Separate input cells from calculation cells and colour inputs clearly. Unlock only the input cells through Format Cells, Protection, then protect the sheet so formulas cannot be edited, and optionally hide formulas. Add data validation on inputs to block wrong values such as negative quantities. Protect workbook structure so sheets cannot be deleted, keep a version history, and add a short instructions sheet so users know where to type.
02

On day 4 of a planned 14-day test, the product manager wants to stop because the dashboard shows treatment winning. What do you say?

Save to ▾
Show answer
I would explain that early results swing a lot and stopping on a good day inflates false positives, and that four days miss weekly patterns like weekend shopping. I would show how the lift has moved day by day and agree to the planned end date. If speed really matters, we can agree a sequential testing rule for future tests, but changing the rule mid-test after seeing data is not valid.
03

A stakeholder wants 20 more visuals added to an already crowded dashboard page. How do you respond?

Save to ▾
Show answer
I would ask which decisions each new visual supports and how often they will look at it. Usually a few are essential and the rest are nice to have. I would propose keeping the main page focused on core KPIs and moving detail into drill-through pages, tooltips or a separate analysis tab. Showing a quick mock-up of both versions helps them see that the cleaner page answers questions faster.
04

Your test increased conversion rate by 3% but average order value dropped by 5%. What do you recommend?

Save to ▾
Show answer
Look at the metric that reflects business value, such as revenue or margin per visitor, which combines both effects. Here revenue per visitor is roughly 1.03 times 0.95, about 2% lower, so the change may hurt. Check whether the drop is significant, which segments drive it, and whether new buyers are making smaller first orders that grow later. Without a strong reason, I would not ship it as is.
05

What types of dashboard actions does Tableau offer?

Save to ▾
Show answer
Filter actions filter other sheets when a user selects or hovers on a mark, such as clicking a region to filter a product table. Highlight actions emphasise related marks without removing others. URL actions open a web page with field values in the link. Go to Sheet navigates to another dashboard. Parameter and set actions update a parameter or set based on selection, enabling advanced interactions like dynamic drill-downs and comparisons.
06

Traffic suddenly doubled from one city, with near-zero engagement time and no conversions. What is happening and what do you do?

Save to ▾
Show answer
This is very likely bot or spam traffic, or a misfiring tag. Check the user agents, IP ranges, hostnames, screen resolutions and landing pages for that traffic. If it is bots, exclude it with filters or data segments in analytics and in your reporting layer, and inform the web team so they can block it. Then restate the affected dashboard numbers, because bots inflate sessions and pull down conversion rate.
07

What is Row-Level Security?

Save to ▾
Show answer
Rules that restrict data per user role, for example sales managers seeing only their region, defined with DAX filters and assigned in the Service.
08

What is Simpson's paradox? Give an example.

Save to ▾
Show answer
Simpson's paradox happens when a trend in several groups reverses when the groups are combined, because group sizes differ. Example: a new sales process has higher conversion in both small and large stores, yet overall conversion looks lower because it was mostly rolled out to large stores, which convert worse in general. The lesson is to check segments and confounding variables before concluding from aggregate numbers.
09

How do you create a new column from conditions?

Save to ▾
Show answer
Use np.where for one condition, np.select for several, or df.apply with a function for custom logic.
10

What is a CTE and why use it?

Save to ▾
Show answer
A Common Table Expression is a named temporary result defined with WITH that makes complex queries readable and allows recursion.
11

What is columnar storage and why do analytical warehouses use it?

Save to ▾
Show answer
Columnar storage keeps all values of one column together on disk instead of storing full rows together. Analytical queries usually read a few columns across millions of rows, so the engine reads only those columns. Similar values sit side by side and compress very well, which cuts storage and scan cost. The trade-off is slower single-row inserts and updates, which is why OLTP databases stay row-based.
12

Write SQL to calculate sessions, orders and conversion rate by traffic source.

Save to ▾
Show answer
SELECT s.traffic_source, COUNT(*) AS sessions, COUNT(o.order_id) AS orders, ROUND(100.0 * COUNT(o.order_id) / COUNT(*), 2) AS conversion_pct FROM sessions s LEFT JOIN orders o ON o.session_id = s.session_id GROUP BY s.traffic_source ORDER BY sessions DESC; -- assumes at most one order per session; otherwise use COUNT(DISTINCT o.session_id)
13

How do you define and choose KPIs?

Save to ▾
Show answer
Pick metrics tied to a business goal that are measurable, actionable and owned by someone, and pair a lagging metric with a leading one.
14

Organic search traffic fell 40% overnight. How do you investigate?

Save to ▾
Show answer
First check whether it is a tracking problem: did the analytics tag break on some templates, did consent settings change, does server log or backend order data show the same fall? If the drop is real, check the search console for impressions and rankings, recent site releases such as changed URLs, missing redirects, noindex tags or robots.txt changes, and whether a search algorithm update or seasonal pattern matches. Then break the drop down by page group.
15

How are NULLs handled in SQL?

Save to ▾
Show answer
NULL means unknown, so comparisons with = fail; use IS NULL, COALESCE for defaults and remember most aggregates ignore NULLs except COUNT(*).
16

What is Power Query's role in Power BI?

Save to ▾
Show answer
It extracts and transforms data using recorded steps in M language, such as merging, unpivoting, changing types and removing errors, before loading to the model.
17

What is CUPED and how does it speed up experiments?

Save to ▾
Show answer
CUPED is a variance reduction method that uses each user's pre-experiment behaviour, such as spend in the previous four weeks, as a covariate. You adjust the outcome by removing the part explained by past behaviour, which is unrelated to the treatment because assignment was random. The lower variance gives tighter confidence intervals, so you can detect the same effect with fewer users or a shorter test, often 20-50% faster.
18

Average delivery time improved by 4 minutes, but customer complaints about late deliveries went up. How do you investigate?

Save to ▾
Show answer
An average can improve while the tail gets worse. I would look at the distribution: median, 90th and 95th percentiles and the share of orders beyond the promised time. Then break it down by city, time slot and restaurant to see where late orders cluster. Also check whether promised times changed, whether complaint tracking changed and whether a few very fast orders pulled the mean down.
19

What is the difference between a calculated table in DAX and a table created in Power Query?

Save to ▾
Show answer
A Power Query table is built during data refresh using M, before data enters the model, and is compressed like any imported table. A DAX calculated table is computed after load from other model tables, using functions such as CALENDAR, SUMMARIZE or DISTINCT. Prefer Power Query for shaping and cleaning source data. Use calculated tables for model-dependent needs, such as a date table from existing data or a small what-if table.
20

Tell me about a time a query you wrote produced wrong results.

Save to ▾
Show answer
Situation: my weekly active users number jumped 30 percent overnight. Task: find out whether it was real before the report went out. Action: I traced the query and found a new join to a device table created duplicate users. I changed the count to COUNT(DISTINCT user_id), added a row-count check, and informed my manager before publishing. Result: the corrected number went out on time, and I added that check to every report.
21

You must present to the sales team that they missed their quarterly target by 18%. How do you handle it?

Save to ▾
Show answer
Lead with the fact clearly, then show where the gap came from, such as which regions, products or deal stages, so it becomes actionable rather than a blame session. Separate controllable causes like lower conversion from uncontrollable ones like a delayed product launch. Highlight what did work, and end with two or three specific actions and the metrics to track them. Share the numbers with sales leaders privately first, to avoid surprises.
22

What is regression to the mean? Give a business example.

Save to ▾
Show answer
Regression to the mean means extreme results tend to be followed by more average results, simply because part of the extreme was luck. For example, if you pick the 10 worst-performing stores this quarter and give them a training programme, many will improve next quarter even without training. To claim the programme worked, compare them with similar low performers who did not get it.
23

Your scheduled Python report failed silently and nobody noticed for a week. How do you make it reliable?

Save to ▾
Show answer
Add logging to a file or central log, wrap the main steps in try and except that send an alert by email or chat on failure, and exit with a non-zero code so the scheduler marks the job failed. Add data checks, such as row counts above a minimum and no missing dates, before sending output. Use a proper scheduler or orchestrator with retries, and include the data date in every report.
24

How do you make sure a metric like active customer means the same thing across all teams?

Save to ▾
Show answer
Write a clear definition in a shared metric dictionary: formula, filters, time window, grain, owner and source table, for example a customer with at least one paid order in the last 90 days. Implement it once, in a governed dataset or semantic layer, and have all dashboards reuse it rather than recalculating. Version changes, announce them and show the definition in the dashboard tooltip. Review new metrics before they are published.
25

Your pandas script shows SettingWithCopyWarning and a new column does not update. What is happening and how do you fix it?

Save to ▾
Show answer
It warns that you may be modifying a temporary copy of a slice, so the change might not reach the original DataFrame, for example df[df.sales > 0]['flag'] = 1. Avoid it by using a single loc call, df.loc[df.sales > 0, 'flag'] = 1, or by calling .copy() when you intentionally create a new subset. Newer pandas versions with copy-on-write make behaviour more predictable, but clear loc assignments remain best practice.
26

Write SQL for a running total of sales by date.

Save to ▾
Show answer
SELECT order_date, SUM(amount) OVER (ORDER BY order_date) AS running_total FROM sales;
27

What is hypothesis testing in simple words?

Save to ▾
Show answer
You assume no effect (null), collect evidence and decide whether the data is surprising enough to reject that assumption at a chosen significance level.
28

What is DAX and how does it differ from Excel formulas?

Save to ▾
Show answer
DAX is the formula language for Power BI models. It works on columns and tables with filter context rather than on individual cells.
29

What is the difference between DELETE, TRUNCATE and DROP?

Save to ▾
Show answer
DELETE removes chosen rows and can be rolled back; TRUNCATE empties the table quickly; DROP removes the table structure itself.
30

When do you use a chi-square test?

Save to ▾
Show answer
A chi-square test of independence checks whether two categorical variables are related, using a contingency table of counts. Example: is preferred payment method related to city tier? It compares observed counts with the counts expected if there were no relationship. Use it with counts, not percentages, and make sure expected counts are not too small, roughly at least 5 per cell. A significant result shows association, not causation.
31

Write pandas code to calculate monthly revenue from an orders DataFrame.

Save to ▾
Show answer
import pandas as pd orders = pd.read_csv('orders.csv', parse_dates=['order_date']) orders['revenue'] = orders['qty'] * orders['unit_price'] monthly = ( orders .groupby(orders['order_date'].dt.to_period('M'))['revenue'] .sum() .reset_index(name='revenue') ) print(monthly)
32

Tell me about a time you found a mistake in a report after it had already been shared.

Save to ▾
Show answer
Situation: a day after sending a weekly report, I noticed one region's numbers included test orders. Task: correct it before decisions were made. Action: I quantified the impact, a 3 percent overstatement, and emailed the same audience with the corrected figures, a short explanation and the fix I had added to prevent repeats. Result: my manager appreciated the quick ownership, and the test-order filter became part of our shared dataset.
33

Write SQL to calculate open rate and click-through rate for each email campaign.

Save to ▾
Show answer
SELECT s.campaign_id, COUNT(DISTINCT s.user_id) AS delivered, COUNT(DISTINCT o.user_id) AS opened, COUNT(DISTINCT c.user_id) AS clicked, ROUND(100.0 * COUNT(DISTINCT o.user_id) / COUNT(DISTINCT s.user_id), 1) AS open_rate, ROUND(100.0 * COUNT(DISTINCT c.user_id) / COUNT(DISTINCT s.user_id), 1) AS ctr FROM email_sends s LEFT JOIN email_opens o ON o.campaign_id = s.campaign_id AND o.user_id = s.user_id LEFT JOIN email_clicks c ON c.campaign_id = s.campaign_id AND c.user_id = s.user_id WHERE s.status = 'delivered' GROUP BY s.campaign_id;
34

How do you measure impact when a proper A/B test is not possible?

Save to ▾
Show answer
Use quasi-experimental methods. Difference-in-differences compares the change in a treated group, such as cities that got a new policy, with the change in similar untreated cities over the same period. Synthetic control builds a weighted mix of untreated regions to mimic the treated one. Regression discontinuity uses a cut-off, like a credit score threshold. Always check pre-period trends and state the assumptions clearly.
35

Your NOT IN query unexpectedly returns zero rows. Why might that happen, and how do EXISTS and IN differ?

Save to ▾
Show answer
IN checks whether a value is in a list or subquery result; EXISTS checks whether a subquery returns at least one row and stops at the first match. Results are the same in most cases, and modern optimisers often run them similarly. The big difference is NOT IN with NULLs: if the subquery returns any NULL, NOT IN returns no rows. NOT EXISTS behaves correctly, so prefer it for anti-joins.
36

What is the difference between mean and median for reporting salaries?

Save to ▾
Show answer
Salaries are right-skewed, so the median better represents the typical employee while the mean is pulled up by a few high earners.
37

How do you change data types and parse dates?

Save to ▾
Show answer
df['date'] = pd.to_datetime(df['date']); df['amount'] = pd.to_numeric(df['amount'], errors='coerce'); astype('category') for repeated strings.
38

How do you handle errors like #N/A and #DIV/0!?

Save to ▾
Show answer
Fix the root cause when possible, or wrap formulas with IFERROR or IFNA to return a clear fallback value.
39

What is an action title and why should you use one?

Save to ▾
Show answer
An action title states the insight of a chart or slide as a sentence instead of a label. Instead of Monthly Sales by Region, write South region drove 70 percent of the decline since July. Busy executives may read only the titles, so each one should carry the message and, ideally, the so-what. The chart below then proves the title. Read only your titles in order: they should tell the whole story.
40

What is a transaction and what do the ACID properties mean?

Save to ▾
Show answer
A transaction is a group of SQL statements that succeed or fail together, such as debiting one account and crediting another. ACID: Atomicity means all or nothing; Consistency means rules and constraints stay valid; Isolation means concurrent transactions do not see each other's partial work; Durability means committed data survives crashes. Analysts mostly read data, but knowing ACID explains why reports should read committed data.

Tips to crack the HDFC Bank Data Analytics interview

  • Learn Indian banking basics like CASA, NPAs, credit scores, KYC and RBI regulations for domain questions.
  • Revise SQL, Excel and basic statistics for analytics and risk roles with banking examples.
  • Understand UPI, net banking and mobile banking flows if applying for digital channel testing roles.
  • Keep a one-minute story ready for every project on your CV: problem, your part, tools, result.
  • Practise the hard questions on this page aloud; HDFC Bank interviewers usually ask follow-ups on your first answer.

Frequently asked questions

How many rounds are there in the HDFC Bank Data Analytics interview?

Candidates usually go through 4 stages: Online assessment (aptitude + domain); Technical or functional interview; Managerial round; HR round. The exact rounds change with the role, team, location and your experience, so confirm the process with the recruiter.

Which topics should I prepare for the HDFC Bank Data Analytics interview?

This practice set leans on SQL (7), Statistics and Case Studies (6), Python for Analysis (5), A/B Testing & Experiments (4). Revise those first, then practise explaining one or two of your own projects end to end, because most HDFC Bank interviewers ask you to walk through real work.

Are these the exact questions asked at HDFC Bank?

No. These are curated practice questions that match the skills and difficulty usually tested in banking & finance interviews like HDFC Bank's. They are not a leaked or verified list of past questions.

Where does HDFC Bank hire Data Analytics professionals in India?

HDFC Bank has large teams in Mumbai, Chennai, Bengaluru. Openings and locations change often, so check the HDFC Bank careers page and filter by city and experience.

Data Analytics questions for similar companies