Data & BINovember 4, 202624 min read

Top Power BI Interview Questions & Answers (2026)

17 questions Power BI Developer interviewers actually ask, with the strong answer, the weak one, and the follow-up that comes next.

  • Power BI DevRole
  • $90K-$135KTypical US pay
  • 3-4 roundsInterview loop
  • Nice to haveCert in hiring
  • UsuallyHands-on test
Power BI interview questions and answers - interviewer and candidate speech bubbles

Power BI roles sit everywhere: finance and operations teams inside ordinary companies, Microsoft partners and consultancies, and central BI or data platform teams that now run on Microsoft Fabric. The title varies (Power BI developer, BI analyst, reporting analyst, analytics engineer) but the interview is remarkably consistent. Expect a recruiter screen, a technical conversation that lives or dies on DAX and modelling, a hands-on build or take-home with a messy dataset, and a stakeholder round where you explain a number to someone who does not care about filter context.

PL-300 helps you clear the keyword filter and signals you know the whole product, from Power Query to RLS and workspace apps. It does not prove you can debug a slow model or push back on a bad requirement. Interviewers in 2026 test exactly that, so treat the cert as the ticket in and your model-building judgement as the actual interview.

What the Power BI Developer interview loop looks like

Most Power BI Developer / Data Analyst hiring runs 4 rounds. Each one is testing something different, so prepare for each separately.

1
Recruiter screenRecruiter or HR · 20-30 minSalary range, notice period, Power BI tenure, whether you have built models or only reportsTip: Say what you built, for whom and at what scale: tables, rows, users. 'Built the sales model 40 reps use daily' beats a list of features.
2
Technical interviewBI lead or senior Power BI developer · 45-60 minDAX evaluation context, star schema, relationships, storage modes, RLS, performance tuningTip: Talk through context out loud. When unsure, say how you would test it in DAX query view or Performance Analyzer instead of guessing.
3
Hands-on build or take-homeBI team · 60-90 min or 3 hClean data in Power Query, build a star schema, write measures, ship a readable report pageTip: Model first, visuals last. A clean star schema with five correct measures beats a flashy page built on one flat table.
4
Stakeholder and behavioural roundHiring manager plus a business user · 30-45 minRequirements gathering, explaining numbers, handling conflicting definitions, prioritisationTip: Bring one story where two teams defined a metric differently and how you got them to agree on a single measure.

The 17 questions, with answers

Each card shows the question as it is usually asked, what the interviewer is really checking, a strong answer, the weak answer they hear most often, and the follow-up that comes next. Say the strong answers in your own words — a memorised script sounds memorised.

  • Basic · 4
  • Core · 5
  • Advanced · 3
  • Scenario · 3
  • Behavioural · 2
Basic · 4Warm-up questions. Fluff these and the rest of the interview is uphill.
Q01BasicModel the data
Interviewer

What is a star schema and why do Power BI developers keep insisting on it?

What they are testing: Whether you model before you visualise, and know why VertiPaq and DAX favour stars

Strong answer

A star schema separates facts, the events you measure like sales lines, from dimensions, the things you slice by like product, customer and date. Facts sit in the middle with one-to-many relationships out to each dimension. Power BI likes it because filters flow cleanly from the one side to the many side, DAX measures stay simple, and the engine compresses narrow fact tables with low-cardinality keys very well. A single flat table seems easier until you need two facts at different grains, or a slicer that should filter both. Then you end up with bidirectional filters and convoluted measures. So I shape data into facts and dimensions in Power Query or upstream before I write any DAX.

Weak answer"It is just a best practice Microsoft recommends." No mention of filter propagation, grain or compression, so it sounds memorised rather than understood.
Next they will askYou have budget data monthly by category and actuals daily by product. How do you model both?
Q02BasicModel the data: Create model calculations
Interviewer

Calculated column versus measure: when would you use each?

What they are testing: Row context vs query-time evaluation and the memory cost of columns

Strong answer

A calculated column is computed row by row at refresh and stored in the model, so it costs memory and is fixed regardless of what the user selects. I use one when I need the value to slice, filter or group by, like a price band or an age bucket, and ideally I push that into Power Query or the source instead. A measure is evaluated at query time in the current filter context, so it responds to slicers and visuals and stores nothing. Anything that aggregates, like total sales, margin percent or year-to-date, should be a measure. The common mistake is a calculated column for margin percent, which then sums wrongly in a total row.

Weak answer"Columns are for simple maths, measures for complex maths." It misses the evaluation-time difference, which is the entire point.
Next they will askWhy does a margin percent calculated column give the wrong total, and how does the measure fix it?
Q03BasicPrepare the data: Get or connect to data
Interviewer

Import, DirectQuery or Direct Lake: how do you decide which storage mode a table should use?

What they are testing: Trade-offs between freshness, performance, licensing and source load

Strong answer

Import copies data into the VertiPaq engine, so it is fastest and supports everything, but data is only as fresh as the last refresh and the model size counts against limits. DirectQuery sends every visual query to the source, which gives near real-time data but makes performance depend on that source, and some DAX and modelling features are restricted. Direct Lake is the Fabric option: it reads Delta tables in OneLake straight into VertiPaq, so you get import-like speed and a refresh that is only a metadata reframe. It needs a Fabric capacity and the data prepared upstream in a lakehouse or warehouse. My default is Import unless volume or latency forces otherwise; if we are on Fabric with gold tables already in OneLake, Direct Lake.

Weak answer"DirectQuery is always better because data is live." Ignores source load, slow visuals and feature limits that make DirectQuery the last resort for many teams.
Next they will askWhat happens with Direct Lake on SQL endpoints when a table is a SQL view or has SQL-level RLS?
Q04BasicPrepare the data: Transform and load the data
Interviewer

What does query folding mean in Power Query and why should I care?

What they are testing: Whether you know which transforms push down to the source and how to check

Strong answer

Query folding is Power Query translating your applied steps into a single native query, usually SQL, so the source does the filtering and joining instead of the mashup engine pulling every row first. It matters for refresh speed, gateway load and especially incremental refresh, which relies on the date filter folding so each partition only fetches its own range. I check it by right-clicking a step and looking for View Native Query, or the step folding indicators in Power Query Online. Steps like filtering, removing columns and simple merges usually fold against SQL sources; adding an index column or certain custom M functions often break it, so I put those as late as possible.

Weak answer"It means grouping the steps into folders." A literal guess that shows the candidate has never tuned a refresh.
Next they will askYour incremental refresh is pulling the full table every night. What is the first thing you check?
Core · 5The day-to-day knowledge the job runs on. Most of the score comes from here.
Q05CoreModel the data: Use the CALCULATE function
Interviewer

Explain filter context versus row context, and what context transition is.

What they are testing: The single concept that separates people who write DAX from people who copy it

Strong answer

Row context exists when DAX iterates a table row by row, in a calculated column or inside an iterator like SUMX; it lets you reference the current row's values but does not filter anything by itself. Filter context is the set of filters active when a measure is evaluated: slicers, visual axes, page filters, and anything CALCULATE adds. Context transition is what happens when CALCULATE runs inside a row context: it turns the current row into an equivalent filter context. That is why a measure referenced inside SUMX over Customers gives a per-customer value, because every measure reference is implicitly wrapped in CALCULATE. It is powerful but it can be slow over large tables and surprising when the table has duplicate rows.

Weak answer"Row context is for columns, filter context is for measures." Partly true but cannot explain why a measure inside an iterator behaves differently.
Next they will askWrite a measure for average sales per customer, but only counting customers who bought something.
Q06CoreModel the data: Use the CALCULATE function
Interviewer

Walk me through what CALCULATE actually does with its filter arguments.

What they are testing: Whether you know CALCULATE overrides or adds filters, plus KEEPFILTERS, REMOVEFILTERS, ALL

Strong answer

CALCULATE evaluates an expression in a modified filter context. It takes the existing filters, performs context transition if there is a row context, then applies each filter argument. A simple predicate like Product[Color] = "Red" replaces any existing filter on that column, it does not intersect with it, so if the user sliced to Blue you still get Red. If I want intersection, I wrap it in KEEPFILTERS. Modifiers like REMOVEFILTERS or ALL clear filters, which is how I build percent-of-total: sales divided by CALCULATE of sales with REMOVEFILTERS on the product table. USERELATIONSHIP activates an inactive relationship, which I use for ship date versus order date. I always test edge cases in a matrix with totals turned on.

Weak answer"CALCULATE is like SUMIF with conditions." Misses override behaviour, so their measures break the moment a slicer touches the same column.
Next they will askA user filters to Blue and your Red Sales measure still shows a number. Is that a bug? How would you change it?
Q07CoreModel the data: Design and implement a data model
Interviewer

How do you handle relationship direction? When would you ever turn on bidirectional filtering?

What they are testing: Understanding of ambiguity, performance, and safer alternatives to both-direction filters

Strong answer

My default is single direction, from the one side to the many side, dimension to fact. Bidirectional filtering lets a fact table filter a dimension, which sounds handy but creates ambiguous paths once you have two facts sharing dimensions, can hurt performance, and interacts badly with RLS. The legitimate cases are narrow: a bridge table in a many-to-many pattern, or a slicer that should only show products with sales. Even then I prefer scoping it inside one measure with CROSSFILTER, or filtering the slicer visual with a measure that is not blank, so the behaviour is explicit and does not leak into every other visual in the report.

Weak answer"I set everything to both so the slicers work." A classic sign of someone who has never debugged an ambiguous model.
Next they will askHow would you model customers who belong to multiple sales regions at the same time?
Q08CoreManage and secure Power BI
Interviewer

How would you set up row-level security so regional managers only see their own region?

What they are testing: Dynamic RLS, USERPRINCIPALNAME, testing, and who RLS does not apply to

Strong answer

I would use dynamic RLS rather than one role per region. I add a security table mapping user email to region, relate it to the Region dimension, and create one role with a DAX filter on the security table like [Email] = USERPRINCIPALNAME(). The filter flows from security table to Region to the fact. I test with View as role in Desktop and with test users in the service, then assign the role to an Entra ID security group rather than individuals. Two things people miss: RLS only restricts users with Viewer permissions, so workspace Admins, Members and Contributors see everything; and the role needs at least one member, or a Viewer who is in no role sees no data.

Weak answer"I make a separate report for each region." Unmaintainable and shows no awareness that RLS exists for exactly this.
Next they will askA manager covers two regions, and the CFO needs to see everything. How does your security table handle both?
Q09CorePrepare the data / Manage and secure Power BI
Interviewer

How do you set up incremental refresh, and what are the gotchas?

What they are testing: RangeStart/RangeEnd parameters, folding, policy settings and what happens after publishing

Strong answer

I create two datetime parameters named exactly RangeStart and RangeEnd, filter the fact table's date column with one inclusive and one exclusive boundary so rows are not duplicated, then define the policy: for example store five years, refresh the last ten days. After publishing, the service creates partitions and the first refresh loads the full history, which can be long. Gotchas: the filter must fold to the source or every partition reads the whole table; the policy only applies in the service, Desktop just loads the filtered sample; and once published you cannot download the PBIX back, and republishing from Desktop wipes the partitions, so later schema changes go through XMLA tools. I also use detect data changes when a reliable last-updated column exists.

Weak answer"You just turn it on in refresh settings." No parameters, no folding, no idea that the first refresh is the expensive one.
Next they will askLate-arriving records sometimes update rows from three months ago. How do you adjust the policy?
Advanced · 3Depth checks. They separate the cert holder from the practitioner.
Q10AdvancedModel the data: Optimize model performance
Interviewer

A report page takes 15 seconds to load. Walk me through how you find and fix the cause.

What they are testing: A real diagnostic sequence rather than random tweaks

Strong answer

First I open Performance Analyzer and record the page so I can see, per visual, how much time is DAX query versus visual rendering. If one visual dominates and it is DAX time, I copy the query into DAX query view or DAX Studio and check server timings, looking for formula engine heavy plans, often from iterators over big tables or complex filters on columns instead of tables. If it is rendering, the page probably has too many visuals or a table with thousands of rows. Fixes in order: reduce visuals, rewrite the measure using variables and simpler filters, remove unused high-cardinality columns, and check for bidirectional or many-to-many relationships. I measure again after each change so I know which one worked.

Weak answer"Upgrade the capacity." Throwing money at it without measuring is exactly what hiring managers do not want.
Next they will askThe slow part is a distinct count over 200 million rows. What options do you have?
Q11AdvancedModel the data: Create calculation groups
Interviewer

What are calculation groups and when are they worth the complexity?

What they are testing: Whether you can reduce measure sprawl without confusing report authors

Strong answer

A calculation group is a set of calculation items that apply a pattern to whichever measure is in context, using SELECTEDMEASURE. The classic case is time intelligence: instead of writing Sales YTD, Margin YTD, Units YTD and so on for every base measure, I write YTD, prior year and year-over-year once as items and they work on any measure. They are worth it when you have many base measures needing the same variations. The cost is that they change how measures behave, they can surprise report authors, and format strings need dynamic handling. You can now create them directly in Power BI Desktop. I document them and keep the set small so the model stays understandable.

Weak answer"They group measures into folders." Confuses calculation groups with display folders.
Next they will askHow does a calculation group interact with a measure that already has its own time intelligence logic?
Q12AdvancedPrepare the data: Get or connect to data
Interviewer

Your team is moving to Microsoft Fabric. What changes for you as a Power BI developer?

What they are testing: Awareness of OneLake, Direct Lake, lakehouse vs warehouse, and where transforms should live

Strong answer

The biggest shift is where data prep lives. Instead of every semantic model doing its own Power Query transforms, the data lands in OneLake as Delta tables through pipelines, Dataflow Gen2 or notebooks, typically in a bronze, silver, gold pattern. My semantic model then sits on the gold layer, often in Direct Lake mode, so refresh becomes a quick reframe instead of a full import. I need to understand Delta table health, because too many small files or row groups can hit Direct Lake guardrails. Capacity also matters more: everything draws from the same Fabric capacity units, so a heavy report and a heavy notebook compete. My DAX and modelling skills carry over completely.

Weak answer"Fabric is just Power BI renamed." Shows no idea that storage, refresh and capacity models changed.
Next they will askWhen would you still choose Import over Direct Lake inside a Fabric workspace?
Scenario · 3Something is broken or ambiguous. They want your reasoning out loud, in order.
Q13ScenarioVisualize and analyze the data
Interviewer

Finance says your revenue number does not match their Excel file. What do you do?

What they are testing: Reconciliation discipline and stakeholder handling under pressure

Strong answer

I do not defend the report first, I reconcile. I ask for their file and the exact filter they are looking at: period, entity, currency, and whether it is booked or invoiced revenue. Then I break both numbers down to the same grain, usually by month and account, and find where they diverge. Usually it is a definition difference, like credit notes, intercompany or a date column mismatch, or a data issue like late postings after our refresh. Once found, I explain it in their language, fix the measure if we are wrong, and if it is a definition gap I get finance and the business owner to agree one definition and document it in the measure description.

Weak answer"Our data comes from the source system so Excel must be wrong." Defensive, and wrong surprisingly often.
Next they will askThey agree the definition, but sales wants the old one too. How do you avoid two versions of the truth?
Q14ScenarioVisualize and analyze the data: Create reports
Interviewer

A sales director wants a dashboard with 25 visuals on one page by Friday. How do you respond?

What they are testing: Requirements gathering, design judgement, and saying no constructively

Strong answer

I would ask what decisions they make with it and how often. Usually 25 visuals means several audiences or questions rolled into one request. I would propose a summary page with four or five KPIs and trends answering the director's main questions, then drillthrough pages for region, product and rep detail, with bookmarks or a navigator so it still feels like one report. That loads faster and is easier to read. For Friday, I would commit to the summary page with correct numbers and the most-used drillthrough, show it, then iterate. I would sketch it with them before building, because changing a sketch is cheaper than changing a published report.

Weak answer"Sure, I will build all 25." Delivers a slow, unreadable page and teaches the stakeholder that more visuals equal more value.
Next they will askAfter launch, how would you find out whether people actually use the report?
Q15ScenarioManage and secure Power BI
Interviewer

Your scheduled refresh failed overnight and the CEO's meeting is at 9am. Talk me through the next hour.

What they are testing: Calm triage: gateway, credentials, source, capacity; and communication

Strong answer

First I check the refresh history in the semantic model settings for the actual error. The usual suspects are expired credentials or an OAuth token, the on-premises gateway being offline or out of date, a source schema change like a renamed column, a timeout, or capacity throttling. If it is credentials or the gateway, I fix it and trigger a manual refresh. If it is a schema change, I patch the query, republish, and refresh. While that runs, I tell the meeting owner whether the numbers will be current and as of when, so nobody presents stale data unknowingly. Afterwards I set up refresh failure notifications to a group and write up the cause.

Weak answer"I would rerun it and hope." No diagnosis, no communication, and if it fails again the CEO finds out first.
Next they will askThis happens monthly when the source team changes columns. How do you stop it permanently?
Behavioural · 2How you work with people. Templates below - fill them with your own story.
Q16BehaviouralSoft skills
Interviewer

Tell me about a time a stakeholder disagreed with what your data showed.

What they are testing: Whether you hold your ground on facts while staying collaborative

Strong answer (template)

Template, fill it with your own story. Situation: a regional manager insisted their region's churn was lower than my report showed. Task: I needed to either find my error or convince them, without damaging the relationship. Action: I walked through the measure with them, filtered to their customers, and exported the list behind the number. We found they counted reactivated customers as retained while the agreed definition did not. I showed the documented definition and offered a second measure for reactivation. Result: they accepted the number, the reactivation view became a standard page, and they started bringing questions to me early. Keep it to about two minutes and quantify the result.

Weak answerA story where the candidate simply changed the number to keep the stakeholder happy, or one where they won by being blunt.
Next they will askWhat would you have done if your measure had been wrong?
Q17BehaviouralSoft skills
Interviewer

Describe a report or model you built that you would do differently today.

What they are testing: Self-awareness and growth in modelling and design judgement

Strong answer (template)

Template, fill it with your own story. Situation: early on I built a sales report on one wide flat table imported from a SQL view. Task: it had to support new metrics and a budget comparison. Action: as requirements grew I added calculated columns and bidirectional relationships to make budgets work, and refresh and page load slowed badly. I eventually rebuilt it as a star schema with a shared date and product dimension and moved transforms upstream. Result: model size dropped noticeably, measures got simpler, and adding new metrics took hours instead of days. Today I would model properly from day one. Pick a real story and give real before and after figures.

Weak answer"I would not change anything." Interviewers read it as either no experience or no reflection.
Next they will askHow do you convince a manager to fund a rebuild when the current report technically works?

Get the theory airtight before the interview

Interviewers build follow-ups on the fundamentals. The PL-300 app has exam-style PL-300 questions with an explanation for every option, so the basics stay automatic when the questions get harder.

App StoreGoogle PlayFree PL-300 practice test

The practical task

Expect some version of this. Companies vary the details, not the shape.

PRACTICAL TASKBuild a sales model and one-page report from messy exportsTake-home, 3 h, or live build, 90 min

You get three CSV exports: sales lines with mixed date formats, a product list with duplicate SKUs, and a monthly budget by category. Build a Power BI model and one report page showing revenue, margin percent, year-over-year growth and actual versus budget, filterable by region and category. Include one RLS role so a regional manager sees only their region. Send the PBIX plus a short note explaining your modelling decisions and anything you could not resolve.

  1. Profile each file in Power Query: fix types and locale, trim text, dedupe SKUs and record what you removed and why.
  2. Build a star schema: sales fact, product, region and a proper marked date table; relate budget at month and category grain.
  3. Write base measures first, then margin percent with DIVIDE, YoY with SAMEPERIODLASTYEAR, and budget variance.
  4. Check totals and edge cases in a matrix before building visuals; verify one number by hand against the raw CSV.
  5. Lay out KPIs, a trend and one breakdown; add a dynamic RLS role and test it with View as role.
  6. Write a half-page note: assumptions, data issues found, and what you would do next with more time.

Hire vs no-hire:A hire models the budget at its own grain against shared dimensions, gets totals right and documents assumptions. A no-hire forces everything into one flat table and ships a busy page with wrong subtotals.

Questions to ask them

"Do you have any questions for us?" is still being scored. Four that land well for a Power BI Developer role:

Is Power BI here mostly Import models, or are you moving onto Fabric and Direct Lake?Shows you know the platform is shifting and you want to understand the architecture you will inherit.
Who owns metric definitions when finance and sales disagree?Signals you have lived through definition fights and care about one version of the truth.
How many semantic models are in production, and how much reuse is there across reports?Tells you whether you will build on shared models or clean up dozens of duplicates.
What would a great first 90 days look like in this role?Gets the real expectations on the table and shows you are thinking about delivering, not just landing the job.

Mistakes that sink candidates

MistakeJumping straight to visuals when asked how you would build a reportInsteadStart with the questions it must answer and the data model; visuals come last and should be the easy part.
MistakeUsing bidirectional filters everywhere to make slicers workInsteadExplain single-direction defaults and name the specific case where you would scope CROSSFILTER in one measure.
MistakeReciting DAX function names without explaining evaluation contextInsteadExplain what filter context exists when the measure runs; one clear example beats ten function names.
MistakeSaying RLS applies to everyone in the workspaceInsteadKnow that RLS restricts viewers only; workspace Admins, Members and Contributors bypass it.
MistakeNo numbers in your project storiesInsteadQuantify: rows, users, refresh time before and after, hours saved. Specifics make experience believable.

What the PL-300 does and does not prove

What the PL-300 gets you

PL-300 is the certification that appears most often in Power BI job postings, and consultancies and Microsoft partners like to list certified staff in bids. It reliably gets you past keyword filters and gives a recruiter confidence you have touched every part of the product. For career switchers with little on-the-job Power BI history, it is a credible signal that you put in the work.

What it does not prove

The exam is multiple choice and case studies, so it cannot show that you can design a model from scratch, debug a slow page, reconcile numbers with finance, or push back on a messy requirement. Interviewers test those hard, usually with a live build or take-home. A portfolio report with a clean model and a short write-up fills that gap better than a second certificate.

Pay:Range brackets Salary.com's 2026 junior Power BI developer median (about $91K) and Glassdoor's US Power BI developer estimate (about $133K), with ZipRecruiter's June 2026 average near $112K. BLS tracks no Power BI title. Fabric and data-engineering skills, consulting roles and high-cost cities push pay up.

Still sitting the PL-300?

Pass it first time and walk into the interview with the credential on your CV. The PL-300 app has exam-style PL-300 questions with an explanation for every option.

App StoreGoogle PlayFree PL-300 practice test

FAQ

Is PL-300 enough to get a Power BI job with no experience?

On its own, rarely. It gets your CV past filters, but hiring managers want proof you can build. Pair the cert with two or three portfolio reports on public data, each with a clean star schema, sensible measures and a short note on your decisions. Internal moves work well too: volunteering to automate a reporting spreadsheet in your current job is often the fastest route to a first Power BI title.

How hard are DAX questions in Power BI interviews?

Expect to explain filter context versus row context, what CALCULATE does with its filter arguments, and to write two or three measures live: a ratio with DIVIDE, a year-over-year comparison, and maybe a ranking or percent-of-total. Senior roles add performance questions and calculation groups. Interviewers care more about you reasoning out loud about context than about remembering every function signature.

Do Power BI interviews include a take-home test?

Many do. Common formats are a 60 to 90 minute live build with a provided dataset or a take-home of two to four hours. You will usually be asked to clean data, build a model, write measures and produce a page or two. Graders look at your model and the correctness of totals before they look at colours, so spend your time accordingly.

Should I learn Microsoft Fabric before a Power BI interview in 2026?

Learn enough to discuss it sensibly: OneLake, lakehouse versus warehouse, Dataflow Gen2, and Direct Lake storage mode. Many employers are migrating or evaluating, and being able to say where transforms should live and when Direct Lake beats Import marks you as current. You do not need to be a Spark engineer for an analyst role, but you should not be surprised by the vocabulary.

What portfolio projects impress Power BI hiring managers?

Projects that look like real work: messy source data, a documented model, measures that reconcile, and a report designed for a named audience. A short README explaining your decisions, a screenshot of the model view, and a note on performance choices tell more than a beautiful dashboard. One solid project beats five template-driven ones built from the same tutorial dataset.

Sources

Figures on this page come from Microsoft and the other primary sources below:

Checked November 4, 2026. Fees, outlines and eligibility rules change — confirm with Microsoft before you book.