BI Developer interview questions
100 real questions with model answers and explanations for Junior candidates.
See a BI Developer resume example →Practice with flashcards
Spaced repetition · Hunter Pass
Questions
I would first identify the decision the manager must make from the dashboard.
- Ask whether the Friday meeting reallocates leads, reviews quota risk, or follows overdue deals, because each decision needs a different primary KPI.
- Define the audience and cadence as 1 manager plus 18 representatives using a daily snapshot, then record which owner, stage, and region fields they need to filter.
- Leave the meeting with a 1-page wireframe and 3 signed examples of deals that should appear as needing attention, then use those rows as acceptance checks.
Why interviewers ask this: The interviewer is evaluating whether you turn a vague dashboard request into a specific decision, audience, and testable artifact.
I would write a metric contract for monthly net revenue before creating the KPI card.
- Set the formula to paid invoice amount minus posted refunds, exclude canceled invoices, and state whether the month comes from payment date or invoice date.
- Fix the display grain at 1 calendar month and document currency conversion, tax treatment, and the cutoff time for the daily refresh.
- Reconcile 3 sample months to the finance ledger and require a zero unexplained difference before the card is accepted.
Why interviewers ask this: The interviewer checks whether you define status, time, and reconciliation rules instead of placing an ambiguous sum on a dashboard.
I would define the KPI at one user per funnel step per calendar day, not one raw event row.
- Deduplicate the 800,000 events by user_id, event_date, and step so 5 checkout attempts by 1 user count once for that step.
- Calculate daily conversion as distinct purchasers divided by distinct eligible funnel entrants, with both populations using the same cohort rule.
- Validate the grain with a 20-row user journey sample and add a grain note beside the dataset definition.
Why interviewers ask this: The interviewer is testing whether you can prevent repeated events from inflating a dashboard KPI by defining grain explicitly.
I would build a summary page that shows status first and supporting trends second.
- Put 3 KPI cards for revenue, margin, and target attainment in the first row, each with the current value and variance to target.
- Use 1 monthly line chart for the 12-month trend and 1 sorted bar chart for the 6 regions, because executives need direction and comparison rather than row-level detail.
- Keep the page to about 5 visuals, place the latest refresh timestamp visibly, and test that all 3 questions can be answered within a 5-minute walkthrough.
Why interviewers ask this: The interviewer evaluates whether chart choice and information density match a time-constrained executive audience.
I would use a line chart with a separate target reference line.
- Put week on a continuous x-axis and qualified lead count on the y-axis so the 26-week direction and seasonality remain visible.
- Add a clearly labeled horizontal line at 400 rather than a second bar series, which makes misses and recoveries easy to scan.
- Check the chart at 1366 pixels wide and verify that all 26 points are readable without labels on every mark.
Why interviewers ask this: The interviewer checks whether you select a visual that communicates trend and target variance without clutter.
I would replace the pie with a descending horizontal bar chart.
- Sort all 14 categories by ticket count so the largest workload is visible without comparing angles or hunting through a legend.
- Show direct count labels and optionally group categories below 1 percent into Other only if the category detail remains available elsewhere.
- Test the visual with the longest category name and a 1280-pixel screen to ensure labels do not truncate or overlap.
Why interviewers ask this: The interviewer evaluates whether you can replace a poor chart with a comparison visual that handles many categories and long labels.
I would use one KPI card with the actual, target variance, and prior-day change shown together.
- Display 92 percent as the primary value and a labeled minus 3 percentage-point variance to the 95 percent target.
- Add the prior-day comparison as a secondary value, such as down 1.2 percentage points, without mixing percentage points with percent change.
- Use text or an icon in addition to color and verify the card remains understandable in grayscale and at 200 percent zoom.
Why interviewers ask this: The interviewer checks whether you distinguish target variance from period change and communicate status accessibly.
I would lead with an actionable table because users must identify specific customer rows.
- Include customer, renewal date, owner, contract value, days remaining, and last-contact date, then sort by days remaining ascending.
- Add filters for the 30 owners and renewal-value band, while keeping a small card above the table for total value due within 14 days.
- Validate the table with 10 known accounts and check that the first screen shows enough columns without horizontal scrolling at the standard laptop width.
Why interviewers ask this: The interviewer evaluates whether the chosen visual supports row-level operational action rather than decorative aggregation.
I would not merge the two definitions into one unlabeled KPI.
- Document 2 candidate definitions with formulas, date fields, and example customer IDs, then ask the dashboard owner to approve the business meaning.
- If both decisions matter, show 2 explicitly named measures such as Purchasing active, 90 days and Product active, 30 days rather than hiding the difference.
- Test 10 boundary customers against both rules and attach the approved metric contract before the 4-day build starts.
Why interviewers ask this: The interviewer checks whether you surface conflicting business definitions and preserve semantic clarity under deadline pressure.
I would scope the first version to the supervisors' daily stock-risk decision and make its acceptance criteria explicit.
- Limit version 1 to 3 KPIs, current stock, items below reorder point, and stock value, plus 1 warehouse filter and 1 item-level table.
- Write a wireframe and a field mapping from each visual to the source column or measure before authoring the dashboard.
- Agree on 5 acceptance checks, including known low-stock SKUs from at least 2 warehouses, and complete a review with 2 supervisors before the 3-day deadline.
Why interviewers ask this: The interviewer evaluates whether you can control scope while still delivering a testable BI artifact for a defined audience.
I would use visual-level, page-level, and report-level filters for those three scopes.
- Put Region equals West on the single chart's visual filter so the other 11 visuals keep their own region context.
- Put Year equals 2026 on the relevant page filter so every visual on that page receives it.
- Put Status equals Active on the report-level filter, then inspect 1 visual on each of the 4 pages to confirm the filter scope.
Why interviewers ask this: The interviewer checks whether you understand Power BI filter scopes and can verify their effect without overfiltering the report.
I would add clearly labeled slicers bound to dimension fields and keep their state easy to inspect.
- Use a single-select Year slicer when the KPI specification allows only 1 year, and multi-select slicers for the 5 regions and 3 product families.
- Place the slicers consistently at the top of the report canvas and show the current selection in a subtitle or filter summary.
- Test 3 combinations against a simple table of expected totals and use Edit interactions if a visual must intentionally ignore one slicer.
Why interviewers ask this: The interviewer evaluates basic Power BI slicer authoring, interaction scope, and validation against expected totals.
I would create a Tableau filter action from the region chart to the detail table.
- Set the source sheet to the 8-region bar chart, run the action on Select, and target only the order-detail sheet.
- Map Region to Region and choose the clearing behavior deliberately, such as Show all values when the selection is cleared.
- Click 3 regions and compare the target row counts with worksheet filters to confirm that the action passes the intended field.
Why interviewers ask this: The interviewer checks whether you can connect Tableau worksheets with a correctly scoped dashboard filter action.
I would build the query from governed fields in the existing Explore, verify it, and save it as a dashboard tile.
- Select Week and Product Category as dimensions plus Orders and Revenue as measures, then filter to the required date range.
- Run the query and check 3 category totals against known source results before changing visualization settings.
- Save the result to the shared dashboard with a clear title and preserve the field definitions from LookML rather than recreating KPI logic in the tile.
Why interviewers ask this: The interviewer evaluates whether you can use a Looker Explore and its modeled measures to author a reliable dashboard tile.
I would create a dedicated order-detail page and add Region to its drill-through filter well.
- Put an order table on the target page with order ID, date, customer, and amount, and add a Back button for the return path.
- Users can right-click a regional data point and choose the drill-through page, which carries that region's filter context.
- Test 2 regions and confirm both the detail row count and amount reconcile to the selected summary value.
Why interviewers ask this: The interviewer checks whether you know the required Power BI drill-through field, navigation path, and reconciliation check.
I would use a concise tooltip so the chart stays readable while exact values remain available on demand.
- Add Month, Revenue, Cost, Margin, and Margin Percent to the tooltip content with consistent currency and percentage formats.
- Order the 5 fields by business importance and label each one explicitly instead of exposing technical column names.
- Hover 3 known months, reconcile all tooltip values to a validation table, and check that the content remains legible at the published report size.
Why interviewers ask this: The interviewer evaluates whether tooltips add useful detail without turning the main visual into a field dump.
I would configure visual interactions rather than changing the underlying measures.
- Select the bar chart, open Edit interactions, set the product table to Filter, and set the company-total card to None.
- Keep the interaction choices visible in the report design checklist because the unchanged card is an intentional requirement, not a broken filter.
- Click 2 bars and verify that the table row count changes while the KPI card remains equal to the company total.
Why interviewers ask this: The interviewer checks whether you can control Power BI cross-filtering at the visual level and verify intentional exceptions.
I would add one dashboard Region filter and map it to the correct region field for each tile.
- Choose a user-friendly control and leave it unfiltered by default when all regions should appear, rather than hard-coding a region inside each query.
- For every one of the 6 tiles, map the dashboard filter to the field from that tile's Explore when the field is available.
- Select 2 regions and verify each tile's query result, documenting any tile that cannot be mapped instead of implying it is filtered.
Why interviewers ask this: The interviewer evaluates whether you understand that Looker dashboard filters must be connected to compatible fields per tile.
I would create a dedicated phone layout that prioritizes the few visuals needed in the field.
- Place 3 KPI cards first, followed by 1 alert chart and a narrow action table, instead of shrinking all 10 desktop visuals.
- Leave the wide matrix out of the phone layout and provide essential columns through a mobile-friendly table or a drill-through page, and size controls for touch rather than precise mouse input.
- Preview the phone layout at 2 common device sizes and confirm that the top decision can be made without horizontal scrolling.
Why interviewers ask this: The interviewer checks whether you treat mobile as a prioritized layout rather than a compressed desktop canvas.
I would make status understandable without color and ensure every visual has readable, navigable context.
- Add text or shape cues such as On target and Below target, and check at least a 4.5 to 1 contrast ratio for normal-sized text.
- Set meaningful titles and alt text for all 7 visuals, use readable font sizes, and avoid labels that depend only on hover.
- Review tab order with a keyboard and test the page at 200 percent zoom plus a grayscale view before handoff.
Why interviewers ask this: The interviewer evaluates practical dashboard accessibility through color, text alternatives, keyboard order, and zoom checks.
Locked questions
- 21
You receive 1.2 million sales rows plus customer, product, and store attributes for a revenue dashboard. Which tables would be facts and which would be dimensions?
dashboardsmodeling - 22
An orders source has 250,000 order lines, but the requested dashboard shows order count, units, and revenue by product. What grain should FactSales use?
dashboardsgrain - 23
A Power BI model has 5,000 customers and 900,000 sales rows. How would you configure the customer-to-sales relationship for a regional KPI dashboard?
configbipower-bi - 24
A daily revenue dashboard covers 2024 through 2026 and needs month, quarter, weekday, and fiscal-year filters even on dates with no sales. What should the date dimension contain?
modelingdashboards - 25
An order dashboard needs to analyze 400,000 rows by both order date and ship date. How would you model the two date roles without creating ambiguous filtering?
dashboards - 26
During today's load, 230 sales rows reference product codes not yet present in the product dimension, but the revenue dashboard must still preserve their value. How would you handle them?
dashboardsmodeling - 27
Two source systems both use product code 1001 for different products, and 3 million sales rows must map to one DimProduct. Would you use product code alone as the dimension key?
modelingsystem-design - 28
A shipping dashboard needs order number for search and detail, but each order number can repeat across several line rows and has no descriptive attributes. Would you create a separate dimension?
dashboardsmodeling - 29
A warehouse dashboard receives one end-of-day inventory balance for each of 4,000 products across 30 days. What fact grain and aggregation warning would you document?
aggregationwarehousegrain - 30
A monthly dashboard compares daily actual sales with one budget row per product category per month. Should you join both datasets into one fact table?
joinsmodelingdashboards - 31
A BI query must list all 10,000 customers and their 2026 revenue, including customers with zero orders. Which SQL join would you use?
sqljoinsqueries - 32
Joining 600,000 order lines directly to 40,000 payment rows doubles revenue on a dashboard because some orders have multiple payments. How would a CTE help?
ctesqldashboards - 33
A dashboard needs one row per month and region from 2 million sales rows, with revenue and order count. What SQL aggregation would you write?
sqlaggregationdashboards - 34
A customer-status table contains 700,000 updates, and a dashboard needs only the latest status for each of 85,000 customers. How would you use a window function?
window-functionssqldashboards - 35
A finance table has 36 monthly revenue rows across 2024 through 2026, and the dashboard needs a running total that restarts each January. How would you use a SQL window function?
sqlwindow-functionsdashboards - 36
Power Query imports 150,000 CSV rows where order dates are text, revenue uses decimal commas, and 42 customer IDs have surrounding spaces. What cleanup steps would you apply?
queriespower-query - 37
A Power Query model reads 5 million SQL rows but needs only 2026 data and 8 columns for a dashboard. How would you preserve query folding?
sqlqueriesschema - 38
Power Query has 2,500 product rows and an 18-row category lookup, and DimProduct needs category name alongside each product's brand. How would you merge them?
queriespower-query - 39
You must create a dbt staging model for 900,000 raw order rows before a Power BI deadline tomorrow. What belongs in that staging model?
bidbtpower-bi - 40
A dbt sales mart joins staged orders to customers for a 20-user dashboard. How would you reference models and check the join before handoff?
joinsdbtdashboards - 41
A Power BI report has 2 million sales rows and needs margin percent to change with year, region, and product slicers. Should you use a measure or calculated column?
measuresdaxbi - 42
Each of 500,000 sales rows has Quantity and UnitPrice, and the model needs a stored LineAmount for grouping into fixed price bands after refresh. How would row context apply?
dax - 43
The Revenue measure in a Power BI report shows 8.4 million for all data, 2.1 million after selecting West, and 600,000 after also selecting March. Why does the same measure return different values?
bipower-bimeasures - 44
A margin KPI must divide 320,000 margin by 2,000,000 revenue, but some product categories have zero revenue. Which DAX pattern would you use?
kpidaxcss - 45
A customer dashboard contains 1.8 million order rows from 72,000 customers, and it needs unique buyers by month. Which DAX aggregation would you use?
dashboardsaggregationdax - 46
A 12-user service dashboard needs a Closed Tickets KPI that responds to date and team slicers but always includes only status Closed. How would you write it with CALCULATE?
dashboardsfilterskpi - 47
A Power BI page for 30 managers needs a title that says Sales: All regions with no Region filter, Sales: West with exactly one region, and Sales: Multiple regions with two or more. How would you build the title measure?
bipower-bimeasures - 48
A monthly revenue dashboard needs prior-year revenue for January through June 2026, and the model has a continuous marked date table. How would you calculate the comparison?
dashboardsdax - 49
A KPI page shows 24 monthly order totals and needs the change versus the immediately previous month under a product slicer. How would you build it in DAX?
kpidaxfilters - 50
A finance dashboard needs year-over-year growth from 6.0 million to 7.5 million and must show blank when prior-year revenue is missing. How would you compose the DAX measures?
measuresdaxdashboards - 51
A Power BI matrix shows 1,240 orders across its rows, but the total says 980. How would you investigate before changing the measure?
bipower-bimatrix - 52
A Power BI sales table has 3 lines with quantities and unit prices of 2 at $10, 1 at $50, and 3 at $20. A measure multiplies SUM of quantity by SUM of price and returns $480. How would you correct it?
bipower-bimeasures - 53
A regional conversion table shows 42%, 38%, and 52%, while the total displays 132%. How would you fix the report?
- 54
A year-to-date sales card stays at $3.2 million when the user changes the date slicer's upper bound from June 30 to May 31. How do you debug it?
filters - 55
A column chart makes the $102,000 column look three times as tall as the $98,000 column because its axis starts at $96,000. What would you change?
chartsschema - 56
A dual-axis chart overlays 1.8 million visits and a 2.4% conversion rate, making both lines appear perfectly correlated. How would you redesign it?
chartsconversion - 57
Users select Q2 in a slicer, but the report title still says Q1 Results and an axis says Revenue in thousands although values are in millions. What do you do?
filters - 58
Your executive dashboard reports $1.24 million monthly revenue, while Finance reports $1.19 million. How would you reconcile the KPI?
dashboardskpireconciliation - 59
You inherit a Power BI page with 12 visuals and 4 slicers. What dashboard QA would you perform before sharing it with 35 sales managers?
dashboardsfiltersbi - 60
A dashboard passes its normal view, but selecting a new region produces 6 blank visuals and one misleading zero KPI. How would you handle the edge case?
dashboardskpi - 61
A Power BI Service refresh that normally takes 18 minutes now fails after 45 minutes. What are your first steps?
bipower-bi - 62
Power Query reports The column CustomerName was not found after a 250,000-row source file changed from 12 to 13 columns. How do you repair it safely?
queriesschemapower-query - 63
A Power Query refresh produces 3,400 conversion errors after a CSV switches dates from MM/DD/YYYY to DD/MM/YYYY. What would you do?
queriespower-query - 64
A Power BI report is built against SQL-DEV, but its published semantic model must refresh from SQL-PROD without editing M code for every release. How would you configure the switch?
configbipower-bi - 65
You must build a report over 8 million sales rows that updates four times daily. How would you choose between Import and DirectQuery?
- 66
A DirectQuery report over 15 million rows takes 14 seconds whenever a user changes a slicer. What would you check before switching to Import?
filters - 67
A scheduled Power BI refresh fails with a gateway offline message at 06:00, while Desktop refresh still works. How do you troubleshoot it?
gatewaybipower-bi - 68
A Power BI Service refresh begins failing with invalid credentials one day after a database password rotation. What actions do you take?
bipower-bidatabase - 69
A report reads a 60,000-row Excel file from a developer's laptop and cannot refresh after publication. How would you make refresh reliable?
excel - 70
Power BI refresh history says Completed in 11 minutes, but the report still shows data only through July 13 instead of July 15. What do you check?
bipower-bi - 71
A Power BI page with 24 visuals opens in 19 seconds. How would you use Performance Analyzer to improve it?
profilingbipower-bi - 72
Performance Analyzer shows that a Power BI table loading 250,000 transaction rows is the main page delay, but managers only need the 50 largest overdue orders. How would you redesign it?
profilingbipower-bi - 73
A 6-million-row Power BI model is 1.7 GB, and the fact table includes unique Transaction ID and 200-character Comment columns. What would you change?
transactionsschemamodeling - 74
A report became slower and started showing ambiguous totals after you changed 4 relationships to bidirectional filtering. How would you recover?
- 75
You created East and West RLS roles for 120 sales users. How do you test that an East user cannot see West revenue?
row-level-security - 76
A new sales user sees a blank report after being assigned to the North RLS role. What do you investigate?
row-level-security - 77
You need to release a Power BI report to 65 viewers while only 4 developers should edit workspace content. How would you share it?
bipower-bi - 78
A report shows only regional totals, but users can export 90,000 underlying customer rows including email addresses. What would you do?
- 79
A teammate suggests Publish to web so 300 contractors can open a Power BI report without licenses. How do you respond?
bipower-bi - 80
A viewer requests Build permission on a semantic model used by 40 people so they can create an Excel pivot. What checks do you make?
semantic-layerexcel - 81
You fixed 3 measures in a Power BI PBIX, but production users need the old version available if totals regress. What publish workflow do you use?
bipower-bimeasures - 82
You must change a LookML field used by 18 dashboards. What Git workflow should a junior BI developer follow?
gitbidashboards - 83
Eight Power BI authors each copied the same 22-measure model into a separate PBIX, and revenue fixes now require 8 manual updates. How would you introduce governed self-service?
bipower-bimeasures - 84
What deployment checklist would you use for a 9-page Power BI report scheduled to refresh at 07:00?
deploymentbipower-bi - 85
Twelve sales managers must perform UAT on a new pipeline dashboard before Friday. How would you organize the test?
dashboardsuatci-cd - 86
A Power BI report opens with Region set to West and Year set to 2025 because the author saved that test state, while the approved default is all regions and 2026. How would you fix and verify the default before release?
bipower-bi - 87
A Power BI phone layout is already built for 70 field staff, but a tester cannot clear the Region slicer and a drill-through page has no obvious return path. What mobile QA and fixes would you perform?
filtersdrill-throughbi - 88
A Power BI app was sent to 80 employees, but usage metrics show only 14 unique viewers in 30 days. What do you check first?
monitoringbipower-bi - 89
The primary BI developer leaves on Friday, and a 9-page Power BI report used by 45 people depends on 4 sources, 1 gateway, and a daily refresh. What handoff would you require?
gatewaybipower-bi - 90
After a report is renamed and moved into a new Power BI app section, usage drops from 55 to 18 weekly users. What would you do?
bipower-bi - 91
A Tableau workbook uses an extract refreshed nightly, but users expect today's 10:00 orders to appear immediately. How do you explain and resolve the issue?
bitableau - 92
A Tableau workbook switched from a 20-minute extract refresh to a live connection, and each filter now takes 12 seconds. What do you investigate?
bitableau - 93
A Tableau Cloud extract has 900,000 rows, but 120 corrected orders do not change after an incremental refresh keyed on Order ID. Why, and what would you do?
bitableaurefresh - 94
A Looker Explore shows 6,200 customers, but the approved customer dashboard shows 5,850. How would you validate the Explore?
bilookervalidation - 95
A Looker dashboard still shows yesterday's $1.2 million revenue after the warehouse has today's approved rows. How would you determine whether query caching is the cause?
querieswarehousebi - 96
You rename a LookML field and Content Validator reports 23 broken Looks and dashboard tiles. What do you do?
dashboardsvalidationbi - 97
You find 4 nearly identical pipeline reports with 22, 17, 6, and 0 weekly users. How would you reduce duplication?
ci-cd - 98
A support ticket says The dashboard is wrong and includes only a screenshot showing 0 orders. How do you triage it?
dashboards - 99
A Power BI app update at 09:00 makes 5 KPI cards blank for 140 users. What is your incident response?
bipower-biincidents - 100
11 Looker dashboard tiles fail minutes before an executive meeting, and one tile's generated SQL says the Looker warehouse account lacks SELECT on analytics.orders. How would you recover?
sqlwarehousebi