Business Analyst Interview Questions

Business Analyst Interview Questions


The ultimate guide for all the business analysts trying to choose the questions they should prepare for a job interview.

A business analyst is one of the many positions in the data science family. Being part of that family necessarily means the business analysts have something to do with data, one way or another. We’re going to look into that and see what the business analyst’s role in a company is and what skills they need to have. This is a cornerstone for anybody who wants to become a business analyst or get a better business analyst role.

Once you understand that, it’ll be easier to narrow down the types of questions that will wait for you in most interviews. While knowing what awaits you is nice and makes you more confident, actually knowing how to answer all the questions is where the real confidence, knowledge, and getting the job come from. To achieve that, you will need to use this guide to, well, guide you in choosing which topics and questions to focus on beyond these examples when you prepare for the job interview.

What Does a Business Analyst Do?

What Does a Business Analyst Do

The role of a business analyst is often described as a bridge between IT and business function. They focus on improving the company’s efficiency by analyzing its processes, products, and systems, reporting on the findings, and recommending improvements.

Efficiency is a bland and generic word in the business lingo that means cutting costs and increasing revenue. Or at least one of those two, if doing both is not possible.

In business organizations, this is done through financial analysis, product development, improving policies and procedures, software implementation, testing, and training, market analysis, and product quality assurance.

What Makes a Good Business Analyst?

The areas in which the business analyst is included tell a story of someone who is required to have a very diverse set of skills to succeed in their job.

This was always the case. But skills that made a good business analyst might not be the same that will make one in the future. According to the International Institute of Business Analysis, the businesses had a 65% return on investment (ROI) with 190% more use of business analysts skilled in data analytics practices. Due to the increasing role data has in today’s business, business analysts are also getting reskilled. Data and data analytic skills are already becoming fundamental skills and will be so even more in the future, but it will also depend on your career path.

Cutting costs and increasing revenues – the main tasks of every business analyst – are more often than not technology driven. Because of that, a business analyst must stay up-to-date with the latest advancements and trends in IT systems.

This technical side has to be only the means of improving the business side of a company. The business analysts are there to bridge this gap. As a consequence, ‘business’ in their job title is not there only for show. Business analysts are required to understand the company’s internal processes, products, industry, and market and how the technical solutions impact them.

Due to them being turned outward and inward at the same time, business analysts work with the widest possible types of stakeholders and in different kinds of projects. This requires communication,  presentation, tutoring, and leadership skills, along with being meticulous when it comes to documentation and reporting.

In short, business analysts need to show expertise in four areas.

  • Data Analytics
  • Project Management
  • Software Testing
  • Business

For landing a job, this expertise has to be showcased in the job interview, too.

The Business Analyst Interview Question Types

The skills required from business analysts are reflected in the types of questions you can expect in the interviews. Broadly, the questions fall into four categories.

  • SQL Coding Interview Questions
  • Technical Interview Questions
  • Business Case Interview Questions
  • Product Interview Questions

SQL Coding Interview Questions

Business Analyst SQL Interview Questions

SQL is one of the fundamental tools for working with databases. It’s gaining importance among business analysts, therefore, we will focus on showing you how to handle these types of questions. They test your SQL skills by giving you a real business scenario; you need to solve it by writing an efficient SQL code.

The main point is, of course, for the code to return the required output. To reach that point, it is advisable that you structure your approach to solving the problem and writing a code.

The Framework for Solving SQL Coding Interview Questions

Approaching the coding questions is done in four steps.

  1. Exploring the dataset
  2. Identifying columns for solving question
  3. Writing out the code logic
  4. Coding

1. Exploring the Dataset

Together with questions, you’ll be given a dataset that you should use in the SQL solution. The dataset can consist of one or more tables.

The first step in answering the interview questions is to examine the data. If there are two or more tables, learn how the tables are interconnected and how they can be joined. After that, or if there is only one table, go through every column and the type of data it contains.

The interviews usually don’t give you the opportunity to preview the data in the tables. On rare occasions when this is possible, you should take it. Seeing the data itself makes it even easier to understand the data you’re working with.

Doing all this is important because the functions you will use for the calculations (might involve data conversion, too!) depend on data types, too. Furthermore, having duplicate or NULL values can change the approach to your code. In the case of multiple tables, the choice of the adequate JOIN also depends on that.

2. Identifying Columns

While exploring the dataset, you’ll simultaneously identify the columns you’ll use in writing the SQL query.

The interview questions simulate reality, so they will, more often than not, give you more data than you need. Use this step to get rid of all the unnecessary columns before you start coding. That way, you can have a clear mind focused only on code and not question yourself (too much) whether you’re going in the right direction or not.

Once you have a clear idea of the columns you’ll use, you’ll slowly start to see a code structure in your mind.

3. Writing Out the Code Logic

A paper, whiteboard, or computer; it doesn’t matter. Whatever you have available, use it to break down the code into steps and write it out. Write what every line (or part) of code should do, what keywords you’ll use, and why. Do that in words or pseudo-code.

While doing this, you’ll also be checking if you’re going in the right direction regarding the code you’ll write. It always works better if you don’t keep those ideas in your head but put them down and read them like someone else’s.

It’s helpful to read them aloud. Not only because of yourself but so that the interviewer also hears your ideas and assumptions. Usually, they are there to help you. Letting them know what you plan to do gives them the opportunity to provide you with direction if you lack it, some suggestions, or a confirmation that you’re on the right track.

4. Coding

If you’ve been thorough in previous steps, writing a code should feel almost like a technicality. You can focus on syntax, making the code return the desired output in an efficient way. It also gives you another checkpoint. Not having to think about anything else means you’ll easier spot the possible mistakes in your approach and adapt to new findings on the go.

We’ll apply this framework in the several questions; in the remainder, you should try to do it independently.

Business Analyst Interview Question #1: Paid Users In April 2020


Tables: rc_calls, rc_users

Link to the question: https://platform.stratascratch.com/coding/2017-paid-users-in-april-2020

Solution Framework

1. Exploring the Dataset

There are two tables: rc_calls, rc_users

Table: rc_calls

Table: rc_calls
user_iddatecall_id
12182020-04-19 01:06:000
15542020-03-01 16:51:001
18572020-03-29 07:06:002
15252020-03-07 02:01:003
12712020-04-28 21:39:004

This table is really a list of calls, with the column call_id being the primary key. Obviously, multiple calls can (at least theoretically) occur at the same time. The users can appear several times in the table because they could’ve had more than one call.

Table: rc_users

Table: rc_users
user_idstatuscompany_id
1218free1
1554inactive1
1857free2
1525paid1
1271inactive2

This is a list of users, and they are unique. The column user_id can be used for joining it with the previous table. Statuses refer to the user status and can have multiple occurrences, the same as the company: there can be multiple users from one company.

2. Identifying the Columns

In the table rc_calls, you’ll only need the column user_id to get the number of users. You can disregard the other two columns because we’re not interested in the calls’ date or ID.

Column to use from the table rc_calls:

  • user_id

The table rc_users also has the column user_id, and you will need it. Also, the paid users can be found using the column status. The question doesn’t ask anything about the company, so ignore this column. You only need the column user_id.

The columns you need from the table rc_users:

  • user_id
  • Status

3. Writing Out the Code Logic

  1. Use COUNT and DISTINCT – to get the unique number of users
  2. Reference the table rc_calls
  3. WHERE clause and BETWEEN – for showing only calls in April 2020
  4. The second condition in the WHERE clause – use the subquery to find the paid users
  5. Subquery – select the user_id from the table rc_users
  6. WHERE clause in the subquery – for showing only the paid users

4. Coding

1) Use the COUNT() function to find the distinct users.

SELECT COUNT(DISTINCT user_id)

2) Use the data from the table rc_calls.

SELECT COUNT(DISTINCT user_id)
FROM rc_calls

3) Find only calls in April 2020 using WHERE and BETWEEN.

SELECT COUNT(DISTINCT user_id)
FROM rc_calls
WHERE date BETWEEN '2020-04-01' AND '2020-04-30'

4) Add another condition that will look for the user_id in the subquery.

SELECT COUNT(DISTINCT user_id)
FROM rc_calls
WHERE date BETWEEN '2020-04-01' AND '2020-04-30'
  AND user_id IN

5) Write a subquery that returns a list of users from the table rc_users.

SELECT COUNT(DISTINCT user_id)
FROM rc_calls
WHERE date BETWEEN '2020-04-01' AND '2020-04-30'
  AND user_id IN
    (SELECT user_id
     FROM rc_users

6) Show only paid users using the WHERE clause, and you got yourself the whole code.

SELECT COUNT(DISTINCT user_id)
FROM rc_calls
WHERE date BETWEEN '2020-04-01' AND '2020-04-30'
  AND user_id IN
    (SELECT user_id
     FROM rc_users
     WHERE status = 'paid');

Output

The answer to the question is six.

All required columns and the first 5 rows of the solution are shown

count
5

Business Analyst Interview Question #2: Number of Shipments Per Month


Table: amazon_shipment

Link to the question: https://platform.stratascratch.com/coding/2056-number-of-shipments-per-month

Solution Framework

1. Exploring the Dataset

There’s only one table in this question, and its name is amazon_shipment.

Table: amazon_shipment
shipment_idsub_idweightshipment_date
1011102021-08-30
1012202021-09-01
1013102021-09-05
1021502021-09-02
1031252021-09-01

The question gives you info that the unique combination of shipment_id and sub_id is one shipment. The column shipment_date is given in the YYYY-MM-DD format. Multiple shipments can occur on the same date. The output is required to be in the YYYY-MM format. This means you’ll have to change this date format somehow. Also, the column add is empty for some reason.

2. Identifying the Columns

You for sure need the columns shipment_id and sub_id because that is the only way to distinguish one shipment from the other.

The weight of the shipment is irrelevant to this question. The same is with the column add; it's empty, so for sure, you won’t use it.

You will need shipment_date to find the number of shipments per month and output the month in the desired format.

The code will use three columns:

  • shipment_id
  • sub_id
  • shipment_date

3. Writing Out the Code Logic

  1. SELECT and TO_CHAR() – for selecting and converting the shipment date from datetime to text formatted as YYYY-MM
  2. COUNT() and DISTINCT – for finding the number of shipments
  3. Reference the table in the FROM clause
  4. Group data by month

4. Coding

1. The column shipment_date is the first argument in the TO_CHAR() function. The second one is the desired format.

SELECT TO_CHAR(shipment_date, 'YYYY-MM') AS year_month

2. Find the distinct combinations of shipment_id and sub_id, then COUNT them.

SELECT TO_CHAR(shipment_date, 'YYYY-MM') AS year_month,
       COUNT(DISTINCT (shipment_id, sub_id))

3. Use data from the only table you have.

SELECT TO_CHAR(shipment_date, 'YYYY-MM') AS year_month,
       COUNT(DISTINCT (shipment_id, sub_id))
FROM amazon_shipment

4. Group data by the column year_month. This also completes the question solution.

SELECT TO_CHAR(shipment_date, 'YYYY-MM') AS year_month,
       COUNT(DISTINCT (shipment_id, sub_id))
FROM amazon_shipment
GROUP BY 1;

Output

There are two months for which you can output the number of shipments.

All required columns and the first 5 rows of the solution are shown

year_monthcount
2021-083
2021-096

Business Analyst Interview Question #3: User Growth Rate


Table: sf_events

Link to the question: https://platform.stratascratch.com/coding/2052-user-growth-rate

Solution Framework

1. Exploring the Dataset

Again, there’s only one table to work with. This time it’s sf_events.

Table: sf_events
dateaccount_iduser_id
2021-01-01A1U1
2021-01-01A1U2
2021-01-06A1U3
2021-01-02A1U1
2020-12-24A1U2

All three columns from the table can have duplicate values. The reason: the table sf_events is a list of the accounts’ and users’ activity. On the same date, several accounts can be active. Also, one user can be active on several dates.

2. Identifying the Columns

You’ll need all three columns to solve the question.

  • date
  • account_id
  • user_id

The column account_id and user_id because that’s what the question asks you to find: the growth of active users for each account. Also, you’ll need a date because you’re interested in the growth rate for Dec 2020 to Jan 2021.

3. Writing Out the Code Logic

  1. Select the account_id
  2. COUNT(), DISTINCT, CASE – for finding the users active in January 2021
  3. Divide by the second COUNT(), DISTINCT, CASE – used for finding the users active in December 2020
  4. Convert both COUNT() results to float to get the growth rate with the decimal places
  5. Use table sf_events in the FROM clause
  6. Group data by account_id

4. Coding

1. Select the column account_id.

SELECT account_id,

2. Use the CASE statement to find users active between 2021-01-01 and 2021-01-31. Output only the unique values and count them.

SELECT account_id,
       COUNT(DISTINCT (CASE
                           WHEN date BETWEEN '2021-01-01' AND '2021-01-31' THEN user_id
                           ELSE NULL
                       END))

3. Divide this by the result of the second COUNT(). It’s the same as the one above, except it looks for users between 2020-12-01 and 2020-12-31.

SELECT account_id,
       COUNT(DISTINCT (CASE
                           WHEN date BETWEEN '2021-01-01' AND '2021-01-31' THEN user_id
                           ELSE NULL
                       END)) / COUNT(DISTINCT (CASE
                                                          WHEN date BETWEEN '2020-12-01' AND '2020-12-31' THEN user_id
                                                          ELSE NULL
                                                      END))

4. Convert both counts into float.

SELECT account_id,
       COUNT(DISTINCT (CASE
                           WHEN date BETWEEN '2021-01-01' AND '2021-01-31' THEN user_id
                           ELSE NULL
                       END))::float / COUNT(DISTINCT (CASE
                                                          WHEN date BETWEEN '2020-12-01' AND '2020-12-31' THEN user_id
                                                          ELSE NULL
                                                      END))::float

5. All data is from the only table there is.

SELECT account_id,
       COUNT(DISTINCT (CASE
                           WHEN date BETWEEN '2021-01-01' AND '2021-01-31' THEN user_id
                           ELSE NULL
                       END))::float / COUNT(DISTINCT (CASE
                                                          WHEN date BETWEEN '2020-12-01' AND '2020-12-31' THEN user_id
                                                          ELSE NULL
                                                      END))::float
FROM sf_events

6. Group the output by the account to show the growth ratio by the account. This is the final step that completes the answer.

SELECT account_id,
       COUNT(DISTINCT (CASE
                           WHEN date BETWEEN '2021-01-01' AND '2021-01-31' THEN user_id
                           ELSE NULL
                       END))::float / COUNT(DISTINCT (CASE
                                                          WHEN date BETWEEN '2020-12-01' AND '2020-12-31' THEN user_id
                                                          ELSE NULL
                                                      END))::float
FROM sf_events
GROUP BY 1;

Now that you know how the framework works and how to apply it on the coding questions, use the same approach on the following several questions.

Business Analyst Interview Question #4: Customers Report Summary


Table: wfm_transactions

Link to the question: https://platform.stratascratch.com/coding/2040-customers-report-summary

Solution Approach

  1. SELECT statement
  2. Use EXTRACT() – for showing only the month of the transaction date
  3. COUNT() & DISTINCT – for getting the number of unique customers
  4. COUNT() – for getting the number of transactions
  5. Use a subquery in the FROM clause to get the transactions equal to or above $5
  6. In the subquery, first select transaction, its date, and customer
  7. Use SUM() to get the value of sales
  8. Reference the table wfm_transactions in the FROM clause of the subquery
  9. Use the WHERE clause and EXTRACT() function to include only transactions in 2017
  10. Group data by all the columns in the SELECT statement, except the aggregate function
  11. Use the HAVING clause to show only data with the transaction value of at least $5

Translate these steps into an SQL code using the widget.

Output

Here are the first five months of the output.

All required columns and the first 5 rows of the solution are shown

monthcustomerstransactions
11215
21112
31112
467
51113

Business Analyst Interview Question #5: Total Order Per Status Per Service


Table: uber_orders

Link to the question: https://platform.stratascratch.com/coding/2049-total-order-per-status-per-service

Solution Approach

  1. Select the service name and the order status
  2. SUM() – for finding the number of orders
  3. Reference the table in the FROM clause
  4. Group the output by the service name and the order status

Can you get the below output by writing a code in the widget?

Output

Here’s what the output should look like.

All required columns and the first 5 rows of the solution are shown

service_namestatus_of_orderorders_sum
Uber_TIXFailed/Timeout4370
Uber_SENDNo Driver Found112160
Uber_TIXOther0
Uber_MARTNo Driver Found410
Uber_SENDCompleted3107340

Business Analyst Interview Question #6: Hour With The Highest Order Volume


Table: postmates_orders

Link to the question: https://platform.stratascratch.com/coding/2014-hour-with-the-highest-order-volume

Solution Approach

  1. Write a CTE
  2. The SELECT statement in the CTE uses the subquery that outputs the order hour, date, and the number of orders; the subquery is in the FROM clause
  3. DATE_PART in the subquery – to get the hour from order_timestamp_utc
  4. Select the column order_timestamp and convert it to date
  5. COUNT() – for counting the number of orders
  6. Data in the subquery comes from the table postmates_orders
  7. The subquery’s output is grouped by the hour and date
  8. The main SELECT in the CTE selects the hours from the subquery
  9. Then use AVG() to find the average number of orders
  10. Group the CTE output by hour
  11. The SELECT statement that references the CTE selects all columns
  12. WHERE clause – show only data where the average orders equals the highest number of the average orders
  13. Use the subquery to set up the condition in WHERE clause
  14. Sort data from the highest to the lowest average order amount

Write the solution in the widget.

Output

All required columns and the first 5 rows of the solution are shown

houravg_orders
32
82

Business Analyst Interview Question #7: Share of Active Users


Table: fb_active_users

Link to the question: https://platform.stratascratch.com/coding/2005-share-of-active-users

Solution Approach

  1. The subquery in the FROM clause – finds the number of total and active users
  2. In the subquery, the first COUNT() finds the number of total users
  3. The second COUNT() and CASE clause – for getting the active users, which are the ones with the open status
  4. Use data from the table fb_active_users in subquery
  5. WHERE clause – for counting only the USA users in the subquery
  6. In the main SELECT query, divide the number of active users by the number of total users
  7. Convert the result to float to get the ratio with decimal place

Output

Did you also get the ratio of 0.5?

All required columns and the first 5 rows of the solution are shown

active_users_share
0.5

Business Analyst Interview Question #8: Inactive Free Users


Tables: rc_calls, rc_users

Link to the question: https://platform.stratascratch.com/coding/2018-inactive-free-users

Solution Approach

  1. Select the unique users
  2. Use data from the table rc_users
  3. WHERE clause – to include only free users
  4. The second condition in WHERE – users didn’t make calls in April 2020
  5. Use the subquery to find the users without the calls in April 2020
  6. In the subquery, select the user ID from the table rc_calls
  7. WHERE clause in the subquery – to include only dates between 2020-04-01 and 2020-04-30

Can you write a code based on this information?

Output

All required columns and the first 5 rows of the solution are shown

user_id
1575
1910

Business Analyst Interview Question #9: Rush Hour Calls


Table: redfin_call_tracking

Link to the question: https://platform.stratascratch.com/coding/2023-rush-hour-calls

Solution Approach

  1. COUNT() – to count the number of customers
  2. In the FROM clause, there is a subquery
  3. The subquery selects the request ID from the table redfin_call_tracking
  4. WHERE & DATE_PART() – find the calls between 15 and 17 hours
  5. Show hours as timestamp
  6. Group data by request ID
  7. HAVING clause – to show only clients with three or more calls

Output

There’s only one client that satisfies all the requirements.

All required columns and the first 5 rows of the solution are shown

count
1

Business Analyst Interview Question #10: Signups By Billing Cycle


Tables: signups, plans

Link to the question: https://platform.stratascratch.com/coding/2032-signups-by-billing-cycle

Solution Approach

  1. EXTRACT – to get the day of the week of the signup
  2. COUNT(), DISTINCT, CASE – to get the signups for the annual billing cycle
  3. COUNT(), DISTINCT, CASE – find the signups for the monthly billing cycle
  4. COUNT(), DISTINCT, CASE – get the signups for the quarterly billing cycle
  5. JOIN the tables signups and plans where plan_id equals id
  6. Group data by the day of the week

Use these six steps to write the solution in the widget below.

Output

Here’s what your code should return.

All required columns and the first 5 rows of the solution are shown

weekdayannualmonthlyquarterly
1151
2335
3345
4013
5107

Technical Interview Questions

Business Analyst Technical Interview Questions

This category of questions is also popular in business analyst interviews. They can, too, be considered the SQL interview questions. The difference compared to the SQL coding questions is that the technical questions don’t require you to write a code. Instead, you’re expected to give a descriptive explanation of a specific SQL concept.

Business Analyst Interview Question #11: UNION and UNION ALL

Business analyst interview question from Southwest Airlines

Link to the question: https://platform.stratascratch.com/technical/2083-union-and-union-all

Solution

UNION and UNION ALL are SQL statements that are useful to concatenate the entries between two or more tables. In general, they have the same functionality.

The main difference between UNION and UNION ALL is that the UNION command will only extract the relevant entries that are unique (no duplicates), while UNION ALL will extract all of the relevant entries, including the duplicates.

Business Analyst Interview Question #12: WHERE and HAVING

Business analyst interview question from Spotify

Link to the question: https://platform.stratascratch.com/technical/2374-where-and-having

Try to answer this question by yourself. Start by explaining what WHERE and HAVING have in common. Then explain their differences in regards to aggregation.

Business Analyst Interview Question #13: Common Table Expression

Business analyst interview question from Spotify

Link to the question: https://platform.stratascratch.com/technical/2354-common-table-expression

When answering this question, first give the definition of a CTE. Regarding its use, maybe it’s best to compare it to the subquery and talk about the similarities and differences.

Wherever you used a subquery, you can use a CTE. There are plenty of examples of the subqueries in the previous coding questions. Take one and explain it by using a CTE instead of a subquery.

Business Analyst Interview Question #14: Database Normalization

Business analyst interview question from Deloitte

Link to the question: https://platform.stratascratch.com/technical/2330-database-normalization

First, define the normalization and talk about its purpose. Then explain the first three steps, which are considered mandatory in the database normalization. Stress that the next two steps are optional, then talk about them.

Business Analyst Interview Question #15: Left Join and Right Join

Business analyst interview question from Credit Acceptance

Link to the question: https://platform.stratascratch.com/technical/2242-left-join-and-right-join

Start by defining joining tables in general. Then explain the similarities and differences between LEFT JOIN and RIGHT JOIN.

Business Case Interview Questions

Business Analyst Business Case Interview Questions

Next of the four main interview question types for business analysts are the business case questions. These don’t focus on the technical skills like the last two question types. They are open-ended questions that don’t necessarily require the correct answer.

Instead, the interviewer is interested to see the candidate’s abstract and analytical thinking applied to problem-solving. The accent is on the process, not so much on the outcome.

Business Analyst Interview Question #16: US Tobacco Market

Business analyst interview question from CKM Advisors

Link to the question: https://platform.stratascratch.com/technical/2233-us-tobacco-market

Solution Approach

Assumptions

The assumptions:

  • The size equals revenue
  • Revenue is on a yearly basis

Solution

  1. Determine the population: USA population = 330 million
  2. Determine the number of kids (20%) = 66 million
  3. Determine the number of adults (80%) = 264 million
  4. Determine the number of smokers among adults (13%): Smokers = 264 million x 13% = 34.3 million
  5. Determine the number of smokers among kids (5%): Kids smokers = 66 million x 5% = 3.3 million
  6. Total number of smokers = 34.3 million + 3.3 million = 37.6 million
  7. Determine the number of smokers who roll their own cigarettes (7%): Roll-your-own = 37.6 million  x 7% = 2.6 million
  8. The rest buy cigarettes: 37.6 million - 2.6 million = 35 million
  9. Let’s say the smokers smoke 15 cigarettes a day
  10. Average price per cigarette ($8 a 20-cigarettes pack): Price per cigarette = $8/20 = $0.4
  11. Roll-your-owns (RYO) are cheaper (30%): Price per cigarette (RYO) = $0.4 x 30% = $0.12
  12. Yearly revenue from smokers buying factory-made cigarettes (smokers x cigarettes x price x days) = 35 million x 15 x $0.4 x 365 = $76.650 billion.
  13. Yearly revenue from RYO smokers (smokers x cigarettes x price x days) = 2.6 million x 15 x $0.12 x 365 = $1.7 million
  14. Yearly tobacco revenue = $76.650 billion + $1.7 million = $76.652 billion

The answer to the question is the size of the tobacco market in the US is $76.652 billion. Now, this amount really was somewhere around the actual value in 2021. In our calculation, we used some actual statistics regarding smokers. You probably won’t be able to Google some of those in the interview. It really doesn’t matter because the important thing is how you get your answer, and not if your answer is correct.

Nobody expects you to really know the actual value of this market in the US. As long as your answer shows your thinking process and the answer is correct within your assumptions, that should be good enough. It’s also not necessary to have all these steps; there can be more or less of them. It’s important that your logic holds water.

Now try to solve the next business case questions on your own.

Business Analyst Interview Question #17: Operations Team

Business analyst interview question from Airbnb

Link to the question: https://platform.stratascratch.com/technical/2206-operations-team

Start by stating the assumption about what the operations team does. A hint here is that they are probably using the ticketing system. There lie multiple metrics for effectiveness tracking.

Business Analyst Interview Question #18: Driving Conditions and Congestion

Business analyst interview question from Uber

Link to the question: https://platform.stratascratch.com/technical/2213-driving-conditions-and-congestion

Some suggestions are to use the number of Uber cars, distances traveled, time of the drives, number of passengers, weather conditions, accidents involving Uber cars. Are there any other factors you could use? Try to think of them and formulate your answer.

Business Analyst Interview Question #19: Height of Oil Storage Tank

Business analyst interview question from Orbital Insight

Link to the question: https://platform.stratascratch.com/technical/2215-height-of-oil-storage-tank

There are several approaches to this. Maybe you can use some nearby objects and their height as a reference for the oil storage tank? Or, if you know the resolution of the satellite image, you could convert this to a map scale and calculate the oil tank height from that. What if you knew the exact time the image was taken and the geographical location of the object? Maybe you could use the tank’s shadow to calculate its height using this info?

Do you have some other ideas? Think a little bit about it and write your answer.

Business Analyst Interview Question #20: Roads in San Francisco

Business analyst interview question from Ebay

Link to the question: https://platform.stratascratch.com/technical/2262-roads-in-san-francisco

First, you’ll probably have to figure out the total surface area of San Francisco. Then estimate how much of the area is land. After that, estimate the average width of the road, and find the total length of all the roads.

Maybe you can use a map? Then you can calculate the roads’ length. Is there any other way to do that?

Product Interview Questions

Business Analyst Product Interview Questions

There’s one more interview question type you should expect, and they are called the product interview questions. As the name says, they revolve around the company’s products. These questions test your familiarity with the company and its products, but also the business proficiency because they usually ask  about improving an existing product, introducing the new one, or anything else related to the business.

Here are some examples that you could use for practice.

Business Analyst Interview Question #21: Search Toolbar Change

Business analyst interview question from Quora

Link to the question: https://platform.stratascratch.com/technical/2025-search-toolbar-change

A good start would be to make assumptions about the reason for the toolbar change. Let’s assume that the reason for a toolbar change is to return more relevant results. Then the CTR or a click-through rate would be a good metric. Also, finding the positions of the search results the user clicked on could be useful. The higher the average position, the better search results. Better search results should also lead to more users using the search toolbar. Measuring the number of toolbar users can also indicate the impact of the said change. You could also measure time spent on the clicked search results.

Business Analyst Interview Question #22: Yelp Feature

Business analyst interview question from Yelp

Link to the question: https://platform.stratascratch.com/technical/2198-yelp-feature

It would help if you were a Yelp user. What feature do you miss? What would make your experience better? Write your suggestion in several sentences.

Business Analyst Interview Question #23: Daily Active Users

Business analyst interview question from Twitch

Link to the question: https://platform.stratascratch.com/technical/2322-daily-active-users

The vital step is to determine the internal and external factors that could have influenced the active users decrease. The internal factors could be a technical problem, change in the product, the introduction of the new product, etc. The external could be new competitors, new products by competitors, or new features introduced to the already existing products.

Then it could be important to determine whether the drop-off was sudden or gradual, and which day was that.

Use these suggestions and some other steps that you could think of to formulate the answer.

Business Analyst Interview Question #24: A/B Testing a Campaign

Business analyst interview question from Robinhood

Link to the question: https://platform.stratascratch.com/technical/2341-ab-testing-a-campaign

State the campaign assumptions and the metrics you would use to measure its success. Then talk about which test you would use and why, and describe the whole process.

Business Analyst Interview Question #25: Accepting Rides

Business analyst interview question from Uber

Link to the question: https://platform.stratascratch.com/technical/2335-accepting-rides

Try putting yourself in the driver’s position: what could be the reason for you not to accept the ride? Maybe it’s a short ride, but the number of rides is incentivized? Could it be that you know the customer, or it's your last ride, and the customer lives near you? Could this ride improve your rating?

Summary

You learned that the business analysts are standing with one foot in IT and the other in business. To become a business analyst, you need to showcase the required skills in both these areas.

The first chance for you to do that is a job interview. The technical skills are assessed through the SQL coding and theoretical questions. While the coding and analytical skills are getting increasingly important for business analysts, you shouldn’t forget your business side. To test it, the interviewers will ask the business cases and the product questions.

While there’s no guarantee that you won’t get some other types of questions in your job interview, too, you can be almost 100% certain that all these four types (or at least some of them) will be there. Focus on them first, and then try to find out which questions your potential employers usually ask in the interviews for business analyst jobs.

We’re sure it’ll pay off!

Business Analyst Interview Questions


Become a data expert. Subscribe to our newsletter.