Business Analyst Interview Questions
Categories
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?
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
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.
- Exploring the dataset
- Identifying columns for solving question
- Writing out the code logic
- 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
Interview Question Date: February 2021
How many paid users had any calls in Apr 2020?
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
user_id | date | call_id |
---|---|---|
1218 | 2020-04-19 01:06:00 | 0 |
1554 | 2020-03-01 16:51:00 | 1 |
1857 | 2020-03-29 07:06:00 | 2 |
1525 | 2020-03-07 02:01:00 | 3 |
1271 | 2020-04-28 21:39:00 | 4 |
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
user_id | status | company_id |
---|---|---|
1218 | free | 1 |
1554 | inactive | 1 |
1857 | free | 2 |
1525 | paid | 1 |
1271 | inactive | 2 |
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
- Use COUNT and DISTINCT – to get the unique number of users
- Reference the table rc_calls
- WHERE clause and BETWEEN – for showing only calls in April 2020
- The second condition in the WHERE clause – use the subquery to find the paid users
- Subquery – select the user_id from the table rc_users
- 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.
count |
---|
5 |
Business Analyst Interview Question #2: Number of Shipments Per Month
Interview Question Date: August 2021
Write a query that will calculate the number of shipments per month. The unique key for one shipment is a combination of shipment_id and sub_id. Output the year_month in format YYYY-MM and the number of shipments in that month.
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.
shipment_id | sub_id | weight | shipment_date |
---|---|---|---|
101 | 1 | 10 | 2021-08-30 |
101 | 2 | 20 | 2021-09-01 |
101 | 3 | 10 | 2021-09-05 |
102 | 1 | 50 | 2021-09-02 |
103 | 1 | 25 | 2021-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
- SELECT and TO_CHAR() – for selecting and converting the shipment date from datetime to text formatted as YYYY-MM
- COUNT() and DISTINCT – for finding the number of shipments
- Reference the table in the FROM clause
- 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.
year_month | count |
---|---|
2021-08 | 3 |
2021-09 | 6 |
Business Analyst Interview Question #3: User Growth Rate
Interview Question Date: July 2021
Find the growth rate of active users for Dec 2020 to Jan 2021 for each account. The growth rate is defined as the number of users in January 2021 divided by the number of users in Dec 2020. Output the account_id and growth rate.
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.
date | account_id | user_id |
---|---|---|
2021-01-01 | A1 | U1 |
2021-01-01 | A1 | U2 |
2021-01-06 | A1 | U3 |
2021-01-02 | A1 | U1 |
2020-12-24 | A1 | U2 |
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
- Select the account_id
- COUNT(), DISTINCT, CASE – for finding the users active in January 2021
- Divide by the second COUNT(), DISTINCT, CASE – used for finding the users active in December 2020
- Convert both COUNT() results to float to get the growth rate with the decimal places
- Use table sf_events in the FROM clause
- 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
Interview Question Date: June 2021
Summarize the number of customers and transactions for each month in 2017, keeping transactions that were greater or equal to $5.
Link to the question: https://platform.stratascratch.com/coding/2040-customers-report-summary
Solution Approach
- SELECT statement
- Use EXTRACT() – for showing only the month of the transaction date
- COUNT() & DISTINCT – for getting the number of unique customers
- COUNT() – for getting the number of transactions
- Use a subquery in the FROM clause to get the transactions equal to or above $5
- In the subquery, first select transaction, its date, and customer
- Use SUM() to get the value of sales
- Reference the table wfm_transactions in the FROM clause of the subquery
- Use the WHERE clause and EXTRACT() function to include only transactions in 2017
- Group data by all the columns in the SELECT statement, except the aggregate function
- 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.
month | customers | transactions |
---|---|---|
1 | 12 | 15 |
2 | 11 | 12 |
3 | 11 | 12 |
4 | 6 | 7 |
5 | 11 | 13 |
Business Analyst Interview Question #5: Total Order Per Status Per Service
Interview Question Date: June 2021
Uber is interested in identifying gaps in their business. Calculate the count of orders for each status of each service. Your output should include the service name, status of the order, and the number of orders.
Link to the question: https://platform.stratascratch.com/coding/2049-total-order-per-status-per-service
Solution Approach
- Select the service name and the order status
- SUM() – for finding the number of orders
- Reference the table in the FROM clause
- 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.
service_name | status_of_order | orders_sum |
---|---|---|
Uber_TIX | Failed/Timeout | 4370 |
Uber_SEND | No Driver Found | 112160 |
Uber_TIX | Other | 0 |
Uber_MART | No Driver Found | 410 |
Uber_SEND | Completed | 3107340 |
Business Analyst Interview Question #6: Hour With The Highest Order Volume
Interview Question Date: January 2021
Which hour has the highest average order volume per day? Your output should have the hour which satisfies that condition, and average order volume.
Link to the question: https://platform.stratascratch.com/coding/2014-hour-with-the-highest-order-volume
Solution Approach
- Write a CTE
- 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
- DATE_PART in the subquery – to get the hour from order_timestamp_utc
- Select the column order_timestamp and convert it to date
- COUNT() – for counting the number of orders
- Data in the subquery comes from the table postmates_orders
- The subquery’s output is grouped by the hour and date
- The main SELECT in the CTE selects the hours from the subquery
- Then use AVG() to find the average number of orders
- Group the CTE output by hour
- The SELECT statement that references the CTE selects all columns
- WHERE clause – show only data where the average orders equals the highest number of the average orders
- Use the subquery to set up the condition in WHERE clause
- Sort data from the highest to the lowest average order amount
Write the solution in the widget.
Output
hour | avg_orders |
---|---|
3 | 2 |
8 | 2 |
Business Analyst Interview Question #7: Share of Active Users
Interview Question Date: February 2021
Output share of US users that are active. Active users are the ones with an "open" status in the table.
Link to the question: https://platform.stratascratch.com/coding/2005-share-of-active-users
Solution Approach
- The subquery in the FROM clause – finds the number of total and active users
- In the subquery, the first COUNT() finds the number of total users
- The second COUNT() and CASE clause – for getting the active users, which are the ones with the open status
- Use data from the table fb_active_users in subquery
- WHERE clause – for counting only the USA users in the subquery
- In the main SELECT query, divide the number of active users by the number of total users
- Convert the result to float to get the ratio with decimal place
Output
Did you also get the ratio of 0.5?
active_users_share |
---|
0.5 |
Business Analyst Interview Question #8: Inactive Free Users
Interview Question Date: January 2021
Return a list of users with status free who didn’t make any calls in Apr 2020.
Link to the question: https://platform.stratascratch.com/coding/2018-inactive-free-users
Solution Approach
- Select the unique users
- Use data from the table rc_users
- WHERE clause – to include only free users
- The second condition in WHERE – users didn’t make calls in April 2020
- Use the subquery to find the users without the calls in April 2020
- In the subquery, select the user ID from the table rc_calls
- 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
user_id |
---|
1575 |
1910 |
Business Analyst Interview Question #9: Rush Hour Calls
Interview Question Date: February 2021
Redfin helps clients to find agents. Each client will have a unique request_id and each request_id has several calls. For each request_id, the first call is an “initial call” and all the following calls are “update calls”. How many customers have called 3 or more times between 3 PM and 6 PM (initial and update calls combined)?
Link to the question: https://platform.stratascratch.com/coding/2023-rush-hour-calls
Solution Approach
- COUNT() – to count the number of customers
- In the FROM clause, there is a subquery
- The subquery selects the request ID from the table redfin_call_tracking
- WHERE & DATE_PART() – find the calls between 15 and 17 hours
- Show hours as timestamp
- Group data by request ID
- HAVING clause – to show only clients with three or more calls
Output
There’s only one client that satisfies all the requirements.
count |
---|
1 |
Business Analyst Interview Question #10: Signups By Billing Cycle
Interview Question Date: April 2021
Write a query that returns a table containing the number of signups for each weekday and for each billing cycle frequency. The day of the week standard we expect is from Sunday as 0 to Saturday as 6.
Output the weekday number (e.g., 1, 2, 3) as rows in your table and the billing cycle frequency (e.g., annual, monthly, quarterly) as columns. If there are NULLs in the output replace them with zeroes.
Link to the question: https://platform.stratascratch.com/coding/2032-signups-by-billing-cycle
Solution Approach
- EXTRACT – to get the day of the week of the signup
- COUNT(), DISTINCT, CASE – to get the signups for the annual billing cycle
- COUNT(), DISTINCT, CASE – find the signups for the monthly billing cycle
- COUNT(), DISTINCT, CASE – get the signups for the quarterly billing cycle
- JOIN the tables signups and plans where plan_id equals id
- 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.
weekday | annual | monthly | quarterly |
---|---|---|---|
1 | 1 | 5 | 1 |
2 | 3 | 3 | 5 |
3 | 3 | 4 | 5 |
4 | 0 | 1 | 3 |
5 | 1 | 0 | 7 |
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
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
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
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
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
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
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
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
- Determine the population: USA population = 330 million
- Determine the number of kids (20%) = 66 million
- Determine the number of adults (80%) = 264 million
- Determine the number of smokers among adults (13%): Smokers = 264 million x 13% = 34.3 million
- Determine the number of smokers among kids (5%): Kids smokers = 66 million x 5% = 3.3 million
- Total number of smokers = 34.3 million + 3.3 million = 37.6 million
- Determine the number of smokers who roll their own cigarettes (7%): Roll-your-own = 37.6 million x 7% = 2.6 million
- The rest buy cigarettes: 37.6 million - 2.6 million = 35 million
- Let’s say the smokers smoke 15 cigarettes a day
- Average price per cigarette ($8 a 20-cigarettes pack): Price per cigarette = $8/20 = $0.4
- Roll-your-owns (RYO) are cheaper (30%): Price per cigarette (RYO) = $0.4 x 30% = $0.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.
- 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
- 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
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
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
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
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
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
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
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
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
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
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!