Skip to content

Data Analytics Interview Questions for Banking & finance Companies

40 questions weighted to the interview style of banking & finance companies — 6 easy, 29 medium, 5 hard.

How banking & finance companies interview for Data Analytics

Banks and financial-services firms hire for technology, analytics and QA in their global capability centres. Interviews mix technical rounds with domain questions on banking products, regulation, data quality and risk, and they value process discipline.

This set focuses on Python for Analysis (7), SQL (7), Tableau (5), Excel (4).

HR round Managerial round Technical round Hiring manager round Online assessment (aptitude + technical)
Solved — banking & finance companiesStart 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

What is the difference between a table and a normal range?

ExcelMedium
Save to ▾
Show answer
A table auto-expands, supports structured references, banded rows and slicers, and keeps formulas consistent as rows are added.
02

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.
03

What is broadcasting in NumPy?

Save to ▾
Show answer
Broadcasting lets NumPy perform operations on arrays of different shapes without copying data, by virtually stretching the smaller array. For example, subtracting a 1D array of column means from a 2D array centres every column in one line: X - X.mean(axis=0). Shapes are compatible when trailing dimensions are equal or one of them is 1. It is a key reason vectorised code is much faster than Python loops.
04

Write SQL for a running total of sales by date.

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

Write SQL to find the number of days between each customer's consecutive orders and their average gap.

SQLMedium
Save to ▾
Show answer
WITH gaps AS ( SELECT customer_id, order_date, order_date - LAG(order_date) OVER ( PARTITION BY customer_id ORDER BY order_date) AS days_since_prev FROM orders ) SELECT customer_id, COUNT(*) AS orders, AVG(days_since_prev) AS avg_gap_days FROM gaps GROUP BY customer_id HAVING COUNT(*) > 1; -- order_date is DATE (PostgreSQL); use DATEDIFF in other databases
06

How do SUMIFS and SUMPRODUCT differ?

ExcelMedium
Save to ▾
Show answer
SUMIFS sums values meeting several criteria and is fast. SUMPRODUCT multiplies arrays and adds them, handling more complex conditions and weighted totals.
07

What is the order of operations in Tableau and why does it matter?

Save to ▾
Show answer
Tableau applies filters in a fixed order: extract filters, data source filters, context filters, then FIXED LOD calculations, dimension filters, INCLUDE and EXCLUDE LODs, measure filters, and finally table calculations and table calc filters. It matters because a calculation only sees data filtered before it. For example, a FIXED LOD ignores a normal region filter unless that filter is added to context. Many wrong totals come from not knowing this order.
08

Write a DAX measure for cumulative sales from the start of the data to the selected date.

Power BIMedium
Save to ▾
Show answer
Cumulative Sales = VAR maxDate = MAX('Date'[Date]) RETURN CALCULATE( [Total Sales], FILTER(ALL('Date'[Date]), 'Date'[Date] <= maxDate) ) -- for a running total that resets each year use TOTALYTD([Total Sales], 'Date'[Date])
09

DAX: calculated column vs measure?

Power BIMedium
Save to ▾
Show answer
A calculated column is computed row by row and stored in the model. A measure is computed at query time using the filter context, e.g. Total Sales = SUM(Sales[Amount]). Prefer measures for aggregations.
10

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)
11

How do you detect and handle skewed data?

Save to ▾
Show answer
Check histograms and skew(), then apply log, square-root or Box-Cox transforms, or use medians and robust statistics.
12

Write SQL to show each category's percentage share of total revenue.

SQLMedium
Save to ▾
Show answer
SELECT category, SUM(amount) AS revenue, ROUND(100.0 * SUM(amount) / SUM(SUM(amount)) OVER (), 2) AS pct_share FROM sales GROUP BY category ORDER BY revenue DESC; -- SUM(SUM(amount)) OVER () is the grand total across all groups
13

Your Top 10 products filter in Tableau ignores the category filter. Why, and how do you fix it?

TableauMedium
Save to ▾
Show answer
A context filter is applied before other dimension filters and before FIXED LOD calculations, creating a smaller dataset the rest of the view works on. Use it when a Top N filter should operate within a selected category, for example top 10 products within Electronics, or when a FIXED LOD must respect a filter. Add a filter to context from its right-click menu; it turns grey. Too many context filters can hurt performance.
14

Your workbook has 200,000 rows and hundreds of VLOOKUPs and takes minutes to recalculate. What do you do?

ExcelHard
Save to ▾
Show answer
First switch calculation to manual to work safely, then find the cause. Replace whole-column references with Tables, swap repeated VLOOKUPs for one XLOOKUP or INDEX-MATCH helper column, and remove volatile functions like OFFSET, INDIRECT and TODAY used in many cells. Better still, move the joins into Power Query or the Data Model so lookups happen once at refresh. Finally paste values for historic data that never changes and keep formulas only where needed.
15

How would you find customers who never placed an order?

SQLMedium
Save to ▾
Show answer
LEFT JOIN customers to orders and keep rows where order_id IS NULL, or use NOT EXISTS, which also handles NULLs safely.
16

What is the difference between a list, tuple, dictionary and set in Python?

Save to ▾
Show answer
A list is ordered and mutable, good for sequences you change, like [10, 20, 30]. A tuple is ordered but immutable, useful for fixed records such as coordinates. A dictionary stores key-value pairs with fast lookup by key, like {'Delhi': 120}. A set holds unique unordered values and is great for removing duplicates or checking membership quickly. Analysts use dictionaries constantly for mappings and renaming columns.
17

What are field parameters in Power BI?

Power BIMedium
Save to ▾
Show answer
Field parameters let report users switch which measure or dimension a visual uses through a slicer. For example, one chart can switch between Sales, Profit and Quantity, or between grouping by Region, Category and Channel. This replaces many duplicate visuals or bookmark tricks, keeping the report lighter and easier to maintain. They are created from Modeling, New parameter, Fields, which generates a small table behind the slicer.
18

What are statistical power and minimum detectable effect (MDE)?

Save to ▾
Show answer
Power is the probability that the test detects a real effect of a given size, commonly set at 80%. The minimum detectable effect is the smallest lift you care about and can reliably detect with your sample size. Smaller MDEs, lower baseline rates and higher power all need more users. If you can only get 10,000 users a week, you may only be able to detect large lifts, which should shape what you test.
19

How can you automate data quality checks in a reporting pipeline?

Save to ▾
Show answer
Define tests as code that run after every load: not-null and unique checks on keys, accepted value lists, referential integrity, row count within an expected range compared with recent days, and freshness of the latest timestamp. Store results in a table and alert the team on failures before dashboards refresh. Start with checks on the few tables behind key KPIs, then expand. This catches issues before stakeholders do.
20

What is the difference between a metric and a KPI?

Save to ▾
Show answer
A metric is any quantity you measure, such as page views, tickets closed or average order value. A KPI, key performance indicator, is a metric chosen because it directly reflects progress towards an important business goal and usually has a target and owner. Every KPI is a metric, but most metrics are not KPIs. A good dashboard leads with a few KPIs and keeps supporting metrics for diagnosis.
21

A report filters WHERE order_date = '2026-03-31' and misses almost all orders from that day. Why?

SQLEasy
Save to ▾
Show answer
order_date is probably a DATETIME or TIMESTAMP column, so the filter matches only rows at exactly midnight, 2026-03-31 00:00:00. Use a half-open range instead: WHERE order_date >= '2026-03-31' AND order_date < '2026-04-01'. This keeps the index usable, unlike wrapping the column in CAST or DATE(), and it correctly includes orders at 23:59:59.500. Also check the time zone of the stored timestamps.
22

What is Tableau and what are its main products?

Save to ▾
Show answer
Tableau is a visual analytics tool for building interactive charts and dashboards by dragging fields onto shelves. Tableau Desktop is used to author workbooks, Tableau Prep cleans and shapes data, Tableau Server and Tableau Cloud host and share dashboards with security and scheduled refresh, and Tableau Public is a free version where work is saved publicly. Analysts usually build in Desktop and publish to Server or Cloud.
23

Write an Excel formula to look up a price using two criteria, product and city.

ExcelMedium
Save to ▾
Show answer
=XLOOKUP(1, (A2:A500=G2) * (B2:B500=H2), C2:C500, "Not found") -- A = product, B = city, C = price -- G2 and H2 hold the product and city to find -- each condition returns TRUE/FALSE; multiplying gives 1 only where both match
24

What is a story in Tableau?

Save to ▾
Show answer
A story is a sequence of sheets or dashboards, called story points, that walk an audience through an analysis step by step, like slides. Each point can keep its own filters and selections and has a caption explaining the insight. It is useful for presenting findings such as why churn rose, moving from the headline number to segments and recommendations. For everyday monitoring, a regular dashboard is better than a story.
25

Sales data from different countries mixes currencies and some weights are in grams while others are in kilograms. How do you handle it?

Save to ▾
Show answer
Never add mixed units. Identify the unit for each row from a currency or unit column, or infer it from the source system. Convert to one standard, for example INR using a dated exchange rate table joined on transaction date, and kilograms using a conversion factor. Keep the original value and unit columns for audit. Document which rates were used, and flag rows where the unit could not be determined.
26

What are Type I and Type II errors?

Save to ▾
Show answer
A Type I error is a false positive: concluding there is an effect when there is none, for example launching a feature that does not actually lift sales. Its probability is alpha, often 0.05. A Type II error is a false negative: missing a real effect, with probability beta. Power is 1 minus beta. Larger samples reduce Type II errors, and the business cost of each mistake should guide which one you guard against more.
27

How do you create a dual-axis chart in Tableau, for example sales bars with a profit margin line?

Save to ▾
Show answer
Drag Order Date to Columns as a continuous or discrete month, put Sales on Rows, then drag Profit Ratio to Rows next to it. Right-click the second pill and choose Dual Axis. On the Marks card set Sales to Bar and Profit Ratio to Line. Decide whether to synchronise axes: do not synchronise when units differ, like rupees and percentage. Label the axes clearly so readers know which is which.
28

Write pandas code to calculate customer acquisition cost and payback period in months for each channel.

Save to ▾
Show answer
# spend: channel, spend # customers: channel, customer_id, monthly_margin new_cust = customers.groupby('channel').agg( new_customers=('customer_id', 'nunique'), avg_margin=('monthly_margin', 'mean')) summary = spend.groupby('channel')['spend'].sum().to_frame().join(new_cust) summary['cac'] = summary['spend'] / summary['new_customers'] summary['payback_months'] = summary['cac'] / summary['avg_margin'] print(summary.round(1).sort_values('payback_months'))
29

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.
30

Write pandas code to find the top 2 products by revenue in each region.

Save to ▾
Show answer
top2 = ( df.groupby(['region', 'product'], as_index=False)['revenue'] .sum() .sort_values(['region', 'revenue'], ascending=[True, False]) .groupby('region') .head(2) ) print(top2)
31

Tell me about a time you found a serious data quality issue.

Save to ▾
Show answer
Situation: while building a returns report I noticed one warehouse had zero returns for three months. Task: confirm whether it was real. Action: I compared with the source system and found its return codes had changed after a software update, so my filter missed them. I informed the data owner, updated the mapping and back-filled the history. Result: the corrected report showed that warehouse had the highest return rate, which led to a packaging review.
32

How do you merge two DataFrames on different column names?

Save to ▾
Show answer
pd.merge(df1, df2, left_on='cust_id', right_on='id', how='left') joins on differently named keys.
33

What is statistical significance vs practical significance?

Save to ▾
Show answer
A result can be statistically significant yet too small to matter; always report effect size and business impact together with the p-value.
34

What is the difference between a data warehouse, a data lake and a lakehouse?

SQLMedium
Save to ▾
Show answer
A data warehouse stores cleaned, structured data in modelled tables optimised for SQL reporting. A data lake stores raw data of any type, such as logs, JSON and images, cheaply in files, with structure applied when read. A lakehouse combines them: open table formats on lake storage add transactions, schemas and fast SQL on top of files. Analysts typically query the warehouse or the curated layer of a lakehouse.
35

RANK vs DENSE_RANK vs ROW_NUMBER?

SQLMedium
Save to ▾
Show answer
ROW_NUMBER gives a unique sequence. RANK gives ties the same rank and skips the next (1, 1, 3). DENSE_RANK gives ties the same rank without gaps (1, 1, 2).
36

What is vectorisation and why does it matter?

Save to ▾
Show answer
Applying operations to whole arrays at once instead of Python loops, which is far faster because it runs in optimised compiled code.
37

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.
38

Write a DAX measure for a KPI card showing achievement against target and a colour for conditional formatting.

Save to ▾
Show answer
Achievement % = DIVIDE([Total Sales], [Sales Target]) KPI Colour = VAR a = [Achievement %] RETURN SWITCH( TRUE(), ISBLANK(a), "#9E9E9E", a >= 1, "#2E7D32", a >= 0.9, "#F9A825", "#C62828" ) -- apply KPI Colour via Format > Callout value > fx > Field value
39

Your Sales table has OrderDate and ShipDate. How do you analyse sales by ship date when only OrderDate is the active relationship?

Save to ▾
Show answer
-- create an inactive relationship Sales[ShipDate] -> 'Date'[Date] in the model Sales by Ship Date = CALCULATE( [Total Sales], USERELATIONSHIP(Sales[ShipDate], 'Date'[Date]) ) -- the measure uses the inactive relationship only inside this CALCULATE -- the alternative is a second role-playing date table
40

How would you investigate a sudden 20% drop in daily sales?

Save to ▾
Show answer
Check data pipelines first, then segment by channel, region, product and device, compare to the same period last year, and look for launches, outages or campaigns.

Banking & finance companies (18)

Banking & finance

Goldman Sachs

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Bengaluru, Hyderabad, Mumbai

View questions
Banking & finance

JP Morgan Chase

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Mumbai, Bengaluru, Hyderabad

View questions
Banking & finance

Morgan Stanley

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Mumbai, Bengaluru

View questions
Banking & finance

Barclays

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Pune, Chennai, Noida +1

View questions
Banking & finance

HSBC

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Hyderabad, Pune, Bengaluru

View questions
Banking & finance

American Express

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Gurugram, Bengaluru

View questions
Banking & finance

Wells Fargo

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Hyderabad, Bengaluru, Chennai

View questions
Banking & finance

Citi

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Pune, Chennai, Mumbai +2

View questions
Banking & finance

Deutsche Bank

Data Analytics interview questions

  • 40 questions
  • 5 rounds

Pune, Bengaluru, Mumbai +1

View questions
Banking & finance

Standard Chartered

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Chennai, Bengaluru, Mumbai

View questions
Banking & finance

HDFC Bank

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Mumbai, Chennai, Bengaluru

View questions
Banking & finance

ICICI Bank

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Mumbai, Hyderabad, Chennai +1

View questions
Banking & finance

Kotak Mahindra Bank

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Mumbai, Bengaluru

View questions
Banking & finance

Axis Bank

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Mumbai, Bengaluru

View questions
Banking & finance

State Bank of India

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Mumbai, Navi Mumbai

View questions
Banking & finance

Fidelity Investments

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Bengaluru, Chennai, Gurugram

View questions
Banking & finance

UBS

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Pune, Mumbai, Hyderabad

View questions
Banking & finance

BNY

Data Analytics interview questions

  • 40 questions
  • 4 rounds

Pune, Chennai

View questions

Frequently asked questions

How are Data Analytics interviews at banking & finance companies different?

Banks and financial-services firms hire for technology, analytics and QA in their global capability centres. Interviews mix technical rounds with domain questions on banking products, regulation, data quality and risk, and they value process discipline.

Which banking & finance companies are covered?

This page links to 18 banking & finance companies, including Goldman Sachs, JP Morgan Chase, Morgan Stanley, Barclays, HSBC, American Express, Wells Fargo, Citi. Each has its own page with rounds and a separate practice set.

What rounds should I expect?

Common rounds at these companies include: HR round; Managerial round; Technical round; Hiring manager round; Online assessment (aptitude + technical). The exact process varies by company and role.