<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Amailuk Joseph</title>
    <description>The latest articles on DEV Community by Amailuk Joseph (@amailuk).</description>
    <link>https://dev.to/amailuk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3839440%2F4a7f9ffa-9e0f-4717-a806-69bcef29fb14.png</url>
      <title>DEV Community: Amailuk Joseph</title>
      <link>https://dev.to/amailuk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amailuk"/>
    <language>en</language>
    <item>
      <title>The GitHub Portfolio That Gets You Hired (And Not For The Reasons You Think)</title>
      <dc:creator>Amailuk Joseph</dc:creator>
      <pubDate>Sun, 26 Apr 2026 02:23:46 +0000</pubDate>
      <link>https://dev.to/amailuk/the-github-portfolio-that-gets-you-hired-and-not-for-the-reasons-you-think-4776</link>
      <guid>https://dev.to/amailuk/the-github-portfolio-that-gets-you-hired-and-not-for-the-reasons-you-think-4776</guid>
      <description>&lt;h2&gt;
  
  
  1. The Brutal Truth About Data Portfolios
&lt;/h2&gt;

&lt;p&gt;Most GitHub data project portfolios fail. Not because the work is bad. Not because the SQL is wrong or the visualizations are ugly. &lt;/p&gt;

&lt;p&gt;They fail because they're irrelevant — and hiring managers can smell irrelevance in about four seconds.&lt;/p&gt;

&lt;p&gt;Here's what's sitting in your GitHub right now. Be honest.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;SQL Project 1.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;SQL Project 2.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;SQL Project 3.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Does this look familiar?&lt;/p&gt;

&lt;p&gt;That portfolio isn't going to get a second glance. It's getting a quiet tab-close and a mental note: &lt;em&gt;newbie&lt;/em&gt;. Because that's exactly what it screams — someone who learned the tools but hasn't figured out why the tools exist.&lt;/p&gt;

&lt;p&gt;Hiring managers aren't running a code school. They're running a business. A department with targets, pressure from above, decisions that need to happen fast and land right. &lt;/p&gt;

&lt;p&gt;They're not sitting there thinking, &lt;em&gt;"I wonder if this person knows how to write a LEFT JOIN."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;They're thinking: &lt;em&gt;Can this person really think? Can they find the thing that matters in a pile of noise? Will they make my team smarter — or just busier?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Your portfolio is supposed to answer those questions. &lt;/p&gt;

&lt;p&gt;Right now, for most people, it doesn't even try.&lt;/p&gt;

&lt;p&gt;That's what we're here to fix today.&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Stop Building Projects. Start Solving Problems.
&lt;/h2&gt;

&lt;p&gt;Here's a mental model most people carry into their first — or fifth — portfolio. It goes something like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"If I just get good enough at SQL, the dashboards will speak for themselves."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;They don't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You polish the queries. You make the charts clean. You pick the right color palette. And then you upload it to GitHub with a README that says:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"this project analyzes sales data using SQL and Python"&lt;/em&gt; &lt;br&gt;
— and wonder why nobody's calling back.&lt;/p&gt;

&lt;p&gt;Here's the painful truth. That project answered a question nobody in hiring for.&lt;/p&gt;

&lt;p&gt;That is like being in an exam and find a question too difficult to answer. Your solution is to refine the question and then give it an answer. &lt;/p&gt;

&lt;p&gt;Even if you give it the right response, that gets you nowhere.&lt;/p&gt;

&lt;p&gt;The old thinking sounds like: &lt;em&gt;"Let me show I can use the tools."&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;It is practiced in tutorials, rewarded in bootcamps, BUT... completely invisible in hiring rooms. Because tools are a given. Every other candidate has them too. They are just a means to an end&lt;/p&gt;

&lt;p&gt;The shift is this — and it changes everything once it clicks. &lt;/p&gt;

&lt;p&gt;Guaranteed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your portfolio isn't a collection of work. &lt;/li&gt;
&lt;li&gt;It is a simulation of how you think on the job.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A hiring manager looking at your GitHub isn't asking &lt;em&gt;what did you build today?&lt;/em&gt; They're asking &lt;em&gt;how does this person move from raw data to a decision that matter?&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;They want to see the thinking process — the business instinct — not just the mere output.&lt;/p&gt;

&lt;p&gt;New thinking IS different. It asks: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;What problem is the business actually bleeding from?&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It asks: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;What decision is stuck because nobody looked at the data right?&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It asks: &lt;/p&gt;

&lt;p&gt;&lt;em&gt;What changes with the existence of this analysis that wouldn't change before it comes to bear?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is the reframe. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From practitioner to partner. &lt;/li&gt;
&lt;li&gt;From someone who runs queries to someone who shapes strategy. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your skillset isn't just a technical asset — it is a competitive lever. And your portfolio is where you prove you know the difference.&lt;/p&gt;
&lt;h2&gt;
  
  
  3. All Project Portfolio Fall In Two Categories
&lt;/h2&gt;

&lt;p&gt;The fact is, not all Project Portfolio are equal. They are not even playing the same field. Most people only know of one kind.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The first kind: Learning Projects.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are the ones built in or as a result of tutorials. The kind that follow a YouTube walkthrough or a Udacity or Udemy course. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sales data are clean. &lt;/li&gt;
&lt;li&gt;A dashboard recreated. &lt;/li&gt;
&lt;li&gt;A SQL query optimized for practice. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't get me wrong. They are a vital part of the ecosystem — nobody skips this stage. The point here is that you are invisible to hiring managers. &lt;/p&gt;

&lt;p&gt;IF that's the path you follow.&lt;/p&gt;

&lt;p&gt;And here is why. Companies are generally not looking for someone to train. They have a business to run, a team already stretched thin, targets that wont wait for onboarding to get attended to. &lt;/p&gt;

&lt;p&gt;Bringing in someone who requires hand-holding is not a hire — it is a constraint. A drag on the collective. &lt;/p&gt;

&lt;p&gt;They get passed, and move to the next profile. Learning projects build skills. Full stop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The second kind: Showing Projects.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are different a different breed in every way that matters. &lt;/p&gt;

&lt;p&gt;They do not start with a tool. They start with a problem — a real one, that business can relate with. The kind businesses actually loses sleep over. &lt;/p&gt;

&lt;p&gt;They follow the thinking all the way through: &lt;em&gt;here is what the data said, this is what it meant, and now the decision it unlocked.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Projects that show, are business-focused. &lt;/li&gt;
&lt;li&gt;Insight-driven. &lt;/li&gt;
&lt;li&gt;They add value, bringing something to the room. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They make a hiring manager lean forward and think — &lt;em&gt;this person would make my team sharper!&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;That is the difference between someone who analyzes data and one who changes what a business does next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning projects build skills. Showing projects get you hired.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most portfolios are full of the first kind. You know, the ones that scream I am learning! &lt;/p&gt;

&lt;p&gt;No offence to those learning. &lt;br&gt;
BUT... the ones that stand out, are built almost entirely from the second. &lt;/p&gt;

&lt;p&gt;The kind that SHOW.&lt;/p&gt;
&lt;h2&gt;
  
  
  4. Why Most GitHub Portfolios Fail (And You Will Wince Reading This)
&lt;/h2&gt;

&lt;p&gt;This is going to sting a little. Stay with it.&lt;/p&gt;

&lt;p&gt;Open your GitHub right now. Look at your repository names. &lt;/p&gt;

&lt;p&gt;If any of the following are sitting there, you already know something is wrong — even if you could not name it until now.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"SQL Project."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Data Analysis."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Python Practice."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Excel Dashboard."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A hiring manager opens your profile for the first time. It takes seconds. Maybe six if something catches the eye. &lt;/p&gt;

&lt;p&gt;Those titles even though catchy, mean nothing. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All they communicate is: this person learned a tool. &lt;/li&gt;
&lt;li&gt;What they miss to tell is: &lt;em&gt;this person can help us.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the first and major failure. But it is not the only one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The README That Reads Like a Technical Manual&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You spent three paragraphs explaining your tech stack. Which libraries you used. How you cleaned the null values. How the schema is structured.&lt;/p&gt;

&lt;p&gt;Sorry. Nobody asked.&lt;/p&gt;

&lt;p&gt;A hiring manager is not debugging your code. They are evaluating your mind, in the context of skill and strategy. &lt;/p&gt;

&lt;p&gt;A README that opens with &lt;em&gt;"This project uses Python, Pandas, Matplotlib and SQLite to analyze..."&lt;/em&gt; has already lost the room. &lt;/p&gt;

&lt;p&gt;The very first line told them what you used not what you found, not what changed —— or could change as a result of your input. Not what the business should or could do differently because this analysis exists.&lt;/p&gt;

&lt;p&gt;See the difference?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Outputs Without Insight&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A real business world &lt;em&gt;buzzkill&lt;/em&gt; for any hiring manager worth their keep.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Here is a chart of monthly revenue. &lt;/li&gt;
&lt;li&gt;Here is a customer segmentation by region. &lt;/li&gt;
&lt;li&gt;Here is a product return rates over time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then — nothing. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No so what...&lt;/li&gt;
&lt;li&gt;No this matters because... &lt;/li&gt;
&lt;li&gt;No here is what the business is missing and here is what the data revealed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Showing someone a chart is not analysis. It sums up as decoration. The insight is the work. The chart is just for show, how you present it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Telling the Obvious&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Sales increased in December."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Yes. Everyone who has ever sold anything knows sales increase in December. It is almost a given&lt;/p&gt;

&lt;p&gt;That is not an insight — that is a calendar observation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Stating the obvious does not only fail to impress;&lt;br&gt;&lt;br&gt;
it actively signals that the person does not yet&lt;br&gt;&lt;br&gt;
know the difference between data and meaning.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hiring managers notice this immediately. And they move on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scattered Tools, No Depth&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQL. Python. Tableau. Power BI. R. Excel. Spark. Airflow. Name it.&lt;/p&gt;

&lt;p&gt;One project each.&lt;/p&gt;

&lt;p&gt;This is not a demonstration of range. It is a demonstration of dabbling. It tells a hiring manager: this person has touched everything and mastered nothing. &lt;/p&gt;

&lt;p&gt;Depth is what signals readiness. One tool used brilliantly across a real problem is way worth more than ten tools used shallowly across ten forgettable ones!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now See the Difference&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here is what failure looks like — and what it looks like when the reframe happens:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;❌ Weak Framing&lt;/th&gt;
&lt;th&gt;✅ Strong Framing&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"SQL Project — Customer Data"&lt;/td&gt;
&lt;td&gt;"Why 30% of Customers Never Return: A Retention Analysis"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Excel Sales Dashboard"&lt;/td&gt;
&lt;td&gt;"Uncovering the Revenue Leak: Where the Sales Team Was Losing Deals"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Python Data Cleaning Exercise"&lt;/td&gt;
&lt;td&gt;"Fixing the Data That Was Costing the Finance Team 6 Hours Every Week"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Tableau Visualization — HR Data"&lt;/td&gt;
&lt;td&gt;"The Attrition Pattern Nobody Saw Coming: An HR Analytics Story"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"E-commerce Analysis"&lt;/td&gt;
&lt;td&gt;"Which Products Look Profitable But Are Quietly Killing the Margin"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Same work. &lt;/p&gt;

&lt;p&gt;Completely different signal.&lt;/p&gt;

&lt;p&gt;One says: I practiced.&lt;/p&gt;

&lt;p&gt;The other says: I think like someone who understands what is at stake.&lt;/p&gt;
&lt;h2&gt;
  
  
  5. The Blueprint: What a Hire-Worthy Project Actually Looks Like
&lt;/h2&gt;
&lt;h3&gt;
  
  
  5.1 Start With a Real Business Scenario
&lt;/h3&gt;

&lt;p&gt;Here is where everything changes.&lt;/p&gt;

&lt;p&gt;Not with a dataset. Not with a tool. Not with a technique you want to practice or have practiced. &lt;/p&gt;

&lt;p&gt;It starts with a scenario — a real, breathing, pressure-filled business situation that someone, somewhere, is actually losing sleep over.&lt;/p&gt;

&lt;p&gt;This is the move most people skip or are just plain ignorant about. &lt;/p&gt;

&lt;p&gt;And it is the move that separates portfolios that get read from the ones that get closed.&lt;/p&gt;

&lt;p&gt;You are not doing an exercise. You are stepping inside a company. That in the least, should be the mindset you have setting up the portfolios.&lt;/p&gt;

&lt;p&gt;Does it sound like this:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You are a data analyst at a subscription-based SaaS company. Churn has ticked up three months in a row. The Head of Product thinks it is a UX problem. The VP of Sales thinks it is a pricing problem. Nobody has looked at the data hard enough to know who is right (or not), and the next board meeting is in six weeks.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Feel the difference?&lt;/p&gt;

&lt;p&gt;That is not a project description. That is a situation with real and very high stakes. There is tension in it. There are people disagreeing. A deadline is looming and a consequence. There is something the business needs to know — and does not, at least not yet.&lt;/p&gt;

&lt;p&gt;Now your analysis has a reason to exist. And bloom!&lt;/p&gt;

&lt;p&gt;This is what "imagine yourself to be inside a company" actually means, or even feels like. Not fabricating data or inventing results. &lt;/p&gt;

&lt;p&gt;It means grounding your work in a scenario that mirrors how real decisions get made — under pressure, with incomplete information, and with people waiting on the answer.&lt;/p&gt;

&lt;p&gt;Your output, actually, virtually everything, mpore so your outlook changes automatically by virtue of the setting you have imagined into-place!&lt;/p&gt;

&lt;p&gt;The dataset can be public. The scenario can be constructed as the foundation to your analysis. Yo do not need to re-write the play out, the script is for your mental processes. &lt;/p&gt;

&lt;p&gt;What cannot be faked is the thinking — the ability to look at a business situation and know which questions actually matter.&lt;/p&gt;

&lt;p&gt;When a hiring manager reads your project and feels the scenario, they stop evaluating your technical skills. They start imagining you on their team.&lt;/p&gt;

&lt;p&gt;And that, my friend, is exactly where you want them.😁🫡&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fno8h3whpw9nau86lght6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fno8h3whpw9nau86lght6.gif" alt="a white cat dancing in excitement over its winning mojo" width="282" height="498"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  5.2 Define Real Questions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Before a single line of code. &lt;/li&gt;
&lt;li&gt;Before the dataset is even open. &lt;/li&gt;
&lt;li&gt;Before the tool is chosen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The question comes first.&lt;/p&gt;

&lt;p&gt;This is the discipline that separates analysts who get hired from analysts who get overlooked. Because anyone can run a query. Anyone can build a pivot table. &lt;/p&gt;

&lt;p&gt;The person who walks in knowing &lt;em&gt;which question(s) actually matters&lt;/em&gt; — that person is rare. And hiring managers feel that rarity immediately.&lt;/p&gt;

&lt;p&gt;Real questions do not sound like: &lt;br&gt;
      &amp;gt; &lt;em&gt;"What does the data show?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is not a question. &lt;br&gt;
It is but a shrug dressed up as curiosity.&lt;/p&gt;

&lt;p&gt;Real questions have teeth. They come from a business that is bleeding somewhere, growing somewhere, confused about something that costs money &lt;strong&gt;&lt;em&gt;every single day the answer stays hidden&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They sound like this:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;gt; What is actually driving our revenue 
  &amp;gt; and is it the thing we think it is?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Where exactly are we losing customers — and at what point in the journey does it happen?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Which customer segment looks healthy on the surface but is quietly eroding underneath?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Are we discounting in ways that kill margin without winning loyalty?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What does our best customer look like — and are we acquiring more of them or fewer?&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;These questions do not come from a dataset. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They come from understanding that behind every dataset is a business with a problem it needs solved... a team that needs direction, and a decision that cannot wait forever.&lt;/p&gt;

&lt;p&gt;The question shapes everything that follows. &lt;/p&gt;

&lt;p&gt;Determines which data matters and which is noise. It determines what the analysis needs to prove or disprove. &lt;/p&gt;

&lt;p&gt;Whether the final output is just a chart — or a recommendation that changes what the business does come Monday morning.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tools do not drive analysis. &lt;/p&gt;

&lt;p&gt;Questions do.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Choose the wrong question and even the most perfected SQL syntax ends up with nothing useful. &lt;/p&gt;

&lt;p&gt;Tag the right question, well then a simple aggregation can unlock something the business has been missing for months.&lt;/p&gt;

&lt;p&gt;Start there. &lt;/p&gt;

&lt;p&gt;Always start from there.&lt;/p&gt;
&lt;h3&gt;
  
  
  5.3 Choose Business Metrics That Actually Matter
&lt;/h3&gt;

&lt;p&gt;Numbers are everywhere in a business. Most of them are noise.&lt;/p&gt;

&lt;p&gt;The analyst who pulls every available metric and presents a wall of numbers has not done analysis — they have done a data dump. &lt;/p&gt;

&lt;p&gt;It looks thorough. &lt;br&gt;
And actually exhausting to read aside from impossible to act on. &lt;/p&gt;

&lt;p&gt;A hiring manager sees that and thinks: &lt;/p&gt;

&lt;p&gt;This person does not have a clue as to what really matters. And you are done for...&lt;/p&gt;

&lt;p&gt;The analyst who walks in with three metrics AND, can defend every single one — that person commands the room.&lt;/p&gt;

&lt;p&gt;So which metrics do you choose?&lt;/p&gt;

&lt;p&gt;Choose the ones tied to decisions. &lt;br&gt;
The ones where a shift in the number changes what the business does next!&lt;/p&gt;

&lt;p&gt;Not vanity metrics that look good in a presentation. Not activity metrics that measure &lt;em&gt;busyness&lt;/em&gt;&lt;br&gt;
(&lt;strong&gt;pun intended&lt;/strong&gt;). &lt;/p&gt;

&lt;p&gt;Metrics are not just measurements. They are a signal. &lt;br&gt;
The one(s) you choose _tell a hiring manager everything about you. &lt;/p&gt;

&lt;p&gt;Your understand of how a business actually operates_ — or whether you are still thinking like someone who just completed a course.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose revenue and you are saying: I understand what keeps the lights on.&lt;/li&gt;
&lt;li&gt;Choose customer segmentation and you are saying: I know that not all growth is equal.&lt;/li&gt;
&lt;li&gt;Choose retention and you are saying: I can see the leak before the bucket empties.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That awareness — the instinct to reach for the right number, and not just any number — is exactly what separates a data practitioner from a business thinker.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;gt; And business thinkers are the ones that get hired.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;You are looking to analyse a business, what did you expect? How can you expect to analyse the thing you have not the slightest hint of?&lt;/p&gt;

&lt;p&gt;And even before you ask, YES. If need be get a business certificate to better understand that world and its ecosystem.&lt;/p&gt;

&lt;p&gt;So, in a nutshell, pick metrics that measure outcomes — the health, the growth, the risk underneath the surface.&lt;/p&gt;

&lt;p&gt;In most business contexts, these three categories carry major weight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Revenue.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not just total revenue. &lt;/li&gt;
&lt;li&gt;Revenue broken apart.&lt;/li&gt;
&lt;li&gt;Where is it coming from — which products, which segments, which channels? &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where is it growing and where is it quietly shrinking? &lt;/p&gt;

&lt;p&gt;Is the growth sustainable or it is propped up by a single customer, a single campaign, a single quarter, single purchase, or single quarter that may not repeat? &lt;/p&gt;

&lt;p&gt;Revenue is never just a number. It is a story with layers — and the analyst who can unravel those layers is indispensable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer Segments.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not all customers are equal. &lt;br&gt;
Some cost more to acquire than they will ever return. Others may be small but renew every year without friction and refer three more. &lt;/p&gt;

&lt;p&gt;Segmentation is the work of knowing the difference in breaking the customer base into different groups that behave differently but share charateristics.&lt;/p&gt;

&lt;p&gt;And appreciate the different things, and needs they respond to in making decisions. &lt;/p&gt;

&lt;p&gt;When you can tell a business which customers to protect, which to develop, and &lt;em&gt;which are quietly costing more than they are worth&lt;/em&gt; — that is insight that drives strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retention.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where most businesses bleed without realizing it. Or knowing why. Acquisition gets the attention, the budget, the celebration. &lt;/p&gt;

&lt;p&gt;Retention settles for the spreadsheet no one opens. But the math is brutal and simple — keeping a customer is almost always cheaper than finding a new one. &lt;/p&gt;

&lt;p&gt;Churn, cohort survival, time-to-second-purchase, engagement drop-off — these metrics tell the story of whether the business is building something durable or filling a leaky bucket and labelling it growth.&lt;/p&gt;

&lt;p&gt;Choose metrics that connect to the question(s) you defined in &lt;strong&gt;section 5.2&lt;/strong&gt;. Choose from what the business can actually act on. &lt;/p&gt;

&lt;p&gt;And for every metric you include, be ready to answer one question a hiring manager will always be thinking but may never say out loud:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So what do we do with this?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Simply.&lt;br&gt;
If the metric cannot answer that — drop it.&lt;/p&gt;
&lt;h3&gt;
  
  
  5.4 Use SQL to Investigate
&lt;/h3&gt;

&lt;p&gt;SQL is not the point.&lt;/p&gt;

&lt;p&gt;That feels uncomfortable to say in a data article. But it needs saying — because too many portfolios treat SQL like the destination when it is actually the vehicle. &lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;gt; The means, not the benefit. The processing tool,
  &amp;gt; not the proof of value!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;When you write a query, you are not demonstrating technical skill. You are thinking out loud. You are asking the data a question and following where it leads. &lt;/p&gt;

&lt;p&gt;Aggregating to see what the totals reveal. Segmenting to see where performance diverges. &lt;/p&gt;

&lt;p&gt;Filtering to isolate the anomaly that the summary number was hiding.&lt;/p&gt;

&lt;p&gt;SQL is how your thinking processing moves through data.&lt;/p&gt;

&lt;p&gt;A hiring manager does not want to see elegant syntax. They' need to appreciate that your queries have a purpose — that each one is chasing an answer to something that matters. &lt;/p&gt;

&lt;p&gt;Investigate with SQL. Let it do the heavy lifting underneath. But never mistake the tool for the work.&lt;/p&gt;

&lt;p&gt;The work is the thinking. SQL just executes it.&lt;/p&gt;
&lt;h3&gt;
  
  
  5.5 Use Excel to Communicate
&lt;/h3&gt;

&lt;p&gt;Once SQL has done the investigating, enter Excel — and its job is completely different.&lt;/p&gt;

&lt;p&gt;In this context, Excel is not for analysis. It is for communication. As the layer where raw findings become something a Head of Sales, a VP of Operations, or a CFO can sit with over coffee and immediately understand. &lt;/p&gt;

&lt;p&gt;Pivot tables that reorganize complexity into clarity. Charts that make a trend undeniable at a glance. A simple dashboard that puts the most important numbers in one place so nobody has to dig.&lt;/p&gt;

&lt;p&gt;Simplicity is the skill here. Not sophistication.&lt;/p&gt;

&lt;p&gt;The temptation is to make Excel impressive — dense formulas, layered tabs, conditional formatting stacked three deep. Resist it. &lt;/p&gt;

&lt;p&gt;The person reading your output is busy, under pressure, and not interested in your spreadsheet architecture. They want to understand something faster because you built this.&lt;/p&gt;

&lt;p&gt;Make it easy to read. Actually, let me put it differently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Make it impossible to misread.&lt;/em&gt;&lt;/strong&gt; That is the storytelling layer — and storytelling, done well, is what moves a business from data to decision.&lt;/p&gt;
&lt;h3&gt;
  
  
  5.6 Extract Insights — This Is the Differentiator
&lt;/h3&gt;

&lt;p&gt;Everything up to this point has been preparation. This is the work.&lt;/p&gt;

&lt;p&gt;Data is not insight. &lt;/p&gt;

&lt;p&gt;This distinction sounds simple and gets ignored constantly. * A chart is not an insight. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A trend line is not an insight. &lt;/li&gt;
&lt;li&gt;A table of numbers, however clean and beautifully formatted, is NOT insight.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Insight is interpretation plus implication. It is not what happened — &lt;/p&gt;

&lt;p&gt;&lt;em&gt;it is why it happened and what it means for what happens next&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Feel the distance between these two following:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Sales dropped in Q3."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Everyone in the room can see that. The chart already told them. Stating it adds nothing — it just confirms you can read a graph.&lt;/p&gt;

&lt;p&gt;Now this:&lt;/p&gt;

&lt;p&gt;*"Sales dropped in Q3 due to a significant decline in enterprise client renewals — a segment that historically accounts for 60% of annual contract value. &lt;/p&gt;

&lt;p&gt;Early indicators suggest the drop correlates with a competitor pricing shift in July and a lag in our own renewal outreach process."*&lt;/p&gt;

&lt;p&gt;That is a different conversation entirely. You have named the problem. You have traced the reasoning. You have pointed toward the cause — and now the business knows where to look, what to fix, and which decisions cannot wait.&lt;/p&gt;

&lt;p&gt;And then — the recommendations section. This is where most analysts stop short. &lt;/p&gt;

&lt;p&gt;They surface the finding and hand it over. The analysts who stand out take one more step: they suggest a possible path forward. &lt;/p&gt;

&lt;p&gt;Not to overstep, not to pretend they have all the answers — but to demonstrate that their mind does not stop at observation. It moves toward action.&lt;/p&gt;

&lt;p&gt;That is the differentiator. &lt;br&gt;
Not the SQL. &lt;br&gt;
Not the dashboard. &lt;/p&gt;

&lt;p&gt;The moment where you show a hiring manager that you do not just find what is wrong — you think about what to do about it.&lt;/p&gt;
&lt;h3&gt;
  
  
  5.7 Choose Business Metrics That Actually Matter
&lt;/h3&gt;

&lt;p&gt;Numbers are everywhere in a business. Most of them are noise.&lt;/p&gt;

&lt;p&gt;Pulling every available metric and presenting a wall of numbers is not analysis — it is data dumping. It looks thorough. It is actually exhausting to read and impossible to act on.&lt;/p&gt;

&lt;p&gt;The analyst who walks in with three metrics and can defend every single one — that person commands the room.&lt;/p&gt;

&lt;p&gt;Metrics are not just measurements. They are a signal. The ones you choose tell a hiring manager everything about whether you understand how a business actually operates — or whether you are still thinking like someone who just finished a course.&lt;/p&gt;

&lt;p&gt;Choose revenue and you are saying: I understand what keeps the lights on.&lt;/p&gt;

&lt;p&gt;Choose customer segmentation and you are saying: I know that not all growth is equal.&lt;/p&gt;

&lt;p&gt;Choose retention and you are saying: I can see the leak before the bucket empties.&lt;/p&gt;

&lt;p&gt;That awareness — the instinct to reach for the right number, not just any number — is exactly what separates a data practitioner from a business thinker.&lt;/p&gt;

&lt;p&gt;And business thinkers are the ones who get hired.&lt;/p&gt;
&lt;h3&gt;
  
  
  5.8 Make Recommendations
&lt;/h3&gt;

&lt;p&gt;This is where most analysts stop. Right at the edge of the most valuable thing they could offer.&lt;/p&gt;

&lt;p&gt;They surface the insight. They hand it over. And then they wait.&lt;/p&gt;

&lt;p&gt;The analysts who get hired do not wait. They take one more step — and that step is the one that signals readiness more than anything else in the portfolio.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Recommendations are not about being right&lt;/em&gt;. They are about being useful.&lt;/p&gt;

&lt;p&gt;Nobody expects a candidate to walk in with a perfect three-year strategy built from a public dataset and a weekend of analysis. &lt;/p&gt;

&lt;p&gt;That is not the bar. The bar is simpler and more human than that: &lt;em&gt;can this person take what the data is saying and point us in a direction we can actually move toward?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is it. Point them somewhere real.&lt;/p&gt;

&lt;p&gt;And when you do, make it approachable. &lt;br&gt;
A recommendation that sounds like &lt;em&gt;"overhaul the entire enterprise sales motion"&lt;/em&gt; is not actionable — it is overwhelming. &lt;/p&gt;

&lt;p&gt;It lands in a room and nobody knows who owns it or where it starts. &lt;/p&gt;

&lt;p&gt;Break it down. Make it bite-sized. &lt;/p&gt;

&lt;p&gt;Give the business something they can pick up Monday morning and begin.&lt;/p&gt;

&lt;p&gt;It sounds like this:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Pull a full list of enterprise clients whose contracts are due for renewal in the next 90 days. Cross-reference with engagement data — logins, feature usage, support tickets. Prioritize outreach to the ones showing low engagement. That is where the next wave of churn is most likely sitting."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Specific. Scoped. Scalable. &lt;/p&gt;

&lt;p&gt;Something a team can act on without needing a consultant to translate it.&lt;/p&gt;

&lt;p&gt;Or even simpler — offer a direction, not a destination:&lt;/p&gt;

&lt;p&gt;*"The data points toward a retention problem, not an acquisition problem. &lt;/p&gt;

&lt;p&gt;Before increasing the marketing budget, it may be worth understanding why existing customers are leaving first."*&lt;/p&gt;

&lt;p&gt;One sentence. But it reframes the entire conversation. It tells the business where to look before they spend another dollar in the wrong direction.&lt;/p&gt;

&lt;p&gt;This is useful. It is helpful. &lt;/p&gt;

&lt;p&gt;That is the thing that makes a hiring manager look up from your portfolio and think — &lt;em&gt;this person would make us sharper.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You are not expected to have all the answers. You are expected to care enough to offer the ones you can see.&lt;/p&gt;

&lt;p&gt;That is more than enough to stand out.&lt;/p&gt;
&lt;h2&gt;
  
  
  6. The README That Gets You Noticed
&lt;/h2&gt;

&lt;p&gt;Most people treat the README like an afterthought. The project is done, the code is uploaded, and then — almost as a formality — they type out a few lines explaining what tools they used and what steps they followed.&lt;/p&gt;

&lt;p&gt;And just like that, the best part of the work becomes invisible.&lt;/p&gt;

&lt;p&gt;The README is not documentation. It is your [sales] pitch.&lt;/p&gt;

&lt;p&gt;It is the first thing a hiring manager reads. In many cases, it is the &lt;em&gt;only&lt;/em&gt; thing they read. It is your one chance to pull someone into your thinking before they decide whether your project is worth their next five minutes — or whether they close the tab and move on.&lt;/p&gt;

&lt;p&gt;Most people waste it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Most People Do&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The typical README looks something like a paragraph about the dataset. &lt;/p&gt;

&lt;p&gt;A list of steps: data cleaning, exploratory analysis, visualization. &lt;/p&gt;

&lt;p&gt;A code block showing the SQL query. Maybe a screenshot of the dashboard at the end.&lt;/p&gt;

&lt;p&gt;It reads like a lab report. &lt;br&gt;
Thorough, technically honest, and completely devoid of anything a business person would care about.&lt;/p&gt;

&lt;p&gt;Nobody in a hiring room is asking &lt;em&gt;how&lt;/em&gt; you cleaned the nulls. They are asking what you found — and what it means.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What a Noticed README Actually Looks Like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Structure it like a business document, not a technical walkthrough. Every section should earn its place by answering something a decision-maker actually needs to know.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business Context.&lt;/strong&gt; Open here. &lt;br&gt;
Not with the dataset — with the situation. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What company are you inside? &lt;/li&gt;
&lt;li&gt;What problem are they facing? &lt;/li&gt;
&lt;li&gt;What is at stake if nobody looks at this data carefully? &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make the hiring manager feel the scenario before they see a single number. &lt;/p&gt;

&lt;p&gt;Two to three sentences done well here changes everything that follows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Questions.&lt;/strong&gt; What were you trying to find out? &lt;br&gt;
List the questions that drove the analysis — not the technical tasks, the business questions. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where are customers dropping off? &lt;/li&gt;
&lt;li&gt;Which segment is most profitable? &lt;/li&gt;
&lt;li&gt;What is driving the churn? &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Questions signal that the work had direction and purpose, not just an activity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insights.&lt;/strong&gt; This is the heart of the README and it deserves the most care. Do not bury findings in paragraphs. Surface them clearly. &lt;/p&gt;

&lt;p&gt;Lead with the most important thing the data revealed. Explain not just what happened but why it matters. This is where weak portfolios hand over a chart and strong portfolios hand over a conclusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommendations.&lt;/strong&gt; What should the business consider doing next? Keep it practical. Keep it scoped. &lt;/p&gt;

&lt;p&gt;Even one well-reasoned recommendation tells a hiring manager that your mind moves from observation to action — and that is exactly the mind they are trying to hire.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools Used.&lt;/strong&gt; Yes, list them — but save them for last. Tools are the how, not the what. &lt;/p&gt;

&lt;p&gt;They belong at the bottom, not the headline. Leading with tools signals that you think the tools are the impressive part. &lt;/p&gt;

&lt;p&gt;They are not. &lt;/p&gt;

&lt;p&gt;The thinking is.&lt;/p&gt;

&lt;p&gt;One README structured this way does more for a job search than ten projects documented like instruction manuals.&lt;/p&gt;

&lt;p&gt;Because a hiring manager reading it does not feel like they are reviewing a submission. They feel like they are sitting across from someone who already understands the job.&lt;/p&gt;

&lt;p&gt;That is the pitch. Make it count.&lt;/p&gt;
&lt;h2&gt;
  
  
  7. Why SQL + Excel Is a Power Combo (And Not Basic)
&lt;/h2&gt;

&lt;p&gt;Let us address the voice in your head first.&lt;/p&gt;

&lt;p&gt;The one that says you need Python. &lt;/p&gt;

&lt;p&gt;That SQL and Excel are entry-level. &lt;/p&gt;

&lt;p&gt;That without machine learning models and automated pipelines and a Jupyter notebook full of Pandas code, your portfolio will not be taken seriously.&lt;/p&gt;

&lt;p&gt;That voice is wrong. Practically selling you air. It costs people opportunities every single day and counting.&lt;/p&gt;

&lt;p&gt;Here is what is actually happening inside most companies — not the startups featured in tech blogs, not the FAANG engineering teams, but the businesses that are hiring right now, the ones with real budgets and real problems and real analysts on their teams doing real work.&lt;/p&gt;

&lt;p&gt;They are living in SQL and Excel.&lt;/p&gt;

&lt;p&gt;Not because they are behind. Because those tools work. Because a well-structured SQL query that answers the right business question in four minutes is worth infinitely more than a Python script that answers the wrong one in four seconds. &lt;/p&gt;

&lt;p&gt;A clean Excel dashboard that a CFO can read without a tutorial is more powerful than a beautiful Plotly visualization that requires someone to explain the legend.&lt;/p&gt;

&lt;p&gt;SQL and Excel dominate business analytics. They dominate operations. They dominate finance. They dominate the day-to-day rhythm of how decisions actually get made in companies that are not Google.&lt;/p&gt;

&lt;p&gt;The people who dismiss this are usually the ones still building portfolios nobody is reading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Depth beats tool stacking. Every time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is a particular kind of portfolio that tries to impress through volume. SQL, Python, R, Tableau, Power BI, Spark — one project each, spread thin across every tool the person has touched. &lt;/p&gt;

&lt;p&gt;It looks broad. &lt;br&gt;
Thou it signals nothing.&lt;/p&gt;

&lt;p&gt;Because breadth without depth is just a list of things you have tried.&lt;/p&gt;

&lt;p&gt;A hiring manager looking at SQL and Excel used masterfully — queries that peel back layers of a business problem, pivot tables that make a complex segmentation immediately readable, a dashboard that puts the right metric in front of the right person... &lt;/p&gt;

&lt;p&gt;That hiring manager is not thinking &lt;em&gt;"they should have used Python."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;They are thinking: &lt;em&gt;this person knows what they are doing.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Mastery is the signal. &lt;/p&gt;

&lt;p&gt;Not the tool count.&lt;/p&gt;

&lt;p&gt;SQL gives you access to the data — all of it, structured and queryable, pulled exactly the way the question demands. &lt;/p&gt;

&lt;p&gt;Excel gives you the communication layer — the place where findings become decisions, where numbers become narratives that a non-technical stakeholder can sit with and act on.&lt;/p&gt;

&lt;p&gt;Together, they cover the full distance from raw data to boardroom clarity.&lt;/p&gt;

&lt;p&gt;That is not basic. That is the job.&lt;/p&gt;

&lt;p&gt;Own it completely, demonstrate it deeply, and let the people chasing tool stacks keep wondering why they are not getting callbacks.&lt;/p&gt;
&lt;h2&gt;
  
  
  8. Example Project: Sales Performance &amp;amp; Customer Segmentation Analysis
&lt;/h2&gt;

&lt;p&gt;Everything covered so far — the reframing, the blueprint, the README, the metrics — this is where it becomes concrete. &lt;/p&gt;

&lt;p&gt;Real. &lt;/p&gt;

&lt;p&gt;Something you can hold up and say: &lt;em&gt;this is what it looks like when it all comes together.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Walk through this as if you are the analyst inside the company. Feel the scenario before you touch the data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Scenario&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You are a data analyst at a mid-sized B2B software company. The Head of Sales walks over on a Tuesday afternoon with a question that has been sitting in the back of her mind for two quarters:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"We grew revenue this year — but something feels off. I do not know if we are growing with the right customers."&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;That is your brief. Vague, pressure-filled, and exactly the kind of question that separates analysts who thrive from analysts who freeze.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You go to the data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Business Questions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before opening a single table, you define what you are actually trying to find out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which customer segments are driving the most revenue — and which are quietly underperforming?&lt;/li&gt;
&lt;li&gt;Are high-revenue customers also high-retention customers, or are we winning big contracts and losing them fast?&lt;/li&gt;
&lt;li&gt;Where in the customer base is growth coming from — new acquisition or existing expansion?&lt;/li&gt;
&lt;li&gt;Which segments deserve more investment and which are costing more than they return?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Four questions. Every query you write from this point forward is in service of one of those four.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The SQL Investigation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You start by aggregating revenue by customer segment across the last two fiscal years.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;customer_segment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nb"&gt;YEAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order_date&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;fiscal_year&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;total_customers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;SUM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;revenue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;total_revenue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;revenue&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;avg_revenue_per_customer&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;sales_data&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;order_date&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="s1"&gt;'2022-01-01'&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;customer_segment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;YEAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order_date&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;fiscal_year&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;total_revenue&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The results surface something immediately. Enterprise clients represent 28% of the customer base but generate 61% of total revenue. Small business clients are the largest segment by volume — but average revenue per customer has declined 18% year over year.&lt;/p&gt;

&lt;p&gt;You dig deeper. You look at retention by segment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;customer_segment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="k"&gt;CASE&lt;/span&gt; &lt;span class="k"&gt;WHEN&lt;/span&gt; &lt;span class="n"&gt;fiscal_year&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2022&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt; &lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="k"&gt;END&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;customers_2022&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="k"&gt;CASE&lt;/span&gt; &lt;span class="k"&gt;WHEN&lt;/span&gt; &lt;span class="n"&gt;fiscal_year&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2023&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt; &lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="k"&gt;END&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;customers_2023&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;ROUND&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="k"&gt;CASE&lt;/span&gt; &lt;span class="k"&gt;WHEN&lt;/span&gt; &lt;span class="n"&gt;fiscal_year&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2023&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt; &lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="k"&gt;END&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;
        &lt;span class="k"&gt;NULLIF&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="k"&gt;CASE&lt;/span&gt; &lt;span class="k"&gt;WHEN&lt;/span&gt; &lt;span class="n"&gt;fiscal_year&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2022&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt; &lt;span class="n"&gt;customer_id&lt;/span&gt; &lt;span class="k"&gt;END&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;retention_rate_pct&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;sales_data&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;customer_segment&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enterprise retention: 84%. &lt;br&gt;
Mid-market retention: 71%. &lt;br&gt;
Small business retention: 49%.&lt;/p&gt;

&lt;p&gt;Now the picture is clear. The company is growing — but it is growing in the segment that churns fastest, spends least, and costs the most to support at scale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Excel Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You bring the findings into Excel and build a clean, single-page dashboard. Three sections only.&lt;/p&gt;

&lt;p&gt;A revenue breakdown by segment across both fiscal years — a simple bar chart, side by side, showing the shift in where revenue is coming from.&lt;/p&gt;

&lt;p&gt;A retention rate comparison — three numbers, clearly labeled, color-coded by health. Green for enterprise. Amber for mid-market. Red for small business.&lt;/p&gt;

&lt;p&gt;A customer value matrix — a simple two-by-two. Revenue contribution on one axis, retention rate on the other. Enterprise sits in the top right. Small business sits in the bottom left.&lt;/p&gt;

&lt;p&gt;No extra tabs. No nested formulas. No color gradients that require a legend to decode. &lt;/p&gt;

&lt;p&gt;A CFO with thirty seconds and a coffee can read this and know exactly where to look.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Insight&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here is where you do not state the obvious.&lt;/p&gt;

&lt;p&gt;You do not write: &lt;em&gt;"Enterprise clients generate more revenue than small business clients."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Everyone can see that. The chart already said it.&lt;/p&gt;

&lt;p&gt;You write this:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Revenue growth in 2023 was driven primarily by an increase in small business client acquisition — a segment with a 49% retention rate and declining average contract value.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Meanwhile, enterprise clients, who represent 61% of total revenue and retain at 84%, remained flat in headcount.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The business is investing its growth energy in its least durable segment while its most valuable segment sits underdeveloped."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is the insight. It names what happened, explains why it matters, and points directly at the tension the Head of Sales felt but could not articulate on that Tuesday afternoon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Recommendation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You do not prescribe a company-wide overhaul. You offer something the team can pick up and begin.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Before the next acquisition campaign, consider a targeted expansion play within the existing enterprise base.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Identify enterprise clients below median contract value and assign a dedicated touchpoint — a check-in call, a product review, a renewal conversation — in the next 60 days.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The highest-return growth opportunity is not new logos. It is the 61% of revenue already in the room that has not been asked to grow."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Specific. &lt;br&gt;
Scoped. &lt;br&gt;
Actionable on Monday morning.&lt;/p&gt;

&lt;p&gt;That is one project. One business question, followed all the way through to a recommendation a leadership team can act on.&lt;/p&gt;

&lt;p&gt;No Python. No machine learning. No elaborate tech stack.&lt;/p&gt;

&lt;p&gt;Thinking through with SQL. &lt;br&gt;
Communicating with Excel. &lt;br&gt;
Insight that earn their place. &lt;br&gt;
Recommendation that points somewhere real.&lt;/p&gt;

&lt;p&gt;That is the portfolio project that makes a hiring manager lean in.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Turning Your Project Into a Weaponised Resume
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The project is done. &lt;/li&gt;
&lt;li&gt;The README is sharp. &lt;/li&gt;
&lt;li&gt;The dashboard is clean. &lt;/li&gt;
&lt;li&gt;The insight landed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then you write on your resume: &lt;em&gt;"Used SQL and Excel to analyze sales data."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Everything you built. Everything you found. Everything that made a hiring manager lean in — compressed into a line that says absolutely nothing about any of it! &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdggv5mve942zgsjjd9hs.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdggv5mve942zgsjjd9hs.gif" alt="person putting their hand on the chest in expression of shocked state" width="420" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That over there, is where good work goes to die.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem With Weak Resume Language&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Weak resume lines describe activity. &lt;br&gt;
They tell a hiring manager what tool you held, not what you did with it. &lt;/p&gt;

&lt;p&gt;Not what changed because of it. &lt;br&gt;
Not what the business now knows that it did not know before you sat down with that dataset.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Used SQL and Excel."&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Every other candidate wrote that too. It does not separate you — it dissolves you into the pile.&lt;/p&gt;

&lt;p&gt;And the pile is where opportunities fizzle out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Transformation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Strong resume language does three things simultaneously. It grounds the work in scale — so the reader understands the weight of what you were working with. &lt;/p&gt;

&lt;p&gt;It names the business outcome — so they understand what the work was actually for. &lt;/p&gt;

&lt;p&gt;And it connects the output to a decision — so they can see the value, not just the activity.&lt;/p&gt;

&lt;p&gt;Feel the distance between these:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;❌ Weak&lt;/th&gt;
&lt;th&gt;✅ Strong&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"Used SQL and Excel"&lt;/td&gt;
&lt;td&gt;"Analyzed 100K+ sales records to identify revenue concentration across customer segments; surfaced insights that informed Q3 retention strategy"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Built a dashboard"&lt;/td&gt;
&lt;td&gt;"Designed an executive-facing Excel dashboard translating complex segmentation data into a single-page decision support view for senior leadership"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Did customer segmentation"&lt;/td&gt;
&lt;td&gt;"Segmented 8,000+ customer accounts by revenue contribution and retention rate; identified underinvested enterprise tier responsible for 61% of total revenue"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Analyzed sales performance"&lt;/td&gt;
&lt;td&gt;"Investigated two-year sales trend to diagnose growth risk; found 49% churn rate in primary acquisition segment driving long-term revenue instability"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Made recommendations"&lt;/td&gt;
&lt;td&gt;"Delivered targeted expansion recommendation redirecting growth focus to existing enterprise base — highest-return opportunity identified in the analysis"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Same project. &lt;/p&gt;

&lt;p&gt;Completely different signal.&lt;/p&gt;

&lt;p&gt;One tells the hiring manager you used tools. The other tells them you changed something — or would have, if you had been in the room. And how you would have done that given access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Language That Does the Work&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are specific words and constructions that carry business weight. Reach for them deliberately.&lt;/p&gt;

&lt;p&gt;Lead with scale when it exists:&lt;br&gt;
&lt;em&gt;"100K+ records,"&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"8,000+ accounts,"&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"two-year dataset"&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Scale signals that the work was not trivial and the findings were not guesswork.&lt;/p&gt;

&lt;p&gt;Name the business outcome, not the technical process:&lt;br&gt;
&lt;em&gt;"to identify,"&lt;/em&gt; &lt;br&gt;
&lt;em&gt;"to diagnose,"&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"to inform,"&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"to support"&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;outcomes are what a business buys. &lt;br&gt;
Process is just how you got there.&lt;/p&gt;

&lt;p&gt;Connect to a decision wherever possible:&lt;br&gt;
&lt;em&gt;"informed strategy,"&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"supported leadership decision,"&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"redirected growth focus"&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Analysts who move businesses toward decisions are indispensable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frame everything in the language of the business&lt;/strong&gt;, not the language of the tool. &lt;/p&gt;

&lt;p&gt;The business could care less that you wrote a GROUP BY clause. It cares that you found where the revenue was leaking and pointed toward the fix.&lt;/p&gt;

&lt;p&gt;One project. Written with this level of intention, it becomes three to four resume lines that each carry real weight. &lt;/p&gt;

&lt;p&gt;Lines that a hiring manager reads and thinks; &lt;em&gt;this person has already done the job. They just did it somewhere else.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is the weapon. &lt;/p&gt;

&lt;p&gt;Build it deliberately.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Why This Approach Wins in Interviews
&lt;/h2&gt;

&lt;p&gt;Here is what most candidates experience in an interview.&lt;/p&gt;

&lt;p&gt;The hiring manager opens with: &lt;em&gt;"Walk me through one of your projects."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And the candidate walks them through the tools. The cleaning steps. The queries. The chart they built at the end. &lt;/p&gt;

&lt;p&gt;A technical tour of a technical process — delivered to someone who was never interested in the technical process.&lt;/p&gt;

&lt;p&gt;The room stays polite. The energy stays flat. &lt;br&gt;
And the candidate walks out thinking it went well because nobody stopped them.&lt;/p&gt;

&lt;p&gt;It did not go well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What the Interviewer Is Actually Listening For&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every interview question about your portfolio is really asking one of three things.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What did you find?&lt;/em&gt; &lt;br&gt;
Not what you did — &lt;em&gt;what you found&lt;/em&gt;. &lt;br&gt;
What did the data reveal that was not visible before you looked? &lt;/p&gt;

&lt;p&gt;What was the thing that changed the picture?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why does it matter?&lt;/em&gt; So the revenue dropped in Q3 — why should the business care? What is the downstream consequence if nobody addresses this? What is at stake?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What would you do next?&lt;/em&gt; Where should the business look from here? What decision does this analysis make possible? What would you tell the Head of Sales on your way out of the room?&lt;/p&gt;

&lt;p&gt;Three questions. Every project built using the blueprint in this article answers all three — naturally, specifically, and with the kind of business fluency that makes interviewers put down their pen and actually listen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Conversation Shift&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you have done the work this way, the interview changes entirely.&lt;/p&gt;

&lt;p&gt;You stop reciting steps. You start telling a story. A business was facing a problem. You went into the data and found something. You understood what it meant. You pointed toward what to do about it.&lt;/p&gt;

&lt;p&gt;That is not a candidate describing a project. That is an analyst describing a contribution.&lt;/p&gt;

&lt;p&gt;Feel the difference in how this lands:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"I used SQL to query the sales table and then built a pivot table in Excel and made some charts showing revenue by segment."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Versus:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"I was looking at a company where revenue was growing but something felt structurally off. When I segmented by customer type and layered in retention data, it became clear they were acquiring heavily in their least durable segment — 49% annual churn; while their enterprise base, which drove 61% of revenue, was sitting flat and underserved. The recommendation was to pause on acquisition spend and run a targeted expansion play within the existing enterprise tier first."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Same project. One sounds like a tool user finishing an assignment. The other sounds like an analyst who understood the business, found the fault line, and knew what to do about it.&lt;/p&gt;

&lt;p&gt;One gets a polite follow-up email. The other gets an offer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Move From Tool User to Analyst&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the transformation the entire article has been building toward.&lt;/p&gt;

&lt;p&gt;A tool user knows how to run the query. An analyst knows which question the query needs to answer — and why that question matters to the people sitting across the table.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A tool user presents outputs. &lt;/li&gt;
&lt;li&gt;An analyst delivers conclusions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A tool user waits to be told what to look at. An analyst walks in already knowing where the interesting problems live.&lt;/p&gt;

&lt;p&gt;That shift does not happen because you learned a new tool. It happens because you changed how you think about the work — from practitioner to partner, from executor to advisor, from someone who analyzes data to someone who changes what a business does next.&lt;/p&gt;

&lt;p&gt;Your portfolio, built the right way, is the proof that the shift has already happened.&lt;/p&gt;

&lt;p&gt;By the time you sit down in that interview room, you are not hoping they see your potential.&lt;/p&gt;

&lt;p&gt;You are showing them your thinking. Shaped by real business questions, grounded in real metrics, connected to real decisions. It is the most powerful thing you can bring into that room.&lt;/p&gt;

&lt;p&gt;That is what wins interviews.&lt;/p&gt;

&lt;p&gt;Not the SQL. &lt;br&gt;
Not the Excel. &lt;br&gt;
Not the tools.&lt;/p&gt;

&lt;p&gt;YOU!&lt;/p&gt;

&lt;h2&gt;
  
  
  11. The One Thing That Changes Everything
&lt;/h2&gt;

&lt;p&gt;Most people on finishing reading this will go update their README. Add a business context paragraph. Rename a project. Clean up the structure a little.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;gt; That is not the one thing.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The one thing is deeper than formatting. It is a complete shift in how you see the work — and your role in it.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hiring managers are not looking for people who can write queries. &lt;/p&gt;

&lt;p&gt;They are looking for people who can think with data. &lt;/p&gt;

&lt;p&gt;People who walk into a messy business situation, find the signal inside the noise, understand what it means, and point the organization toward a decision it could not make before.&lt;/p&gt;

&lt;p&gt;That is the job. Everything else — the SQL, the Excel, the dashboard, the README — those are just the tools you carry to do it.&lt;/p&gt;

&lt;p&gt;When you build your portfolio from that place, something changes. Not just in how it looks. Or how it reads. But in what it communicates without a single word about your technical skills. &lt;/p&gt;

&lt;p&gt;It communicates that you understand what businesses actually need — and that you are ready to provide it.&lt;/p&gt;

&lt;p&gt;That is the thing that makes a hiring manager stop scrolling.&lt;/p&gt;

&lt;p&gt;Build the portfolio that proves it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: 3 Project Ideas You Can Start Today (SQL + Excel Only)
&lt;/h2&gt;

&lt;p&gt;You do not need a new dataset. You do not need Python. You do not need a week to plan.&lt;/p&gt;

&lt;p&gt;You need a real business question and the willingness to follow it all the way through.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project One — Customer Churn Analysis&lt;/strong&gt;&lt;br&gt;
Scenario: A subscription business has seen churn tick upward for three consecutive months. Nobody knows which customers are leaving or when in the journey they drop off. Your analysis segments the customer base, identifies the churn pattern by cohort, and surfaces the segment most at risk. Your recommendation targets the 90-day renewal window as the highest-leverage intervention point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Two — Sales Territory Performance Review&lt;/strong&gt;&lt;br&gt;
Scenario: A regional sales team is hitting overall targets but the Head of Sales suspects performance is uneven across territories. Your analysis breaks down revenue, deal volume, and average contract value by territory. You identify one region outperforming on volume but underperforming on value — and recommend a pricing conversation, not a headcount change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Three — Product Return Rate Investigation&lt;/strong&gt;&lt;br&gt;
Scenario: An e-commerce company is seeing margin pressure it cannot fully explain. Your analysis connects return rate data to product category, customer segment, and purchase channel. You find that one product category returned at three times the average rate — concentrated almost entirely in a single acquisition channel. Your recommendation is to audit the product listing and customer expectation-setting in that channel before pulling the product entirely.&lt;/p&gt;

&lt;p&gt;Three projects. SQL to investigate. Excel to communicate. Insight to differentiate. Recommendation to close.&lt;/p&gt;

&lt;p&gt;Start one this weekend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checklist: Before You Publish Your GitHub Project
&lt;/h2&gt;

&lt;p&gt;Run every project through this before it goes live.&lt;/p&gt;

&lt;p&gt;Does the repository name describe a business problem — not a tool or a topic?&lt;/p&gt;

&lt;p&gt;Does the README open with business context — not a dataset description?&lt;/p&gt;

&lt;p&gt;Have you defined the key questions that drove the analysis?&lt;/p&gt;

&lt;p&gt;Are your insights clearly separated from your outputs — and do they explain why, not just what?&lt;/p&gt;

&lt;p&gt;Have you included at least one practical recommendation?&lt;/p&gt;

&lt;p&gt;Is your SQL organized and readable — with comments that explain the purpose of each query, not just the syntax?&lt;/p&gt;

&lt;p&gt;Is your Excel output clean enough for a non-technical stakeholder to read without guidance?&lt;/p&gt;

&lt;p&gt;Have you removed anything that exists only to show technical effort rather than business thinking?&lt;/p&gt;

&lt;p&gt;If every answer is yes — publish it. If any answer is no to any aspect — that is exactly where to spend the next hour.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Would Fix in 90% of Beginner Portfolios
&lt;/h2&gt;

&lt;p&gt;The problems are almost always the same. And they are almost always fixable in an afternoon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The name.&lt;/strong&gt; Generic, tool-focused, invisible. Fix it by naming the business problem, not the technique.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The README opening.&lt;/strong&gt; It starts with the dataset or the tech stack. Fix it by starting with the scenario — the business situation, the pressure, the question nobody had answered yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The missing so what.&lt;/strong&gt; The analysis surfaces a finding and stops. Fix it by asking one more question after every finding: &lt;em&gt;what does this mean for the business?&lt;/em&gt; Write that answer down. That is your insight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The absent recommendation.&lt;/strong&gt; The project ends at the output. Fix it by adding one scoped, practical recommendation — even a single paragraph that points the business somewhere real.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The tool parade.&lt;/strong&gt; Seven tools, seven shallow projects, no depth in any of them. Fix it by going deep on two projects rather than wide across ten. Mastery is the signal. Breadth without depth is just a list.&lt;/p&gt;

&lt;p&gt;Fix these five things and the portfolio is already in the top 20% of everything a hiring manager will see this week.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Final Word
&lt;/h2&gt;

&lt;p&gt;This article was never really about SQL. It was never about Excel, or READMEs, or project naming conventions.&lt;/p&gt;

&lt;p&gt;It was about a paradigm shift in identity.&lt;/p&gt;

&lt;p&gt;From someone who learned the tools — to someone who thinks with them. &lt;/p&gt;

&lt;p&gt;From someone who builds projects — to someone who solves problems. &lt;/p&gt;

&lt;p&gt;From someone who hopes a hiring manager sees their potential — to someone who shows them their thinking and lets the thinking speak.&lt;/p&gt;

&lt;p&gt;The portfolio is not the destination. It is the proof that the shift has already happened inside you.&lt;/p&gt;

&lt;p&gt;Build it that way.&lt;/p&gt;

&lt;p&gt;Everything else follows.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Found this useful? Share it with someone still naming their projects "SQL Project 1." They need this more than they know.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>No Developer Required: How to Embed Any Power BI Report on Your Website in 7 Steps</title>
      <dc:creator>Amailuk Joseph</dc:creator>
      <pubDate>Thu, 09 Apr 2026 07:20:45 +0000</pubDate>
      <link>https://dev.to/amailuk/no-developer-required-how-to-embed-any-power-bi-report-on-your-website-in-7-steps-oji</link>
      <guid>https://dev.to/amailuk/no-developer-required-how-to-embed-any-power-bi-report-on-your-website-in-7-steps-oji</guid>
      <description>&lt;p&gt;&lt;em&gt;A Comprehensive Guide to Publishing and Embedding Power BI Reports on the Web with IFrames&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0xyc5vol5hkgb6zw893.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0xyc5vol5hkgb6zw893.png" alt="Public Power BI dashboard representing published data" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;h5&gt;
  
  
  &lt;em&gt;courtesy: https//blog.coupler.io/power-bi-dashboard-examples&lt;/em&gt;
&lt;/h5&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  I. Introduction — Why Your Data Deserves to Be Seen
&lt;/h2&gt;

&lt;p&gt;Here is a situation you might know all too well.&lt;/p&gt;

&lt;p&gt;You spent hours — maybe days — building a Power BI report. The charts are clean. The numbers are accurate. The story your data tells is genuinely valuable. &lt;/p&gt;

&lt;p&gt;You click through it one more time, satisfied, maybe even a little proud.&lt;/p&gt;

&lt;p&gt;Then you close your laptop.&lt;/p&gt;

&lt;p&gt;And that report? It sits there. Locked inside a tool that only you can open. &lt;/p&gt;

&lt;p&gt;Invisible to the people who need it most. Doing absolutely nothing for anyone.&lt;/p&gt;

&lt;p&gt;That is not a data problem. That is a sharing problem. And it is far more common than most people admit.&lt;/p&gt;




&lt;h3&gt;
  
  
  You Are Not Alone in This
&lt;/h3&gt;

&lt;p&gt;Maybe you have tried sharing it before. You exported it as a PDF — and lost all the interactivity. You emailed a screenshot — and someone immediately asked a question the image could not answer. You shared your screen on a video call — and the moment the call ended, the data disappeared with it.&lt;/p&gt;

&lt;p&gt;None of those solutions actually work. &lt;/p&gt;

&lt;p&gt;Not for live data. Not for people who need to explore it on their own terms, in their own time, from wherever they are.&lt;/p&gt;

&lt;p&gt;There is a better way. And it is simpler than you think.&lt;/p&gt;




&lt;h3&gt;
  
  
  What This Guide Does
&lt;/h3&gt;

&lt;p&gt;This guide solves the sharing problem — completely, practically, and without requiring a single line of code written from scratch.&lt;/p&gt;

&lt;p&gt;By the time you finish reading and following along, you will have taken your Power BI report from sitting privately on your computer to living publicly on a webpage — fully interactive, always current, accessible to anyone with a browser.&lt;/p&gt;

&lt;p&gt;Here is what makes it work in plain language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI&lt;/strong&gt; is Microsoft's tool for turning raw data into visual reports. Charts, graphs, tables, dashboards — all built on top of your data, all updated automatically when that data changes. If you have already built a report, you know what it can do. If you are newer to it, this guide assumes close to zero experience and builds from there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI Service&lt;/strong&gt; is the cloud version of that tool. Think of it the way you think of Google Docs versus Microsoft Word — one lives on your computer, the other lives online and can be accessed from anywhere. Publishing your report to Power BI Service is the bridge between your machine and the world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An iFrame&lt;/strong&gt; is simply a way to display one webpage inside another. Picture a window cut into a wall. Through that window, your visitors see your live, interactive Power BI report — right there on your website — without ever leaving your page. They can click filters. Explore the data. Zoom in on charts. All of it. No Power BI account required on their end.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Think of it like installing a live TV screen inside your website. Not a photograph of a report. Not a static image. A real, breathing, interactive data experience — embedded directly into your page.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Who This Guide Is Written For
&lt;/h3&gt;

&lt;p&gt;It is written for the person who:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Has built a Power BI report and has no idea how to get it onto a website&lt;/li&gt;
&lt;li&gt;Has heard the word "iFrame" and assumed it was too technical to bother with&lt;/li&gt;
&lt;li&gt;Has tried to figure this out alone and hit a wall somewhere in the middle&lt;/li&gt;
&lt;li&gt;Is completely new to all of this and needs someone to start from the very beginning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No coding background required. No developer on speed dial needed. If you can follow instructions and copy and paste text, you have every skill this process demands.&lt;/p&gt;




&lt;h3&gt;
  
  
  What You Will Be Able to Do by the End
&lt;/h3&gt;

&lt;p&gt;This guide takes you through seven clear, logical steps. Each one builds on the last. Nothing is skipped. Nothing is assumed.&lt;/p&gt;

&lt;p&gt;By the time you reach the final section, you will have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Published your Power BI report to the cloud&lt;/li&gt;
&lt;li&gt;✅ Generated a live embed code inside Power BI Service&lt;/li&gt;
&lt;li&gt;✅ Understood exactly what that code means and how to adjust it&lt;/li&gt;
&lt;li&gt;✅ Placed a fully interactive report onto a real webpage&lt;/li&gt;
&lt;li&gt;✅ Tested it the way an actual visitor would experience it&lt;/li&gt;
&lt;li&gt;✅ Learned how to troubleshoot the most common problems&lt;/li&gt;
&lt;li&gt;✅ Adopted best practices that separate a professional embed from an amateur one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From zero to confident. Step by step. No shortcuts or skipped processes. No steps glossed over.&lt;/p&gt;

&lt;p&gt;Your data deserves to be seen. Let's make that happen.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvxl1tnycvfe61jz209pe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvxl1tnycvfe61jz209pe.png" alt="snowflake database connections technical imagery" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  II. The Big Picture — Understand the Journey Before You Click Anything
&lt;/h2&gt;

&lt;p&gt;Before you touch a single button, let's take a step back. Understanding &lt;em&gt;what&lt;/em&gt; you are about to do — and &lt;em&gt;why&lt;/em&gt; each step exists — makes the whole process click into place. &lt;/p&gt;

&lt;p&gt;Skipping this part is exactly why most beginners get confused halfway through.&lt;/p&gt;

&lt;p&gt;So here is the full journey, plain and simple.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Three-Stage Journey
&lt;/h3&gt;

&lt;p&gt;Think of publishing and embedding a Power BI report like setting up a display at a trade show.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;You build your exhibit at your workshop.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;You transport it to the venue.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Then you set it up behind a glass display so visitors can see it without touching it directly.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is exactly what happens here — just digitally.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7pa0gkgs6armtjr5nk5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7pa0gkgs6armtjr5nk5.jpg" alt="Image representing the Power BI publishing process in three steps" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Stage 1 — Build It: Power BI Desktop&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is your workshop. &lt;br&gt;
&lt;strong&gt;Power BI Desktop&lt;/strong&gt; is the application installed on your computer where you design and build your report. Your charts, your filters, your layout — all of it comes together here. &lt;/p&gt;

&lt;p&gt;It lives on your machine until you decide to share it.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Stage 2 — Publish It: Power BI Service&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the venue. &lt;br&gt;
&lt;strong&gt;Power BI Service&lt;/strong&gt; is Microsoft's cloud platform, accessible at &lt;a href="https://app.powerbi.com" rel="noopener noreferrer"&gt;app.powerbi.com&lt;/a&gt;. When you publish your report, you are uploading it from your computer to the cloud — where it becomes accessible from anywhere, on any device.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Stage 3 — Share It: Your Website via iFrame&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the glass display case. &lt;br&gt;
Once your report lives in the cloud, Power BI gives you a small snippet of code — an &lt;strong&gt;iFrame&lt;/strong&gt; — that you paste into your website. That code punches a live window into your webpage, showing your report to anyone who visits.&lt;/p&gt;


&lt;h3&gt;
  
  
  Why the Order Matters
&lt;/h3&gt;

&lt;p&gt;Each stage depends completely on the one before it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You cannot publish what you have not built&lt;/li&gt;
&lt;li&gt;Neither can you generate an embed code for something that is not in the cloud&lt;/li&gt;
&lt;li&gt;Nor embed what does not have a code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Miss a step and things WILL break. &lt;/p&gt;

&lt;p&gt;Follow the sequence and everything connects naturally. &lt;/p&gt;

&lt;p&gt;This guide walks you through each stage in exactly the right order.&lt;/p&gt;


&lt;h2&gt;
  
  
  III. Before You Begin — What You Need
&lt;/h2&gt;

&lt;p&gt;No surprises halfway through. Let's make sure you have everything in place &lt;em&gt;before&lt;/em&gt; the first click. &lt;/p&gt;

&lt;p&gt;This section is short. But it matters.&lt;/p&gt;


&lt;h3&gt;
  
  
  Your Pre-Flight Checklist
&lt;/h3&gt;

&lt;p&gt;Think of this like checking your bags before a flight. A few minutes of preparation now saves a lot of frustration later.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpx41qa9gf2h89zn8qzj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpx41qa9gf2h89zn8qzj.jpg" alt="Power Bi web publishing checklist" width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;✅ 1. A Completed Power BI Report File (.pbix)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the report you built in &lt;strong&gt;Power BI Desktop&lt;/strong&gt;. It is saved as a &lt;code&gt;.pbix&lt;/code&gt; file on your computer. It does not need to be perfect — but it needs to exist and open without errors before you publish it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Don't have one yet? Open Power BI Desktop, connect to any data source, build a simple chart, and save it. That is enough to follow along.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;



&lt;p&gt;&lt;strong&gt;✅ 2. A Microsoft Account&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You need this to access Power BI Service. A free Microsoft account works to get started. However, keep this in mind:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Account Type&lt;/th&gt;
&lt;th&gt;What You Can Do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Build reports in Desktop, limited publishing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pro&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full publishing, sharing, and embedding access&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Premium&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Advanced embedding, no per-user license needed for viewers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;For this guide, a Pro account or a &lt;strong&gt;free trial&lt;/strong&gt; of Pro is recommended. Microsoft offers a 60-day free trial — worth activating if you have not already.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;p&gt;&lt;strong&gt;✅ 3. Access to Power BI Service&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open a browser and navigate to &lt;a href="https://app.powerbi.com" rel="noopener noreferrer"&gt;app.powerbi.com&lt;/a&gt;. Sign in with your Microsoft account. If the page loads and you see a dashboard — you are in. &lt;/p&gt;

&lt;p&gt;That is all you need to confirm.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;✅ 4. A Webpage Where You Control the HTML&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where your embedded report will ultimately live. It could be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;WordPress&lt;/strong&gt; site (&lt;em&gt;most common&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Wix or Squarespace&lt;/strong&gt; page&lt;/li&gt;
&lt;li&gt;A raw &lt;strong&gt;HTML file&lt;/strong&gt; you manage yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key requirement is simple — you need to be able to &lt;strong&gt;paste code into the page&lt;/strong&gt;. If you can edit your webpage, you are ready.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;✅ 5. The Ability to Copy and Paste&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Seriously. That is the most technical skill this process requires. Everything else this guide walks you through step by step.&lt;/p&gt;


&lt;h2&gt;
  
  
  IV. Step 1 — Sign Into Power BI Service
&lt;/h2&gt;

&lt;p&gt;You have your report file ready. Your Microsoft account is set up. Now it is time to step into the cloud side of Power BI — the place where your report goes from sitting on your computer to being accessible anywhere in the world.&lt;/p&gt;

&lt;p&gt;That place is &lt;strong&gt;Power BI Service&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  What Exactly Is Power BI Service?
&lt;/h3&gt;

&lt;p&gt;Here is the simplest way to think about it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Power BI Desktop is Microsoft Word — it lives on your computer and that is where you do the work.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Power BI Service is like OneDrive or Google Docs — it lives in the cloud, and that is where you store, share, and manage what you have built.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They are two separate tools that work together. You build in Desktop. Publish and share through Service. One without the other only gets you halfway.&lt;/p&gt;


&lt;h3&gt;
  
  
  How to Get There
&lt;/h3&gt;

&lt;p&gt;Open any web browser — Chrome, Edge, Firefox, it does not matter. Type the following address into your address bar and press &lt;strong&gt;Enter&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://app.powerbi.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will land on the Power BI Service sign-in page.&lt;/p&gt;




&lt;h3&gt;
  
  
  Signing In
&lt;/h3&gt;

&lt;p&gt;Click &lt;strong&gt;Sign In&lt;/strong&gt; and enter your Microsoft account credentials — the same email and password you use for any other Microsoft product. Office 365, Outlook, Teams — same login.&lt;/p&gt;

&lt;p&gt;If you do not have an account a Microsoft account, create one from that point &amp;amp; login.&lt;/p&gt;

&lt;p&gt;Once you are in, you will see the &lt;strong&gt;Power BI Service home screen&lt;/strong&gt;. Take a breath. &lt;/p&gt;

&lt;p&gt;Nothing here is as complicated as it looks.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh8gxw8f0f65rniwtbgbc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh8gxw8f0f65rniwtbgbc.jpg" alt="Microsoft sign in page dialogue box" width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  A Quick Orientation — What You Are Looking At
&lt;/h3&gt;

&lt;p&gt;You do not need to know every corner of this interface. For now, focus on three areas:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;What It Is&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Left Sidebar&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your main navigation — Home, Recent, Workspaces, and more&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;My Workspace&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your personal space — private to you, like a personal folder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shared Workspaces&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Team spaces — for collaborating with others in your organization&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For this guide, &lt;strong&gt;My Workspace&lt;/strong&gt; is where your report will land when you publish. &lt;/p&gt;

&lt;p&gt;It is the safest, simplest place to start.&lt;/p&gt;




&lt;h3&gt;
  
  
  My Workspace vs. Shared Workspaces — What Is the Difference?
&lt;/h3&gt;

&lt;p&gt;Think of &lt;strong&gt;My Workspace&lt;/strong&gt; as your personal desk drawer. Only you can see what is in it by default. &lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;Shared Workspace&lt;/strong&gt; is more like a communal filing cabinet — teammates can access it too.&lt;/p&gt;

&lt;p&gt;For beginners publishing their first report, &lt;strong&gt;My Workspace&lt;/strong&gt; is the right starting point. You can always move things later.&lt;/p&gt;




&lt;h2&gt;
  
  
  V. Step 2 — Publish Your Report from Power BI Desktop
&lt;/h2&gt;

&lt;p&gt;This is where the magic starts. &lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7twq1ewwvkcpr9ootmu0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7twq1ewwvkcpr9ootmu0.jpg" alt="the publish icon on the Power BI home page" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Your report has been living quietly on your computer. &lt;/p&gt;

&lt;p&gt;In this step, you send it to the cloud — officially making it available in Power BI Service and setting the stage for everything that follows.&lt;/p&gt;

&lt;p&gt;The process is straightforward. Let's walk through it together.&lt;/p&gt;




&lt;h3&gt;
  
  
  Open Your Report in Power BI Desktop
&lt;/h3&gt;

&lt;p&gt;Start by launching &lt;strong&gt;Power BI Desktop&lt;/strong&gt; on your computer. Open the &lt;code&gt;.pbix&lt;/code&gt; file you prepared earlier — the report you want to publish.&lt;/p&gt;

&lt;p&gt;Take a moment to scroll through it. &lt;br&gt;
Make sure everything looks right. &lt;br&gt;
Check that your visuals load, your data is current, and nothing appears broken.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Think of this as a final quality check before sending something to print. Once it is published, your audience could see it. Make sure it is ready.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  Finding the Publish Button
&lt;/h3&gt;

&lt;p&gt;Look at the top of your screen. You will see a horizontal menu bar called the &lt;strong&gt;ribbon&lt;/strong&gt;. Click on the &lt;strong&gt;Home&lt;/strong&gt; tab if it is not already selected.&lt;/p&gt;

&lt;p&gt;Toward the right side of the ribbon, you will see a button labeled &lt;strong&gt;Publish&lt;/strong&gt; with a small Power BI icon beside it. It is hard to miss.&lt;/p&gt;

&lt;p&gt;Click it.&lt;/p&gt;


&lt;h3&gt;
  
  
  Choosing Your Destination Workspace
&lt;/h3&gt;

&lt;p&gt;A dialog box will appear asking you one simple question — &lt;em&gt;where do you want to publish this report?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You will see a list of available workspaces. For this guide, select &lt;strong&gt;My Workspace&lt;/strong&gt;. It is your personal space in Power BI Service and the simplest destination for a first publish.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7tupnnozfpdqhejzafkw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7tupnnozfpdqhejzafkw.jpg" alt="a Power BI publishing dialogue box asking which workspace will used" width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Advisably, name your "My Workspce" to easily identify or label your work.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;If you are publishing for a team or organization, select the appropriate shared workspace instead. The rest of the steps remain exactly the same.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Click &lt;strong&gt;Select&lt;/strong&gt; to confirm.&lt;/p&gt;


&lt;h3&gt;
  
  
  What Happens Next — Plain Language
&lt;/h3&gt;

&lt;p&gt;Power BI Desktop will display a progress bar with the message &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Publishing to Power BI."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What is actually happening behind the scenes? &lt;/p&gt;

&lt;p&gt;Your &lt;code&gt;.pbix&lt;/code&gt; file — the report and its underlying data — is being uploaded from your computer to Microsoft's cloud servers. &lt;/p&gt;

&lt;p&gt;It is essentially the same as uploading a file to Google Drive or Dropbox. Just with a fancier progress bar.&lt;/p&gt;

&lt;p&gt;It usually takes between a few seconds and a couple of minutes depending on your file size and internet connection.&lt;/p&gt;


&lt;h3&gt;
  
  
  Confirming Success
&lt;/h3&gt;

&lt;p&gt;When the upload completes, a success dialog appears. You will see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ A green checkmark&lt;/li&gt;
&lt;li&gt;✅ The message &lt;strong&gt;"Your report was successfully published"&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;✅ A clickable link that takes you directly to the report in Power BI Service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click that link. &lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4dtd2d66sq8nykx8gaj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4dtd2d66sq8nykx8gaj.jpg" alt="descriptive pictorial of the success Microsoft pagepage" width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;It will open your browser and take you straight to your freshly published report in Power BI Service. &lt;/p&gt;

&lt;p&gt;You are going to need it in the very next step.&lt;/p&gt;


&lt;h3&gt;
  
  
  ⚠️ Common Hiccup — Publish Button Grayed Out?
&lt;/h3&gt;

&lt;p&gt;If the &lt;strong&gt;Publish&lt;/strong&gt; button appears faded and unclickable, one of two things is likely happening:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cause&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;You are not signed into Power BI Desktop&lt;/td&gt;
&lt;td&gt;Click &lt;strong&gt;Sign In&lt;/strong&gt; in the top right corner of Desktop and log in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Your account is Free tier with no workspace access&lt;/td&gt;
&lt;td&gt;Activate a Pro trial at app.powerbi.com under account settings&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Fix either of those and the Publish button will become active immediately.&lt;/p&gt;


&lt;h2&gt;
  
  
  VI. Step 3 — Find and Verify Your Report in Power BI Service
&lt;/h2&gt;

&lt;p&gt;Your report is in the cloud now. But before you generate any embed code, you need to do one important thing — &lt;strong&gt;confirm that what was published is exactly what you intended&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This step takes two minutes. It saves a lot of embarrassment later.&lt;/p&gt;


&lt;h3&gt;
  
  
  Navigating to Your Workspace
&lt;/h3&gt;

&lt;p&gt;If you clicked the link on the success screen from the previous step, you are already here. &lt;/p&gt;

&lt;p&gt;If not, head to your browser and go to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://app.powerbi.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On the left sidebar, look for &lt;strong&gt;My Workspace&lt;/strong&gt; and click it. This is where everything you just published has landed.&lt;/p&gt;




&lt;h3&gt;
  
  
  What You Will See — Three Items, Not One
&lt;/h3&gt;

&lt;p&gt;Here is something that surprises almost every first-time user.&lt;/p&gt;

&lt;p&gt;When you publish a single &lt;code&gt;.pbix&lt;/code&gt; file, Power BI Service does not just create one item. It creates &lt;strong&gt;three&lt;/strong&gt;. They appear listed together in your workspace and each one plays a different role.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbenuli2k5zhrob2vj38.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbenuli2k5zhrob2vj38.jpg" alt="callout labeling each one: " width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Think of it like submitting a book to a publisher. They receive the manuscript, create a printed copy, and produce a summary card for the catalogue. Three things — one source.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here is what each item actually is:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Icon&lt;/th&gt;
&lt;th&gt;Item Type&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;📊&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Dataset&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The raw data engine powering your report — the numbers behind the visuals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📄&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Report&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The visual story built on top of that data — charts, graphs, and layouts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📌&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Dashboard&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A curated highlights page — pinned visuals selected manually&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For embedding purposes, the item you care about right now is the &lt;strong&gt;Report&lt;/strong&gt;. That is the one your audience will see.&lt;/p&gt;




&lt;h3&gt;
  
  
  Opening and Verifying the Report
&lt;/h3&gt;

&lt;p&gt;Click on the &lt;strong&gt;Report&lt;/strong&gt; item — the one with the report icon beside it. It will open in your browser, rendering your full report exactly as you built it in Desktop.&lt;/p&gt;

&lt;p&gt;Now check the following before moving on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ All visuals load completely — no blank tiles or error messages&lt;/li&gt;
&lt;li&gt;✅ Charts and graphs display the correct data&lt;/li&gt;
&lt;li&gt;✅ Any filters or slicers on the report are working&lt;/li&gt;
&lt;li&gt;✅ The layout looks clean and nothing is cut off&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fieks289ajul1qfpq78io.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fieks289ajul1qfpq78io.jpg" alt="a sample chart or visual clearly visible, browser address bar showing app.powerbi.com URL" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Why This Verification Step Matters
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Don't embed something broken."&lt;/em&gt; &lt;br&gt;
That is the golden rule of this entire process. Once your report is live on a website, anyone who visits that page will see exactly what is there — errors included. A blank visual or a broken chart reflects poorly and confuses your audience.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Catching problems here, inside Power BI Service, is the right time. Fixing things after embedding means repeating steps unnecessarily. A two minutes check can entirely prevent that happening.&lt;/p&gt;




&lt;h3&gt;
  
  
  A Note on the Browser Address Bar
&lt;/h3&gt;

&lt;p&gt;While your report is open, glance at the address bar. You will see a long URL that looks something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://app.powerbi.com/groups/me/reports/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That long string of letters and numbers is your report's unique ID in the cloud. You do not need to copy it manually — Power BI will handle that in the next step. But it is useful to know it exists and that your report now has a permanent address on the web.&lt;/p&gt;




&lt;h2&gt;
  
  
  VII. Step 4 — Generate the Embed Code
&lt;/h2&gt;

&lt;p&gt;This is the step everything has been building toward. Your report is built. &lt;/p&gt;

&lt;p&gt;It is published. &lt;/p&gt;

&lt;p&gt;It is verified. Now you are going to ask Power BI to hand you the key that unlocks your report for the web — the &lt;strong&gt;embed code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;One menu. A few clicks. And you will have exactly what you need.&lt;/p&gt;




&lt;h3&gt;
  
  
  Introducing the Publish to Web Feature
&lt;/h3&gt;

&lt;p&gt;Power BI has a built-in feature designed specifically for this moment. It is called &lt;strong&gt;Publish to Web&lt;/strong&gt; and it does one job exceptionally well — it generates a piece of code that lets you display your live, interactive Power BI report on any webpage in the world.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4s98u0yyl6fdyflxmpmd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4s98u0yyl6fdyflxmpmd.jpg" alt="image of the Power BI Service File menu open at the top of the report view — " width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;No developer needed. No complex setup. &lt;/p&gt;

&lt;p&gt;Just a code snippet you copy and paste.&lt;/p&gt;




&lt;h3&gt;
  
  
  How to Access It
&lt;/h3&gt;

&lt;p&gt;Make sure your report is open in Power BI Service — the browser version at app.powerbi.com. You should be looking at your fully rendered report right now.&lt;/p&gt;

&lt;p&gt;Follow these steps exactly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;File&lt;/strong&gt; in the top menu bar of Power BI Service&lt;/li&gt;
&lt;li&gt;Hover over &lt;strong&gt;Embed Report&lt;/strong&gt; in the dropdown&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Publish to Web (public)&lt;/strong&gt; from the submenu that appears&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Important — you are looking for "Publish to Web (public)" specifically. There are other embedding options in this menu designed for organizational use. Those require viewers to have a Power BI login. The public option does not — which is what makes it perfect for websites.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  The Critical Fork — Public vs. Organizational Embedding
&lt;/h3&gt;

&lt;p&gt;Before you go further, you need to understand this distinction. It is simple but important.&lt;/p&gt;







&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Embedding Type&lt;/th&gt;
&lt;th&gt;Who Can View It&lt;/th&gt;
&lt;th&gt;Login Required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Publish to Web (public)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Anyone on the internet&lt;/td&gt;
&lt;td&gt;❌ No login needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Embed for your organization&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Only people in your organization&lt;/td&gt;
&lt;td&gt;✅ Power BI login required&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a public-facing website — a blog, a portfolio, a business site — &lt;strong&gt;Publish to Web (public)&lt;/strong&gt; is the correct choice. That is what this guide uses.&lt;/p&gt;

&lt;p&gt;For internal company dashboards or sensitive reports, use organizational embedding instead and consult your IT administrator.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai5wsk6dhtjvrmztl6wy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai5wsk6dhtjvrmztl6wy.png" alt="image of the Publish to Web warning dialog box" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Microsoft's Warning Dialog — What It Means
&lt;/h3&gt;

&lt;p&gt;When you click Publish to Web (public), Microsoft will show you a warning message before proceeding. Do not let it rattle you. It is simply reminding you of something important.&lt;/p&gt;

&lt;p&gt;The warning says, in plain language: &lt;em&gt;"This report will be visible to anyone on the internet. Do not use this for sensitive or confidential data."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is good advice. Heed it. If your report contains personal information, financial records, or anything private — stop here and use organizational embedding instead.&lt;/p&gt;

&lt;p&gt;If your report contains general, non-sensitive data — a sales overview, a public survey result, a portfolio project — you are safe to proceed.&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Create Embed Code&lt;/strong&gt; to continue.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Two Outputs Power BI Gives You
&lt;/h3&gt;

&lt;p&gt;A new screen appears confirming your embed code has been created. Power BI gives you two things here and it is worth understanding what each one is for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output 1 — The Shareable Link&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://app.powerbi.com/view?r=xxxxxxxxxxxxxxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a direct URL. You can send it to anyone and they can open your report in a browser tab. Useful for sharing via email or messaging. Not what we need for embedding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output 2 — The iFrame Embed Code&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;iframe&lt;/span&gt; &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"My Report"&lt;/span&gt; 
  &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"800"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"600"&lt;/span&gt; 
  &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://app.powerbi.com/view?r=xxxx"&lt;/span&gt; 
  &lt;span class="na"&gt;frameborder=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt; 
  &lt;span class="na"&gt;allowFullScreen=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;This&lt;/em&gt; is what you need. This is the code that places your report directly inside a webpage. Copy the entire block of code — from &lt;code&gt;&amp;lt;iframe&lt;/code&gt; all the way to &lt;code&gt;&amp;lt;/iframe&amp;gt;&lt;/code&gt;. Every character matters.&lt;/p&gt;




&lt;h3&gt;
  
  
  How to Copy It
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Besides the iFrame code box, you will see a &lt;strong&gt;Copy&lt;/strong&gt; button or you can click inside the code box, select all the text with &lt;strong&gt;Ctrl+A&lt;/strong&gt; (or &lt;strong&gt;Cmd+A&lt;/strong&gt; on Mac), and copy it with &lt;strong&gt;Ctrl+C&lt;/strong&gt; (or &lt;strong&gt;Cmd+C&lt;/strong&gt;).
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpybfo0cf5phqhwnnixz9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpybfo0cf5phqhwnnixz9.png" alt="the iFrame code snippet displayed in a clean code block — each individual attribute (src, width, height, frameborder, allowFullScreen" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Paste it temporarily into a plain text editor — Notepad on Windows, TextEdit on Mac — just to keep it safe while you work through the next steps.&lt;/p&gt;




&lt;h2&gt;
  
  
  VIII. Step 5 — Understand the iFrame Code
&lt;/h2&gt;

&lt;p&gt;You have the code. It is sitting in your text editor, a dense-looking line of HTML that might seem intimidating at first glance. But here is the truth — it is not complicated at all. Every part of it has a simple, logical job.&lt;/p&gt;

&lt;p&gt;Taking two minutes to understand what you are looking at makes the next steps feel completely natural. &lt;/p&gt;

&lt;p&gt;It also means that when something does not display quite right, you will know exactly which part to adjust.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Picture Frame Analogy
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Think of the iFrame tag like a physical picture frame. You choose the size of the frame. You choose where it hangs on the wall. And the image inside — your Power BI report — updates itself automatically without you ever touching the frame again.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The frame is just a container. The report inside it is live.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Full iFrame Code — Laid Out Clearly
&lt;/h3&gt;

&lt;p&gt;Here is what your embed code looks like. Every report will have slightly different values — particularly in the &lt;code&gt;src&lt;/code&gt; address — but the structure is always the same.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;iframe&lt;/span&gt; 
  &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"My Power BI Report"&lt;/span&gt;
  &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"800"&lt;/span&gt; 
  &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"600"&lt;/span&gt; 
  &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://app.powerbi.com/view?r=xxxxxxxxxxxx"&lt;/span&gt; 
  &lt;span class="na"&gt;frameborder=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt; 
  &lt;span class="na"&gt;allowFullScreen=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's break every single piece of this down.&lt;/p&gt;




&lt;h3&gt;
  
  
  Plain-Language Breakdown
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Code Attribute&lt;/th&gt;
&lt;th&gt;What It Actually Means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Opens the display window — tells the webpage "a frame starts here"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;title=""&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A label for the frame — used by screen readers for accessibility&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;width=""&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;How wide the frame appears on your page, measured in pixels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;height=""&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;How tall the frame appears on your page, measured in pixels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;src=""&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The web address of your Power BI report — the "what goes inside the frame"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;frameborder="0"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Removes the visible border line around the frame — cleaner appearance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;allowFullScreen="true"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gives viewers the option to expand the report to fill their entire screen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;/iframe&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Closes the frame — tells the webpage "the frame ends here"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5s80v0kqfcnkjuxd4fu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5s80v0kqfcnkjuxd4fu.png" alt="the full iFrame code displayed in a clean text-editor style panel. Each attribute highlighted describing its purpose in plain language" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Nothing exotic. Nothing mysterious. &lt;/p&gt;

&lt;p&gt;Eight attributes with eight straightforward jobs.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Two You Will Most Likely Need to Adjust
&lt;/h3&gt;

&lt;p&gt;Most of this code you will never touch. But two attributes are worth paying attention to — &lt;strong&gt;width&lt;/strong&gt; and &lt;strong&gt;height&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Width and Height — Getting the Size Right&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By default, Power BI sets the width to &lt;code&gt;800&lt;/code&gt; and the height to &lt;code&gt;600&lt;/code&gt;. These are measured in &lt;strong&gt;pixels&lt;/strong&gt; — the tiny dots that make up everything on a screen.&lt;/p&gt;

&lt;p&gt;On a large desktop monitor, 800 pixels wide looks reasonable. On a smaller laptop screen or a mobile device, it might appear too wide — causing horizontal scrolling, which feels clunky and unprofessional.&lt;/p&gt;

&lt;p&gt;Here are three practical sizing approaches:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Recommended Setting&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fixed desktop layout&lt;/td&gt;
&lt;td&gt;&lt;code&gt;width="800" height="600"&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Full-width responsive layout&lt;/td&gt;
&lt;td&gt;&lt;code&gt;width="100%" height="600"&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tall report with many visuals&lt;/td&gt;
&lt;td&gt;&lt;code&gt;width="100%" height="900"&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Using &lt;code&gt;width="100%"&lt;/code&gt; instead of a fixed pixel number tells the frame to stretch and fill whatever container it sits inside — making it naturally responsive on different screen sizes. This is almost always the better choice.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  A Note on Responsive Design
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Responsive design&lt;/strong&gt; simply means your webpage adjusts itself to look good on any screen size — desktop, tablet, or phone. Using &lt;code&gt;width="100%"&lt;/code&gt; is a small but meaningful step toward that goal.&lt;/p&gt;

&lt;p&gt;If your website already uses a responsive theme or template — which most modern WordPress, Wix, and Squarespace sites do — setting your iFrame width to &lt;code&gt;100%&lt;/code&gt; ensures the report fits neatly within your page layout at every screen size.&lt;/p&gt;

&lt;p&gt;It is a one-word change that makes a significant difference.&lt;/p&gt;




&lt;h3&gt;
  
  
  Your Code Is Ready — Keep It Handy
&lt;/h3&gt;

&lt;p&gt;At this point you should have your iFrame code copied and saved in a text editor. &lt;/p&gt;

&lt;p&gt;Double check that it is complete — starting with &lt;code&gt;&amp;lt;iframe&lt;/code&gt; and ending with &lt;code&gt;&amp;lt;/iframe&amp;gt;&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;A missing character at either end will cause the embed to fail, showing nothing on your page.&lt;/p&gt;

&lt;p&gt;Everything intact? &lt;/p&gt;

&lt;p&gt;Good. &lt;/p&gt;

&lt;p&gt;Time to put it to work.&lt;/p&gt;




&lt;h2&gt;
  
  
  IX. Step 6 — Embed the iFrame on Your Website
&lt;/h2&gt;

&lt;p&gt;This is the moment everything comes together. You have your embed code ready. Now you are going to place it on your webpage — and watch your Power BI report appear live, right there on your site, interactive and fully functional.&lt;/p&gt;

&lt;p&gt;The exact steps depend on which platform your website runs on. This guide covers the three most common scenarios. &lt;/p&gt;

&lt;p&gt;Find yours and follow along.&lt;/p&gt;




&lt;h3&gt;
  
  
  Before You Begin — One Important Reminder
&lt;/h3&gt;

&lt;p&gt;Your iFrame code should be copied and ready in your text editor. &lt;/p&gt;

&lt;p&gt;If you closed it or lost it, go back to Power BI Service, open your report, and follow &lt;strong&gt;File → Embed Report → Publish to Web (public)&lt;/strong&gt; to retrieve it again. Your previously generated code will still be there.&lt;/p&gt;




&lt;h3&gt;
  
  
  Option A — WordPress
&lt;/h3&gt;

&lt;p&gt;WordPress powers over 40% of websites on the internet. It is the most likely platform you are working with. Here is exactly what to do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step-by-step:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log into your WordPress admin dashboard at &lt;code&gt;yoursite.com/wp-admin&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;page or post&lt;/strong&gt; where you want the report to appear&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Edit&lt;/strong&gt; to open it in the block editor&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;+ icon&lt;/strong&gt; to add a new block&lt;/li&gt;
&lt;li&gt;In the search box that appears, type &lt;strong&gt;"Custom HTML"&lt;/strong&gt; and select it&lt;/li&gt;
&lt;li&gt;A plain text block will appear on your page&lt;/li&gt;
&lt;li&gt;Click inside it and &lt;strong&gt;paste your iFrame code&lt;/strong&gt; using &lt;strong&gt;Ctrl+V&lt;/strong&gt; (or &lt;strong&gt;Cmd+V&lt;/strong&gt; on Mac)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Preview&lt;/strong&gt; in the top right corner to see how it looks&lt;/li&gt;
&lt;li&gt;If everything looks right — click &lt;strong&gt;Update&lt;/strong&gt; or &lt;strong&gt;Publish&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is it. Your report is now embedded on your WordPress page.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The Custom HTML block is your best friend for embedding anything on WordPress — not just Power BI reports. Once you know it is there, you will use it again and again.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Option B — Wix or Squarespace
&lt;/h3&gt;

&lt;p&gt;Both platforms handle iFrame embedding through a dedicated HTML element. The approach is slightly different from WordPress but equally straightforward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Wix:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your page in the &lt;strong&gt;Wix Editor&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;+ Add Elements&lt;/strong&gt; button on the left panel&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Embed Code → Embed HTML&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A grey placeholder box will appear on your page&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Enter Code&lt;/strong&gt; inside that box&lt;/li&gt;
&lt;li&gt;Paste your iFrame code into the code window&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Apply&lt;/strong&gt; and then &lt;strong&gt;Save&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Drag and resize the element on your page as needed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;For Squarespace:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your page in the &lt;strong&gt;Squarespace Editor&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click the area where you want the report and select &lt;strong&gt;Edit&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;+&lt;/strong&gt; button to add a new content block&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Code&lt;/strong&gt; from the block options&lt;/li&gt;
&lt;li&gt;Paste your iFrame code into the code block&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Apply&lt;/strong&gt; and then &lt;strong&gt;Save&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Option C — Raw HTML Page
&lt;/h3&gt;

&lt;p&gt;If you manage a plain HTML website — where you directly edit &lt;code&gt;.html&lt;/code&gt; files — the process is the most direct of all three options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step-by-step:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your &lt;code&gt;.html&lt;/code&gt; file in any text editor — Notepad, VS Code, Sublime Text, or any other&lt;/li&gt;
&lt;li&gt;Find the spot in your page where you want the report to appear&lt;/li&gt;
&lt;li&gt;Paste your iFrame code directly between the opening &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; and closing &lt;code&gt;&amp;lt;/body&amp;gt;&lt;/code&gt; tags like this:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;My Data Report&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;iframe&lt;/span&gt; 
    &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"My Power BI Report"&lt;/span&gt;
    &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"100%"&lt;/span&gt; 
    &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"600"&lt;/span&gt; 
    &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://app.powerbi.com/view?r=xxxxxxxxxxxx"&lt;/span&gt; 
    &lt;span class="na"&gt;frameborder=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt; 
    &lt;span class="na"&gt;allowFullScreen=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Save the file&lt;/li&gt;
&lt;li&gt;Upload it to your web server using your usual method — FTP, your hosting control panel, or your deployment tool&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  What a Successful Embed Looks Like
&lt;/h3&gt;

&lt;p&gt;When you preview your page, you should see your Power BI report rendering cleanly inside the page — charts visible, layout intact, no login prompt appearing. It should look and feel like a natural part of your webpage, not a foreign object dropped onto it.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚠️ Warning — Some Platforms Restrict iFrames
&lt;/h3&gt;

&lt;p&gt;A small number of website platforms and hosting environments block iFrame content by default for security reasons. If you paste your code and see a blank space where the report should be, this may be the cause.&lt;/p&gt;

&lt;p&gt;Quick checks to try:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Switch to a different browser and test again&lt;/li&gt;
&lt;li&gt;Temporarily disable any security or caching plugins if you are on WordPress&lt;/li&gt;
&lt;li&gt;Check your platform's documentation for iFrame or embed restrictions&lt;/li&gt;
&lt;li&gt;Contact your hosting provider if the issue persists&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of the time, one of these steps resolves it immediately.&lt;/p&gt;




&lt;p&gt;10.&lt;/p&gt;

&lt;h2&gt;
  
  
  X. Step 7 — Test and Verify Your Live Embed
&lt;/h2&gt;

&lt;p&gt;Your report is embedded. Your page is published. Before you share the link with anyone — pause. One final step separates a confident publish from an embarrassing one.&lt;/p&gt;

&lt;p&gt;You need to test it. Properly.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why Testing Matters More Than You Think
&lt;/h3&gt;

&lt;p&gt;Here is the thing about embedded reports. Everything might look perfect when &lt;em&gt;you&lt;/em&gt; view it — because you are logged into Power BI, your browser has cached data, and your account has full access. &lt;/p&gt;

&lt;p&gt;But your visitors? They are coming in cold. No login. No cache. No account.&lt;/p&gt;

&lt;p&gt;What you see and what they see can be surprisingly different.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Testing your embed without your login active is the only way to know for certain what the rest of the world actually sees when they land on your page.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There is a simple, free way to simulate exactly that.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Incognito Window Test
&lt;/h3&gt;

&lt;p&gt;Every major browser has a private or incognito mode. In this mode, your browser starts fresh — no stored logins, no cached data, no cookies. &lt;/p&gt;

&lt;p&gt;It is the closest thing to stepping into a stranger's shoes without leaving your desk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to open an incognito window:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Browser&lt;/th&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Google Chrome&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ctrl + Shift + N (Windows) / Cmd + Shift + N (Mac)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mozilla Firefox&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ctrl + Shift + P (Windows) / Cmd + Shift + P (Mac)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Microsoft Edge&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ctrl + Shift + N (Windows) / Cmd + Shift + N (Mac)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Safari&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cmd + Shift + N (Mac)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Once the incognito window is open, navigate to the webpage where you embedded your report. Type the full URL into the address bar and press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Your Verification Checklist
&lt;/h3&gt;

&lt;p&gt;Work through each of these carefully. &lt;/p&gt;

&lt;p&gt;Do not rush.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ The report loads without asking for a login&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If a Power BI sign-in prompt appears, your embed code was generated using the organizational setting instead of the public setting. Go back to Power BI Service and regenerate the code using &lt;strong&gt;Publish to Web (public)&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;✅ All visuals render completely&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Scroll through the entire report. Look for blank tiles, spinning load indicators that never resolve, or error messages inside individual visuals. &lt;/p&gt;

&lt;p&gt;Any of these signals a problem with the underlying dataset or a publishing issue worth investigating before sharing.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;✅ Filters and slicers respond to interaction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Click on a slicer. Apply a filter. &lt;/p&gt;

&lt;p&gt;Hover over a data point to trigger a tooltip. &lt;/p&gt;

&lt;p&gt;Interactive elements should respond immediately and update the visuals in real time. If they do not, the embed is likely loading a static snapshot rather than the live report — check your embed code source URL.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmahgvh8xu4k0k8vsj28l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmahgvh8xu4k0k8vsj28l.jpg" alt="an interactive slicer or filter panel visibly open and active" width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;✅ The layout fits the page cleanly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look at how the report sits within your webpage. Is it cut off on the right side? Is there unwanted horizontal scrolling? Does it look cramped or oversized? If any of these are true, revisit your iFrame &lt;code&gt;width&lt;/code&gt; and &lt;code&gt;height&lt;/code&gt; values from Step 5 and adjust accordingly.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;✅ The data appears current and accurate&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your report connects to a live data source, confirm the numbers and dates shown are up to date. &lt;/p&gt;

&lt;p&gt;If the data looks stale, your dataset may not be set up to refresh automatically. &lt;/p&gt;

&lt;p&gt;That is covered briefly in the next section and in more detail under best practices.&lt;/p&gt;




&lt;h3&gt;
  
  
  A Quick Note on Mobile
&lt;/h3&gt;

&lt;p&gt;While you are testing, pull out your phone and open the same page in your mobile browser. Power BI reports embedded via iFrame do not always adapt gracefully to small screens — particularly if you used fixed pixel values for width and height.&lt;/p&gt;

&lt;p&gt;If the report appears too small, too wide, or requires awkward zooming, go back and change your iFrame width to &lt;code&gt;width="100%"&lt;/code&gt;. That single adjustment resolves the majority of mobile display issues.&lt;/p&gt;

&lt;p&gt;Full mobile optimization is a deeper topic — one worth exploring as a next step once your embed is working well on desktop. For now, making it functional and reasonably visible on mobile is the right goal.&lt;/p&gt;




&lt;h3&gt;
  
  
  When Everything Checks Out
&lt;/h3&gt;

&lt;p&gt;If your report loads cleanly, displays correctly, responds to interaction, and requires no login — congratulations. Your embed is working exactly as intended.&lt;/p&gt;

&lt;p&gt;Your Power BI report is now live on the web. Accessible to anyone. &lt;/p&gt;

&lt;p&gt;On any device. Without requiring a single Power BI account.&lt;/p&gt;

&lt;p&gt;That is no small thing.&lt;/p&gt;




&lt;h2&gt;
  
  
  XI. Troubleshooting — When Things Don't Go as Expected
&lt;/h2&gt;

&lt;p&gt;Let's be honest. Technology does not always cooperate on the first try. Something looks wrong. The report is not showing. A message appears that you did not expect. &lt;/p&gt;

&lt;p&gt;It happens to everyone — beginners and the experienced users alike.&lt;/p&gt;

&lt;p&gt;This section is your calm, practical reference for the most common problems. No panic needed. Every issue listed here has a clear, workable solution.&lt;/p&gt;




&lt;h3&gt;
  
  
  How to Approach a Problem
&lt;/h3&gt;

&lt;p&gt;Before diving into specific fixes, adopt this simple mindset:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Every problem has a cause. Every cause has a fix. Your job is simply to identify which one you are dealing with — then apply the right solution.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Work through this section methodically. Read the symptom. Check the cause. Apply the fix. Test again.&lt;/p&gt;




&lt;h3&gt;
  
  
  Problem 1 — Blank White Box Where the Report Should Be
&lt;/h3&gt;

&lt;p&gt;You embedded the code. You published the page. But instead of your report, there is just an empty white rectangle staring back at you.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6elonkwktes6zbg94ej2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6elonkwktes6zbg94ej2.jpg" alt="composite image split into two clearly labeled panels side by side. Left panel: a browser showing a " width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Likely Causes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The iFrame code was copied incompletely — a character missing at the start or end&lt;/li&gt;
&lt;li&gt;The platform you are using restricts iFrame content by default&lt;/li&gt;
&lt;li&gt;A browser extension is blocking embedded content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Fixes to Try — In This Order:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go back to Power BI Service and re-copy the embed code from scratch — do not edit it manually&lt;/li&gt;
&lt;li&gt;Paste it fresh into a clean Custom HTML block or embed element&lt;/li&gt;
&lt;li&gt;Disable any ad-blocking or security browser extensions temporarily and reload the page&lt;/li&gt;
&lt;li&gt;Try viewing the page in a completely different browser&lt;/li&gt;
&lt;li&gt;Check your website platform's settings for iFrame or embed restrictions and enable them if available&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Problem 2 — "This Content is Blocked" Message
&lt;/h3&gt;

&lt;p&gt;Your browser is displaying a security warning inside the iFrame area instead of the report.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Likely Cause:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your browser's security settings are preventing third-party content from loading inside the page. Some corporate networks and strict browser configurations block iFrame content entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fixes to Try:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the page in a different browser — Chrome tends to be the most permissive for this&lt;/li&gt;
&lt;li&gt;Check if you are on a corporate or institutional network that filters external content — try on a personal network or mobile data connection instead&lt;/li&gt;
&lt;li&gt;If you manage the website server, ensure your site is running on &lt;strong&gt;HTTPS&lt;/strong&gt; — Power BI embeds will not load correctly on unsecured HTTP pages&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;This is one of the most commonly overlooked issues. A site running on HTTP instead of HTTPS will almost always block Power BI iFrame content. Check your address bar — it should show a padlock icon and begin with&lt;/em&gt; &lt;code&gt;https://&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Problem 3 — "You Need Permission to View This Report"
&lt;/h3&gt;

&lt;p&gt;A sign-in prompt or permission error appears instead of the report — even in incognito mode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Likely Cause:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The embed code was generated using the &lt;strong&gt;organizational embedding&lt;/strong&gt; option rather than &lt;strong&gt;Publish to Web (public)&lt;/strong&gt;. The report is set to require a Power BI login to view.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Return to your report in Power BI Service&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;File → Embed Report → Publish to Web (public)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Generate a fresh embed code&lt;/li&gt;
&lt;li&gt;Replace the old iFrame code on your webpage with the new one&lt;/li&gt;
&lt;li&gt;Test again in incognito mode&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This resolves the issue in virtually every case.&lt;/p&gt;




&lt;h3&gt;
  
  
  Problem 4 — Report is Showing Old or Outdated Data
&lt;/h3&gt;

&lt;p&gt;Your report is visible and loading correctly — but the data it shows is not current. Numbers are from last week. Dates are wrong. Something is clearly stale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Likely Cause:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your dataset in Power BI Service is not set to refresh automatically. When you published your report, it uploaded a snapshot of your data at that moment in time. Without a scheduled refresh, it stays frozen in time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Power BI Service, go to &lt;strong&gt;My Workspace&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Find your &lt;strong&gt;Dataset&lt;/strong&gt; — not the report, the dataset beneath it&lt;/li&gt;
&lt;li&gt;Click the three-dot menu beside it and select &lt;strong&gt;Settings&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Scheduled Refresh&lt;/strong&gt;, toggle it on and set a refresh frequency that suits your needs — hourly, daily, or weekly&lt;/li&gt;
&lt;li&gt;Save your settings&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note — scheduled refresh requires a Power BI Pro account and that your data source supports automatic refresh. Local Excel files, for example, cannot be refreshed automatically once uploaded. Cloud-based sources like SharePoint, SQL Server, or Google Sheets can.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Problem 5 — Report Appears Cut Off or Too Small
&lt;/h3&gt;

&lt;p&gt;The report is loading but it is cropped on one side, or it is tiny and hard to read.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Likely Cause:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;width&lt;/code&gt; and &lt;code&gt;height&lt;/code&gt; values in your iFrame code are too small for the content inside the report, or they are fixed pixel values that do not adapt to your page layout.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Return to the HTML where your iFrame code lives&lt;/li&gt;
&lt;li&gt;Change the width value to &lt;code&gt;width="100%"&lt;/code&gt; for a responsive, full-width display&lt;/li&gt;
&lt;li&gt;Increase the height value — try &lt;code&gt;height="800"&lt;/code&gt; or &lt;code&gt;height="900"&lt;/code&gt; for reports with multiple visuals stacked vertically&lt;/li&gt;
&lt;li&gt;Save and preview the page again&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Adjust incrementally until the report displays completely without scrollbars or cutoff edges.&lt;/p&gt;




&lt;h3&gt;
  
  
  Problem 6 — The Publish to Web Option is Missing From the Menu
&lt;/h3&gt;

&lt;p&gt;You clicked &lt;strong&gt;File → Embed Report&lt;/strong&gt; and the &lt;strong&gt;Publish to Web (public)&lt;/strong&gt; option simply is not there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Likely Cause:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your organization's Power BI administrator has disabled the Publish to Web feature for security or compliance reasons. This is common in corporate and institutional environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is not something you can resolve on your own. &lt;/p&gt;

&lt;p&gt;Contact your Power BI administrator and request that the feature be enabled for your account. &lt;/p&gt;

&lt;p&gt;If you are the administrator, the setting is found in the &lt;strong&gt;Power BI Admin Portal&lt;/strong&gt; under &lt;strong&gt;Tenant Settings → Export and Sharing Settings → Publish to Web&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Quick Reference Troubleshooting Table
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;Most Likely Cause&lt;/th&gt;
&lt;th&gt;First Fix to Try&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Blank white box&lt;/td&gt;
&lt;td&gt;Incomplete code or platform restriction&lt;/td&gt;
&lt;td&gt;Re-copy embed code from scratch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Content blocked message&lt;/td&gt;
&lt;td&gt;Browser security or HTTP site&lt;/td&gt;
&lt;td&gt;Switch browser or enable HTTPS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Permission or sign-in prompt&lt;/td&gt;
&lt;td&gt;Organizational embed used&lt;/td&gt;
&lt;td&gt;Regenerate using Publish to Web (public)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outdated data showing&lt;/td&gt;
&lt;td&gt;No scheduled refresh set&lt;/td&gt;
&lt;td&gt;Enable scheduled refresh on dataset&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Report cut off or tiny&lt;/td&gt;
&lt;td&gt;Fixed pixel dimensions too small&lt;/td&gt;
&lt;td&gt;Change to &lt;code&gt;width="100%"&lt;/code&gt;, increase height&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Publish to Web option missing&lt;/td&gt;
&lt;td&gt;Admin has disabled the feature&lt;/td&gt;
&lt;td&gt;Contact your Power BI administrator&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  XII. Best Practices — Do This, Not That
&lt;/h2&gt;

&lt;p&gt;You know how to publish. You know how to embed. You know how to troubleshoot. That already puts you ahead of most people attempting this for the first time.&lt;/p&gt;

&lt;p&gt;But knowing &lt;em&gt;how&lt;/em&gt; to do something and knowing how to do it &lt;em&gt;well&lt;/em&gt; are two different things. &lt;/p&gt;

&lt;p&gt;This section is the difference between a functional embed and a professional one.&lt;/p&gt;

&lt;p&gt;These are not rules. Think of them as hard-earned lessons — the kind that usually only come after making the mistake first.&lt;/p&gt;




&lt;h3&gt;
  
  
  1. Always Preview Before You Publish Live
&lt;/h3&gt;

&lt;p&gt;This sounds obvious. It gets skipped constantly.&lt;/p&gt;

&lt;p&gt;Before you hit publish on any page containing an embedded report, preview it in your browser. Then preview it in incognito mode. Then check it on your phone.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;A broken embed on a live page is visible to every visitor the moment they arrive. A broken embed in preview costs you nothing but thirty seconds.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Make the preview step non-negotiable. Every single time.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Never Embed Sensitive Data Using the Public Method
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Publish to Web (public)&lt;/strong&gt; means exactly what it says — &lt;em&gt;anyone on the internet can view that report&lt;/em&gt;. No login. No restriction. No barrier of any kind.&lt;/p&gt;

&lt;p&gt;That is powerful. It is also a serious responsibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never use public embedding for reports containing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personal identifiable information — names, addresses, ID numbers&lt;/li&gt;
&lt;li&gt;Financial records — salaries, account balances, transaction details&lt;/li&gt;
&lt;li&gt;Medical or health-related data&lt;/li&gt;
&lt;li&gt;Confidential business intelligence — unreleased figures, internal forecasts&lt;/li&gt;
&lt;li&gt;Any data that could cause harm if seen by the wrong person&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For sensitive reports, always use &lt;strong&gt;organizational embedding&lt;/strong&gt; instead. It requires viewers to authenticate with a Power BI account before the report loads — keeping your data protected.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;When in doubt, ask yourself this: "Would I be comfortable if this data appeared on the front page of a newspaper?" If the answer is no — do not embed it publicly.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  3. Use Percentage-Based Width for Better Responsiveness
&lt;/h3&gt;

&lt;p&gt;You saw this in Step 5. It is worth repeating here because it makes such a visible difference.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;width="800"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fixed — may overflow on small screens, leaving empty space on large ones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;width="100%"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Flexible — fills its container naturally at every screen size&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Default to &lt;code&gt;width="100%"&lt;/code&gt; unless you have a specific reason to use fixed dimensions. Your report will look cleaner on desktop, tablet, and mobile without any additional effort.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Set Up Scheduled Data Refresh
&lt;/h3&gt;

&lt;p&gt;A report showing last month's data is not a live report. It is a photograph of one.&lt;/p&gt;

&lt;p&gt;If your Power BI report connects to a data source that updates regularly — a database, a SharePoint list, a cloud spreadsheet — set up a &lt;strong&gt;scheduled refresh&lt;/strong&gt; in Power BI Service so your embedded report always reflects current information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick reminder on how:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;My Workspace&lt;/strong&gt; in Power BI Service&lt;/li&gt;
&lt;li&gt;Find your &lt;strong&gt;Dataset&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click the three-dot menu → &lt;strong&gt;Settings&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;Scheduled Refresh&lt;/strong&gt; and set your preferred frequency&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your visitors will always see fresh, accurate data. That is what makes an embedded report genuinely useful rather than merely decorative.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Keep Your Workspace Organized
&lt;/h3&gt;

&lt;p&gt;This becomes important faster than you expect. Publish two or three reports and your workspace can start to feel cluttered — datasets, reports, and dashboards all listed together without clear labeling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simple habits that save time later:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give every report a clear, descriptive name before publishing — not "Report 1" or "Final Final v3"&lt;/li&gt;
&lt;li&gt;Use separate workspaces for separate projects if you have Pro access&lt;/li&gt;
&lt;li&gt;Delete old or test embed codes you are no longer using — Power BI Service lets you manage these under &lt;strong&gt;File → Embed Report → Publish to Web (public) → Manage Embed Codes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A tidy workspace means faster updates, less confusion, and no accidental edits to the wrong report.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. Revisit and Re-Test After Every Major Report Update
&lt;/h3&gt;

&lt;p&gt;When you make significant changes to your Power BI report in Desktop and republish it, the embed code itself does not change — the same iFrame code continues to point to the same report location in the cloud. That is convenient.&lt;/p&gt;

&lt;p&gt;However, layout changes, new pages, resized visuals, or added filters can all affect how the report displays within your existing iFrame dimensions. Always re-test your embedded page after a major update.&lt;/p&gt;

&lt;p&gt;Specifically check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Nothing is cut off with the existing height setting&lt;/li&gt;
&lt;li&gt;✅ New report pages or tabs are accessible within the embed&lt;/li&gt;
&lt;li&gt;✅ Any new interactive elements — slicers, drill-throughs — work correctly&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  7. Use Descriptive iFrame Titles for Accessibility
&lt;/h3&gt;

&lt;p&gt;Remember the &lt;code&gt;title=""&lt;/code&gt; attribute inside your iFrame code? Most people leave it as the default or ignore it entirely.&lt;/p&gt;

&lt;p&gt;That attribute exists for &lt;strong&gt;screen readers&lt;/strong&gt; — the tools used by visually impaired visitors to navigate webpages. A descriptive title like &lt;code&gt;title="Quarterly Sales Performance Report"&lt;/code&gt; tells screen readers exactly what the frame contains, making your content accessible to a wider audience.&lt;/p&gt;

&lt;p&gt;It takes five seconds to update. It makes a meaningful difference to people who rely on assistive technology.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;iframe&lt;/span&gt; 
  &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Quarterly Sales Performance Report"&lt;/span&gt;
  &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"100%"&lt;/span&gt; 
  &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"700"&lt;/span&gt; 
  &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://app.powerbi.com/view?r=xxxxxxxxxxxx"&lt;/span&gt; 
  &lt;span class="na"&gt;frameborder=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt; 
  &lt;span class="na"&gt;allowFullScreen=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Small effort. Real impact.&lt;/p&gt;




&lt;h3&gt;
  
  
  8. Consider Your Page Load Speed
&lt;/h3&gt;

&lt;p&gt;iFrames add external content to your page — and external content takes time to load. A heavy Power BI report with many visuals and a large dataset can noticeably slow down your webpage, particularly on mobile connections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A few ways to manage this:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Place the embedded report lower on the page — below your main content — so the page loads quickly for visitors before the report begins rendering&lt;/li&gt;
&lt;li&gt;Simplify your report where possible — fewer visuals per page means faster loading&lt;/li&gt;
&lt;li&gt;Avoid embedding multiple Power BI reports on the same webpage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your visitors' first impression of your page is formed in the first two seconds. Make sure those two seconds are fast.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbpr0te63h08clz0xsylh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbpr0te63h08clz0xsylh.jpg" alt="displaying eight numbered best practice items as a visual reference card" width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;zzz&lt;br&gt;
13.&lt;/p&gt;

&lt;h2&gt;
  
  
  XIII. Conclusion — You Opened the Door. Now Walk Through It.
&lt;/h2&gt;

&lt;p&gt;Something shifted today.&lt;/p&gt;

&lt;p&gt;You did not just learn a technical process. You dismantled a wall — the invisible one that sits between powerful data and the people who need to see it. &lt;/p&gt;

&lt;p&gt;That wall has stopped countless analysts, business owners, students, and creators from sharing work that genuinely deserved an audience.&lt;/p&gt;

&lt;p&gt;You walked straight through it.&lt;/p&gt;




&lt;h3&gt;
  
  
  Think About What Just Happened
&lt;/h3&gt;

&lt;p&gt;A few moments ago — or a few focused hours ago — you had a report trapped on your computer. &lt;/p&gt;

&lt;p&gt;Beautiful, accurate, useful. And completely invisible to the world.&lt;/p&gt;

&lt;p&gt;Now?&lt;/p&gt;

&lt;p&gt;It is live. It is interactive. It is accessible to anyone, anywhere, on any device, at any hour, without a single prerequisite on their end. &lt;/p&gt;

&lt;p&gt;No software to install. No account to create. No email attachment to open. No screen-share call to schedule.&lt;/p&gt;

&lt;p&gt;Just a webpage. And your data, breathing inside it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;That is not a small feat. That is the difference between data that informs and data that transforms.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  The Road You Travelled
&lt;/h3&gt;

&lt;p&gt;You did not skip steps. You did not cut corners. You followed the full journey — and that matters more than most people realize.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;What It Represented&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Built and verified the report&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Respecting your audience before they ever arrive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Published to Power BI Service&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Giving your work a permanent home in the cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Generated the embed code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Unlocking the door between your data and the world&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Understood the iFrame code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Owning the process — not just following it blindly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Embedded it on your webpage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Placing your work exactly where it belongs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tested it like a visitor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Seeing through someone else's eyes before they arrive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Learned to troubleshoot&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Building the confidence to fix what breaks — because things always break&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Every step meant something. Every step made the next one possible.&lt;/p&gt;




&lt;h3&gt;
  
  
  What You Actually Built Today
&lt;/h3&gt;

&lt;p&gt;Here is what most tutorials will never tell you.&lt;/p&gt;

&lt;p&gt;The iFrame is not the point. The embed code is not the point. Power BI Service is not the point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The point is access.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The point is that someone — a colleague reviewing last quarter's numbers, a client checking their project metrics, a student exploring public data for the first time, a visitor landing on your portfolio at midnight from the other side of the world — can now see exactly what you built. &lt;/p&gt;

&lt;p&gt;Interact with it. &lt;/p&gt;

&lt;p&gt;Understand something because of it.&lt;/p&gt;

&lt;p&gt;That is what data is for. Not to sit in files. Not to live in tools. Not to exist only for the people who built it.&lt;/p&gt;

&lt;p&gt;Data exists to be understood. You just made yours understandable.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Most people who build great reports never share them effectively. You are no longer most people.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Where the Road Goes Next
&lt;/h3&gt;

&lt;p&gt;You have earned the right to be curious about what comes next. Here are three paths worth walking when you are ready — each one a natural extension of what you have already learned.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🔐 Row-Level Security — Personalized Data for Every Viewer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine the same report showing different data to different people. A regional manager sees only their region. A client sees only their account. A department head sees only their team.&lt;/p&gt;

&lt;p&gt;Row-Level Security makes that possible. One report. Infinite personalization. Your next mountain to climb.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🔄 Scheduled Data Refresh — A Report That Never Goes Stale&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A report showing yesterday's data is history. A report showing today's data is intelligence. Scheduled refresh connects your embed to live, automatically updating data sources — so your webpage always reflects the present moment without you lifting a finger.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🏢 Power BI Premium — Enterprise-Grade Embedding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For organizations that need authenticated, secure, deeply customized embedding built into their own applications — Power BI Premium and the Embedded API open a world far beyond iFrames. Developer territory, yes. But the foundation you built today points directly toward it.&lt;/p&gt;




&lt;h3&gt;
  
  
  One Last Thing Before You Go
&lt;/h3&gt;

&lt;p&gt;Close this guide. Open Power BI Desktop. Open your report.&lt;/p&gt;

&lt;p&gt;Do not wait until it is perfect. Do not wait until you feel completely ready. Do not wait for a better time that may never quite arrive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Publish it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Embed it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Share the link.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Right now — while the steps are fresh, while the confidence is hot, while the momentum is yours to keep.&lt;/p&gt;

&lt;p&gt;Because here is the truth about learning something new. The guides, the steps, the screenshots, the explanations — none of it fully belongs to you until you do it yourself, without anyone holding your hand, and watch it work.&lt;/p&gt;

&lt;p&gt;That moment — when your report loads on your webpage in an incognito window and you realize you did that — is the moment this becomes a skill and not just a memory of something you once read.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Go get that moment. You have earned it.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Thank You for Following Along
&lt;/h3&gt;

&lt;p&gt;Technical writing exists for one reason — to make the complex feel possible. If something in this guide clicked for you. If one analogy made something land. If one step saved you an hour of frustration. Then this guide did exactly what it was supposed to do.&lt;/p&gt;

&lt;p&gt;Your data deserved to be seen.&lt;/p&gt;

&lt;p&gt;Now it is.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Your Next Move Starts Here
&lt;/h2&gt;

&lt;p&gt;Reading this guide was step one. Doing it is step two. Do not let step two wait.&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ Take Action Right Now
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;If you are ready to publish your first report:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Open Power BI Desktop right now. Your &lt;code&gt;.pbix&lt;/code&gt; file is waiting. Follow the seven steps in this guide — start to finish — and have your report live on the web before you close your browser today. Not someday. Today.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;If you found this guide helpful:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Share it with someone who is sitting on a Power BI report they have never published. A colleague. A classmate. A fellow analyst drowning in data that nobody else can see. One share could be the reason someone finally gets their work in front of the audience it deserves.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;If you got stuck somewhere along the way:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Drop your question in the comments below. Describe exactly where things went sideways — which step, what you saw, what you expected. No question is too basic. Every question helps someone else who is stuck in the exact same place but too afraid to ask.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;If you want to go deeper:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Subscribe so you do not miss next level topics when they land.&lt;br&gt;
Each one is a guide in its own right. Each one builds directly on the foundation you laid today. &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  💬 One Little Ask
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;If this guide took you from confused to confident — if something clicked that never clicked before — take thirty seconds and leave a comment below telling us where you got stuck before and what finally made it make sense.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Your experience is a breakthrough for someone else waiting to happen.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Data deserves to be seen. So does the work that goes into explaining it. Thank you for reading — now go build something worth sharing.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;Article complete. Introduction rewritten. Conclusion memorable. CTA clear, strong, and multi-directional — covering action takers, sharers, strugglers, and growth seekers all in one unified close.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ready to compile the full article, format it for your target platform, or begin the next piece whenever you are.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;=================================================================&lt;/p&gt;

&lt;h2&gt;
  
  
  XIII. Conclusion — You Did It. Now What?
&lt;/h2&gt;

&lt;p&gt;Take a moment. Seriously.&lt;/p&gt;

&lt;p&gt;You started this guide with a Power BI report sitting quietly on your computer — visible only to you, useful only in theory. Now that same report is live on the web. &lt;/p&gt;

&lt;p&gt;Interactive. &lt;/p&gt;

&lt;p&gt;Accessible to anyone, anywhere, on any device. No developer hired. No complicated code written. &lt;/p&gt;

&lt;p&gt;No guesswork.&lt;/p&gt;

&lt;p&gt;That is a genuine skill you have built today.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Journey You Just Completed
&lt;/h3&gt;

&lt;p&gt;Let's walk the full path one final time — not to repeat what you already know, but to let it land as the cohesive, logical process it always was.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stage&lt;/th&gt;
&lt;th&gt;What You Did&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1. Built It&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Created a Power BI report in Desktop and confirmed it was ready&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2. Published It&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sent the report to Power BI Service — your cloud home base&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3. Verified It&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Confirmed the report rendered correctly before touching embed settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4. Generated the Code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Used Publish to Web to create a live iFrame embed code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;5. Understood the Code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Broke down every attribute so nothing felt like a black box&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;6. Embedded It&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Placed the code on your webpage — WordPress, Wix, or raw HTML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;7. Tested It&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Verified the live embed through an incognito window like a real visitor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Seven steps. One complete, working solution.&lt;/p&gt;




&lt;h3&gt;
  
  
  What Makes This Powerful
&lt;/h3&gt;

&lt;p&gt;Most people who build great reports never share them effectively. The data stays locked inside a tool that only they can access. &lt;/p&gt;

&lt;p&gt;Insights go unseen. &lt;/p&gt;

&lt;p&gt;Decisions get made without the information that could have improved them.&lt;/p&gt;

&lt;p&gt;You have changed that dynamic entirely.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;An embedded Power BI report is not just a visual on a webpage. It is a live, breathing data resource — one that updates automatically, responds to interaction, and communicates information clearly to people who need it.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That has real value. In a business context. In an academic setting. In a personal portfolio. &lt;/p&gt;

&lt;p&gt;Anywhere data matters — which is everywhere.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxi4n2hsrn5x053qigpy3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxi4n2hsrn5x053qigpy3.png" alt="clean, beautifully composed final image — a polished professional webpage displayed in a browser" width="800" height="621"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Where to Go From Here
&lt;/h3&gt;

&lt;p&gt;You are no longer a beginner at this. But there is always a next level. Here are three directions worth exploring when you are ready — each one building naturally on what you have already learned.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;📌 Row-Level Security (RLS)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What if you want different viewers to see different data within the same report? A regional manager seeing only their region's numbers. A client seeing only their account data.&lt;/p&gt;

&lt;p&gt;Row-Level Security lets you control exactly that — filtering what each viewer sees based on who they are. It is a powerful feature that transforms a single report into a personalized experience for every user.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🔄 Scheduled Automatic Data Refresh&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You touched on this in the best practices section. Going deeper means connecting Power BI to live cloud data sources — SQL databases, SharePoint lists, Google Sheets, APIs — and configuring refresh schedules so your embedded report always reflects the most current information without any manual intervention.&lt;/p&gt;

&lt;p&gt;A truly live dashboard. Fully automated.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🏢 Power BI Premium and Advanced Embedding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For organizations that need authenticated embedding — reports that require login but are embedded in custom web applications rather than just iFrames — Power BI Premium and the Power BI Embedded API open up a much deeper set of capabilities.&lt;/p&gt;

&lt;p&gt;This is developer territory. But knowing it exists means you know where the ceiling is — and that there is a path through it when you are ready.&lt;/p&gt;




&lt;h3&gt;
  
  
  Your Next Action — Right Now
&lt;/h3&gt;

&lt;p&gt;Do not let the momentum stop here.&lt;/p&gt;

&lt;p&gt;Open Power BI Desktop. Open your report. Follow the seven steps. Get it live.&lt;/p&gt;

&lt;p&gt;Not tomorrow. Not when things are perfect. &lt;strong&gt;Today.&lt;/strong&gt; The process is fresh in your mind right now and that is the best possible time to put it into practice.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The best way to truly learn something is to do it once on your own — without a guide holding your hand. You have everything you need.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  A Final Thought
&lt;/h3&gt;

&lt;p&gt;Technical skills feel intimidating from the outside. Complex, jargon-filled, gatekept by people who seem to have been born knowing this stuff. But every skill — including this one — breaks down into a series of logical, learnable steps.&lt;/p&gt;

&lt;p&gt;You just proved that.&lt;/p&gt;




&lt;h4&gt;
  
  
  🤔 &lt;em&gt;Here Is Something Worth Thinking About&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;You now know how to embed a Power BI report on any webpage in the world. No login required. No software needed. Just a browser and a link.&lt;/p&gt;

&lt;p&gt;That is a genuinely powerful thing to be able to do.&lt;br&gt;
But here is the question nobody asks until they have already done it —&lt;/p&gt;

&lt;p&gt;What are you going to do with it?&lt;/p&gt;

&lt;p&gt;A public sales dashboard? A live project tracker for a client? &lt;/p&gt;

&lt;p&gt;A data portfolio that proves your analytical skills better than any resume ever could? &lt;/p&gt;

&lt;p&gt;A community resource that gives your audience something real to interact with?&lt;/p&gt;

&lt;p&gt;The embed is just the beginning. What comes next is fully in your hands.&lt;/p&gt;

&lt;p&gt;👇 Tell us in the comments — what report are you planning to embed, and who is the audience you are finally going to share it with?&lt;/p&gt;




</description>
      <category>webdev</category>
      <category>powerbi</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>"Your Data Is Talking. . . Is Power BI Listening?"</title>
      <dc:creator>Amailuk Joseph</dc:creator>
      <pubDate>Tue, 31 Mar 2026 19:21:47 +0000</pubDate>
      <link>https://dev.to/amailuk/your-data-is-talking-is-power-bi-listening-aam</link>
      <guid>https://dev.to/amailuk/your-data-is-talking-is-power-bi-listening-aam</guid>
      <description>&lt;h2&gt;
  
  
  Understanding Data Modeling in Power BI: Joins, Relationships, and Schemas Explained
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;A plain-English guide to the concepts that make your reports actually make sense.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu47ok4955homaezfg3hq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu47ok4955homaezfg3hq.jpg" alt="A split-screen illustration showing two contrasting states:&amp;lt;br&amp;gt;
LEFT SIDE — a chaotic mess of disconnected spreadsheet tabs, arrows going nowhere, confused-looking charts with question marks. Label: " width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Your Report Looks Fine. BUT... your Model Is Lying to You.
&lt;/h2&gt;

&lt;p&gt;The numbers add up. The chart renders. The dashboard looks exactly like what your manager asked for.&lt;/p&gt;

&lt;p&gt;Then someone changes the date slicer — and three visuals stop responding. &lt;/p&gt;

&lt;p&gt;A colleague filters by region — and the revenue total doubles. &lt;/p&gt;

&lt;p&gt;You add one more table — and nothing makes sense anymore.&lt;/p&gt;

&lt;p&gt;The visuals did not break. &lt;strong&gt;The model underneath them was never right to begin with.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the silent killer of Power BI reports. &lt;br&gt;
Not bad data. &lt;br&gt;
Not weak DAX. &lt;br&gt;
Not a missing chart type. &lt;/p&gt;

&lt;p&gt;A model that was never properly built — because nobody showed you how, and Power BI lets you skip that step entirely.&lt;/p&gt;

&lt;p&gt;Until the cracks show.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Step Most Tutorials Skip
&lt;/h3&gt;

&lt;p&gt;Search "Power BI tutorial" right now. Every top result goes straight to visuals — drag a field, pick a chart, add a slicer, publish. &lt;/p&gt;

&lt;p&gt;Done.&lt;/p&gt;

&lt;p&gt;What they skip is the 20 minutes of work that determines whether any of those visuals will ever, be trustworthy: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the data model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;How your tables connect. What role each one plays. Which relationships are active. Which schema holds the whole thing together. &lt;/p&gt;

&lt;p&gt;That invisible structure is why one report scales and another collapses. &lt;/p&gt;

&lt;p&gt;Why one analyst's numbers are always right and another's are always &lt;em&gt;almost&lt;/em&gt; right.&lt;/p&gt;

&lt;p&gt;The difference is not talent. It is the model.&lt;/p&gt;


&lt;h3&gt;
  
  
  What You Will Walk Away With
&lt;/h3&gt;

&lt;p&gt;This is not a survey of concepts. It is a complete, ground-up guide — written for anyone who has heard the words "data modeling" and felt the floor shift slightly under their feet.&lt;/p&gt;

&lt;p&gt;By the end you will be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explain data modeling&lt;/strong&gt; in plain English — to yourself and to others&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use all six SQL joins&lt;/strong&gt; — knowing exactly which one to reach for and why&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build relationships in Power BI&lt;/strong&gt; with full control over cardinality, direction, and behavior&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose the right schema&lt;/strong&gt; — Star, Snowflake, or Flat Table — without guessing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handle role-playing dimensions&lt;/strong&gt; the way professionals do&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spot and fix the most common modeling mistakes&lt;/strong&gt; before they corrupt a report&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build a complete Star Schema&lt;/strong&gt; from four raw tables — step by step, from zero&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We go from &lt;em&gt;"I've heard of Power BI"&lt;/em&gt; to &lt;em&gt;"I can model data with confidence"&lt;/em&gt; — and we do it in plain language, with real examples, at every step.&lt;/p&gt;

&lt;p&gt;No jargon gates. &lt;br&gt;
No assumed knowledge. &lt;br&gt;
No skipped steps.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxc1q8faxoia87m3lz1t2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxc1q8faxoia87m3lz1t2.jpg" alt="Horizontal roadmap showing 8 numbered stops, each with a small icon representing the topic" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Here Is What We Are Going To Cover
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stop&lt;/th&gt;
&lt;th&gt;Topic&lt;/th&gt;
&lt;th&gt;What You Will Learn&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;What Is Data Modeling?&lt;/td&gt;
&lt;td&gt;The foundation everything else builds on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;SQL Joins&lt;/td&gt;
&lt;td&gt;How data combines — all 6 joins explained&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Fact vs. Dimension Tables&lt;/td&gt;
&lt;td&gt;The two roles your tables play&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Power BI Relationships&lt;/td&gt;
&lt;td&gt;How to connect tables the right way&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Schemas&lt;/td&gt;
&lt;td&gt;Star, Snowflake, Flat Table — and when to use each&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Role-Playing Dimensions&lt;/td&gt;
&lt;td&gt;One table, many jobs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Common Modeling Mistakes&lt;/td&gt;
&lt;td&gt;The traps and how to dodge them&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Build Your First Model&lt;/td&gt;
&lt;td&gt;A full walkthrough from zero to hero&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;p&gt;One thing before we start.&lt;/p&gt;

&lt;p&gt;Data modeling is one of those subjects where the first explanation you receive tends to shape everything that follows. &lt;/p&gt;

&lt;p&gt;A bad one makes it feel harder than it is. A good one makes you wonder why it ever seemed complicated.&lt;/p&gt;

&lt;p&gt;That is the only goal here.&lt;/p&gt;

&lt;p&gt;Let us get into it.&lt;/p&gt;


&lt;h2&gt;
  
  
  Section 1: What Is Data Modeling?
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Think of It Like Organizing a Kitchen Before You Cook
&lt;/h3&gt;

&lt;p&gt;Imagine two kitchens.&lt;/p&gt;

&lt;p&gt;In the first one, ingredients are everywhere. Flour is next to the dish soap. The eggs are behind the blender. Nothing is labeled. You &lt;em&gt;could&lt;/em&gt; cook in there — but every meal starts with a 20-minute search.&lt;/p&gt;

&lt;p&gt;In the second kitchen, everything has a place. Spices are grouped. The fridge is stocked logically. You walk in, and cooking just flows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data modeling is how you turn the first kitchen into the second — before you cook a single report.&lt;/strong&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  So What Exactly Is It?
&lt;/h3&gt;

&lt;p&gt;Data modeling is the process of deciding &lt;strong&gt;how your tables connect, what role each one plays, and how they talk to each other&lt;/strong&gt; inside Power BI.&lt;/p&gt;

&lt;p&gt;It is not about the visuals. It is not about colors or charts. It is the invisible structure that makes everything on the surface work correctly.&lt;/p&gt;

&lt;p&gt;When your data is modeled well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Filters flow across tables the way you expect&lt;/li&gt;
&lt;li&gt;Numbers calculate correctly without hacks&lt;/li&gt;
&lt;li&gt;Your report scales without breaking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When it is not modeled? Your slicer filters one table and ignores the rest. Your totals are wrong. Your date table does nothing.&lt;/p&gt;

&lt;p&gt;The visuals did not fail you. The model did.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fabr0op549ld8uaqtolka.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fabr0op549ld8uaqtolka.jpg" alt="LEFT: Split Image -- LEFT: Three disconnected tables floating separately with no connection between them. Label: " width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Where Does This Happen in Power BI?
&lt;/h3&gt;

&lt;p&gt;Power BI gives you three workspaces. Each one has a job:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;View&lt;/th&gt;
&lt;th&gt;What You Do Here&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Power Query Editor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Clean and shape your data before it loads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model View&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Connect your tables — this is where modeling lives&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Report View&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Build visuals on top of your model&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Most beginners skip straight to Report View. That is the first mistake.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model View is your kitchen layout tool.&lt;/strong&gt; It is where you draw the lines between tables, define how they relate, and set the rules that every visual on every page will follow.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4z93182fdqrz7cado5d5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4z93182fdqrz7cado5d5.jpg" alt="annotated illustration of Power BI's Model View. Shows 4 tables connected by relationship lines." width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  The One Sentence That Changes How You See Power BI
&lt;/h3&gt;

&lt;p&gt;Here it is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Your reports are only as smart as the model underneath them.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A well-built model makes DAX easier, reports faster, and dashboards that actually answer the right questions. A broken model creates workarounds that stack on top of each other until the whole thing collapses.&lt;/p&gt;

&lt;p&gt;You do not need to be an expert to model data well. You need to understand a handful of core concepts — and that is exactly what the rest of this article covers.&lt;/p&gt;


&lt;h2&gt;
  
  
  Section 2: SQL Joins — Basically, Who Gets to Sit at the Table?
&lt;/h2&gt;

&lt;p&gt;Before Power BI can model anything, your data has to be in the right shape.&lt;/p&gt;

&lt;p&gt;Sometimes that means combining two tables into one. That is what a &lt;strong&gt;join&lt;/strong&gt; really does.&lt;/p&gt;

&lt;p&gt;A join answers one question: &lt;strong&gt;when two tables share a common column, which rows make the cut?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The answer depends on which join you use. There are six of them. Each one has a different rule about who gets included — and who's left out.&lt;/p&gt;


&lt;h3&gt;
  
  
  The Setup — One Analogy, Six Outcomes
&lt;/h3&gt;

&lt;p&gt;We will use the same scenario for every join so the differences are crystal clear.&lt;/p&gt;

&lt;p&gt;You are running a small online store. You have two tables:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table A — Orders&lt;/strong&gt; (what customers bought)&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Product&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;td&gt;C01&lt;/td&gt;
&lt;td&gt;Laptop&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1002&lt;/td&gt;
&lt;td&gt;C02&lt;/td&gt;
&lt;td&gt;Mouse&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1003&lt;/td&gt;
&lt;td&gt;C03&lt;/td&gt;
&lt;td&gt;Keyboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1004&lt;/td&gt;
&lt;td&gt;C04&lt;/td&gt;
&lt;td&gt;Monitor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Table B — Customers&lt;/strong&gt; (who your customers are)&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;CustomerName&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;C01&lt;/td&gt;
&lt;td&gt;Andrea&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C02&lt;/td&gt;
&lt;td&gt;Brian&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C03&lt;/td&gt;
&lt;td&gt;Carmen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C05&lt;/td&gt;
&lt;td&gt;David&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice: &lt;strong&gt;C04 placed an order but is not in the Customers table.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;On the other hand, David (C05) is a registered customer but has no order.&lt;/p&gt;

&lt;p&gt;These two mismatches are exactly what makes each join behave differently.&lt;/p&gt;


&lt;h3&gt;
  
  
  1. INNER JOIN — Only the Matches Show Up. . .
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The rule:&lt;/strong&gt; Return rows that exist in &lt;em&gt;both&lt;/em&gt; tables. &lt;/p&gt;

&lt;p&gt;No match? &lt;/p&gt;

&lt;p&gt;No row.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real life:&lt;/strong&gt; You are hosting a dinner party. Only guests who both RSVP'd &lt;em&gt;and&lt;/em&gt; show up get a seat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Product&lt;/th&gt;
&lt;th&gt;CustomerName&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;td&gt;C01&lt;/td&gt;
&lt;td&gt;Laptop&lt;/td&gt;
&lt;td&gt;Andrea&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1002&lt;/td&gt;
&lt;td&gt;C02&lt;/td&gt;
&lt;td&gt;Mouse&lt;/td&gt;
&lt;td&gt;Brian&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1003&lt;/td&gt;
&lt;td&gt;C03&lt;/td&gt;
&lt;td&gt;Keyboard&lt;/td&gt;
&lt;td&gt;Carmen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;C04's order disappears — no matching customer. David disappears — no matching order. Only the overlap survives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use it when:&lt;/strong&gt; You only want clean, fully matched records.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8t3is8xb8y8c60aiw3t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8t3is8xb8y8c60aiw3t.jpg" alt="Two overlapping circles (Ven-Diagram) showing the intersection matching" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  3. RIGHT JOIN — Everyone From the Right, With Matches From the Left
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The rule:&lt;/strong&gt; The mirror version of a Left Join. &lt;/p&gt;

&lt;p&gt;Return &lt;em&gt;all&lt;/em&gt; rows from the right table. Matches from the left if available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real life:&lt;/strong&gt; Every customer is listed. If they placed an order — great. If not, they appear with a blank order.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Product&lt;/th&gt;
&lt;th&gt;CustomerName&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;td&gt;C01&lt;/td&gt;
&lt;td&gt;Laptop&lt;/td&gt;
&lt;td&gt;Andrea&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1002&lt;/td&gt;
&lt;td&gt;C02&lt;/td&gt;
&lt;td&gt;Mouse&lt;/td&gt;
&lt;td&gt;Brian&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1003&lt;/td&gt;
&lt;td&gt;C03&lt;/td&gt;
&lt;td&gt;Keyboard&lt;/td&gt;
&lt;td&gt;Carmen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;(blank)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;C05&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(blank)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;David&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;David now appears — he is in the right table. C04 is gone — no customer record on the right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use it when:&lt;/strong&gt; Your right table is the priority and the left is supplementary.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Honest note:&lt;/strong&gt; In practice, most analysts reorder their tables and use a Left Join instead of a Right Join. The result is identical — it is just easier to reason about "all rows from my main table."&lt;/p&gt;
&lt;/blockquote&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs9ikik7hge51g4eh44fb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs9ikik7hge51g4eh44fb.jpg" alt="RIGHT JOIN VENN DIAGRAM - Same two circles. This time the ENTIRE right circle is highlighted." width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  4. FULL OUTER JOIN — Nobody Gets Left Out, Its A Party!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The rule:&lt;/strong&gt; Return &lt;em&gt;all&lt;/em&gt; rows from both tables. Match where possible. Fill blanks everywhere else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real life:&lt;/strong&gt; The most inclusive guest list under the sun. Every order and every customer appears — matched or not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Product&lt;/th&gt;
&lt;th&gt;CustomerName&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;td&gt;C01&lt;/td&gt;
&lt;td&gt;Laptop&lt;/td&gt;
&lt;td&gt;Andrea&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1002&lt;/td&gt;
&lt;td&gt;C02&lt;/td&gt;
&lt;td&gt;Mouse&lt;/td&gt;
&lt;td&gt;Brian&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1003&lt;/td&gt;
&lt;td&gt;C03&lt;/td&gt;
&lt;td&gt;Keyboard&lt;/td&gt;
&lt;td&gt;Carmen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1004&lt;/td&gt;
&lt;td&gt;C04&lt;/td&gt;
&lt;td&gt;Monitor&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(blank)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;(blank)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;C05&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(blank)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;David&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Both the unmatched order (C04) and the unmatched customer (David) appear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use it when:&lt;/strong&gt; You need a complete picture — every record from both sides, matched or not. Great for auditing data gaps.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwxlxh7rcq8l96rggbde.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwxlxh7rcq8l96rggbde.jpg" alt="FULL OUTER JOIN VENN DIAGRAM - Both circles fully highlighted — left, overlap, and right sections all filled." width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  5. LEFT ANTI JOIN — Left-Side Loners Only
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The rule:&lt;/strong&gt; Return rows from the left table that have &lt;em&gt;no match&lt;/em&gt; on the right. Matched rows are excluded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real life:&lt;/strong&gt; Find every order that has no customer record. These are your data gaps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;Product&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1004&lt;/td&gt;
&lt;td&gt;C04&lt;/td&gt;
&lt;td&gt;Monitor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Only C04 appears — the one order with no matching customer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use it when:&lt;/strong&gt; You are hunting for missing or unmatched records. A data quality goldmine.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i7abhzvzxy1yhk8kkoa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i7abhzvzxy1yhk8kkoa.png" alt="Only the LEFT NON-OVERLAPPING section is highlighted showing left anti-join" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  6. RIGHT ANTI JOIN — Right-Side Loners Only
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The rule:&lt;/strong&gt; The mirror version of the Left Anti. Return rows from the right table with &lt;em&gt;no match&lt;/em&gt; on the left.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real life:&lt;/strong&gt; Find every customer who has never placed an order.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;CustomerName&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;C05&lt;/td&gt;
&lt;td&gt;David&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Only David appears — registered but never ordered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use it when:&lt;/strong&gt; You want to find records that exist on one side but are completely absent from the other. Useful for finding inactive users, unassigned records, or orphaned data.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjekzfcu5hg2fq0uklrh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftjekzfcu5hg2fq0uklrh.png" alt="RIGHT ANTI JOIN VENN DIAGRAM&amp;lt;br&amp;gt;
Two circles. Only the RIGHT NON-OVERLAPPING section is highlighted to show right anti-join" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  All Six Joins at a Glance
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Join Type&lt;/th&gt;
&lt;th&gt;What It Returns&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;INNER&lt;/td&gt;
&lt;td&gt;Matched rows only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LEFT&lt;/td&gt;
&lt;td&gt;All left rows + matched right rows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RIGHT&lt;/td&gt;
&lt;td&gt;All right rows + matched left rows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FULL OUTER&lt;/td&gt;
&lt;td&gt;Everything from both sides&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LEFT ANTI&lt;/td&gt;
&lt;td&gt;Left rows with NO match on the right&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RIGHT ANTI&lt;/td&gt;
&lt;td&gt;Right rows with NO match on the left&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cej00l5iuut29939qb3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cej00l5iuut29939qb3.png" alt="single clean graphic showing all 6 Venn diagrams side by side in two rows of three" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  How to Do This in Power BI
&lt;/h3&gt;

&lt;p&gt;Joins in Power BI live inside &lt;strong&gt;Power Query&lt;/strong&gt;, under the &lt;strong&gt;Merge Queries&lt;/strong&gt; feature. Here is how to use it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Open Power Query&lt;/strong&gt;&lt;br&gt;
In Power BI Desktop, click &lt;strong&gt;Transform Data&lt;/strong&gt; in the Home ribbon. Power Query Editor opens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Select your primary table&lt;/strong&gt;&lt;br&gt;
In the Queries panel on the left, click the table you want as your &lt;em&gt;left&lt;/em&gt; table — in our example, &lt;strong&gt;Orders&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 — Open Merge Queries&lt;/strong&gt;&lt;br&gt;
In the Home ribbon, click &lt;strong&gt;Merge Queries&lt;/strong&gt;. A dialog box opens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 — Configure the merge&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The top section shows your left table (Orders).&lt;/li&gt;
&lt;li&gt;Use the dropdown to select your right table (Customers).&lt;/li&gt;
&lt;li&gt;Click the matching column in each table — &lt;strong&gt;CustomerID&lt;/strong&gt; in both.&lt;/li&gt;
&lt;li&gt;At the bottom, select your &lt;strong&gt;Join Kind&lt;/strong&gt; from the dropdown: Inner, Left Outer, Right Outer, Full Outer, Left Anti, Right Anti.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 5 — Expand the joined columns&lt;/strong&gt;&lt;br&gt;
After clicking OK, a new column appears in your table. Click the &lt;strong&gt;expand icon&lt;/strong&gt; (two arrows) in the column header to choose which fields from the right table to bring in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6 — Close and Apply&lt;/strong&gt;&lt;br&gt;
Click &lt;strong&gt;Close &amp;amp; Apply&lt;/strong&gt; in the Home ribbon. Your merged table loads into the model.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbxyz5qnqdl0emjofvpj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbxyz5qnqdl0emjofvpj.png" alt="An annotated screenshot or clean illustration of the Merge Queries dialog in Power Query" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Joins vs. Relationships — What Is the Difference?
&lt;/h3&gt;

&lt;p&gt;You just learned how joins work. But Power BI has another way to connect tables — &lt;strong&gt;Relationships&lt;/strong&gt; — and they are not the same thing.&lt;/p&gt;

&lt;p&gt;Here is the short version:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Joins (Power Query)&lt;/th&gt;
&lt;th&gt;Relationships (Model View)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Where&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Power Query Editor&lt;/td&gt;
&lt;td&gt;Model View&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What it does&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Literally combines tables into one&lt;/td&gt;
&lt;td&gt;Logically links separate tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;When&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;During data preparation&lt;/td&gt;
&lt;td&gt;During modeling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A new merged table&lt;/td&gt;
&lt;td&gt;Tables stay separate, filters flow between them&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Think of a join as a &lt;strong&gt;marriage&lt;/strong&gt; — two tables merge and become one.&lt;/p&gt;

&lt;p&gt;A relationship is a &lt;strong&gt;phone line&lt;/strong&gt; — two tables stay separate but can talk to each other.&lt;/p&gt;

&lt;p&gt;Knowing which one to use, and when, is one of the most important modeling decisions you will make.&lt;/p&gt;

&lt;p&gt;We cover Relationships fully in Section 4. For now, remember this distinction — it will matter.&lt;/p&gt;


&lt;h2&gt;
  
  
  Section 3: Fact vs. Dimension Tables — The Scoreboard and the Player Cards
&lt;/h2&gt;

&lt;p&gt;Every table in your data model plays one of two roles.&lt;/p&gt;

&lt;p&gt;It is either recording &lt;strong&gt;what happened&lt;/strong&gt; — or explaining &lt;strong&gt;who or what was involved&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That distinction has names: &lt;strong&gt;Fact tables&lt;/strong&gt; and &lt;strong&gt;Dimension tables&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Understanding them is not optional. &lt;/p&gt;

&lt;p&gt;They are the grammar of data modeling. &lt;/p&gt;

&lt;p&gt;Get them wrong and your schema, your relationships, and your DAX all suffer for it.&lt;/p&gt;


&lt;h3&gt;
  
  
  The Basketball Analogy
&lt;/h3&gt;

&lt;p&gt;Picture a basketball game.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;scoreboard&lt;/strong&gt; tracks the action — points scored, time of possession, fouls committed, shots attempted. Every event gets recorded with a number and a timestamp. &lt;/p&gt;

&lt;p&gt;The scoreboard does not care about backstory. It just logs what happened.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;player cards&lt;/strong&gt; tell you everything else — a player's name, position, team, height, jersey number, hometown. Context. Description. Identity.&lt;/p&gt;

&lt;p&gt;In data modeling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;scoreboard = Fact Table&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;player cards = Dimension Tables&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One records events and measures. The other provides the context that makes those events meaningful.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq9aqr1nahilit3ddhypy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq9aqr1nahilit3ddhypy.png" alt="Split tables: Fact vs Dimensions" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Fact Tables — The Numbers and Events
&lt;/h3&gt;

&lt;p&gt;A Fact table records &lt;strong&gt;transactions, events, or measurements&lt;/strong&gt;. Each row is one thing that happened.&lt;/p&gt;

&lt;p&gt;In a retail business, a Fact table might look like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;ProductID&lt;/th&gt;
&lt;th&gt;DateID&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;Revenue&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;td&gt;C01&lt;/td&gt;
&lt;td&gt;P05&lt;/td&gt;
&lt;td&gt;20240315&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;199.98&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1002&lt;/td&gt;
&lt;td&gt;C03&lt;/td&gt;
&lt;td&gt;P12&lt;/td&gt;
&lt;td&gt;20240316&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;49.99&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1003&lt;/td&gt;
&lt;td&gt;C01&lt;/td&gt;
&lt;td&gt;P07&lt;/td&gt;
&lt;td&gt;20240318&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;89.97&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice what lives here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ID columns&lt;/strong&gt; — foreign keys that point to dimension tables&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Numeric columns&lt;/strong&gt; — the measures you will actually aggregate (sum, average, count)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A Fact table is typically &lt;strong&gt;long and narrow&lt;/strong&gt; — many rows, relatively few columns. It grows every time something happens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common Fact table examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sales transactions&lt;/li&gt;
&lt;li&gt;Website events (clicks, page views, sessions)&lt;/li&gt;
&lt;li&gt;Financial transactions (payments, refunds, charges)&lt;/li&gt;
&lt;li&gt;Inventory movements&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  Dimension Tables — The Context
&lt;/h3&gt;

&lt;p&gt;A Dimension table describes &lt;strong&gt;the who, what, where, and when&lt;/strong&gt; behind each fact.&lt;/p&gt;

&lt;p&gt;Using the same retail example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customers Table&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CustomerID&lt;/th&gt;
&lt;th&gt;CustomerName&lt;/th&gt;
&lt;th&gt;City&lt;/th&gt;
&lt;th&gt;Segment&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;C01&lt;/td&gt;
&lt;td&gt;Andrea&lt;/td&gt;
&lt;td&gt;New York&lt;/td&gt;
&lt;td&gt;Retail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C03&lt;/td&gt;
&lt;td&gt;Carmen&lt;/td&gt;
&lt;td&gt;Austin&lt;/td&gt;
&lt;td&gt;Wholesale&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Products Table&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ProductID&lt;/th&gt;
&lt;th&gt;ProductName&lt;/th&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;P05&lt;/td&gt;
&lt;td&gt;Wireless Mouse&lt;/td&gt;
&lt;td&gt;Accessories&lt;/td&gt;
&lt;td&gt;99.99&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P12&lt;/td&gt;
&lt;td&gt;USB Hub&lt;/td&gt;
&lt;td&gt;Accessories&lt;/td&gt;
&lt;td&gt;49.99&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;P07&lt;/td&gt;
&lt;td&gt;Laptop Stand&lt;/td&gt;
&lt;td&gt;Ergonomics&lt;/td&gt;
&lt;td&gt;29.99&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Dimension tables are typically &lt;strong&gt;short and wide&lt;/strong&gt; — fewer rows, more descriptive columns. They grow slowly, if at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common Dimension table examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customers&lt;/li&gt;
&lt;li&gt;Products&lt;/li&gt;
&lt;li&gt;Dates (the most important dimension in almost every model)&lt;/li&gt;
&lt;li&gt;Stores / Locations&lt;/li&gt;
&lt;li&gt;Employees&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  How to Tell Them Apart in Your Own Data
&lt;/h3&gt;

&lt;p&gt;When you are staring at a table and not sure which type it is, ask these three questions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Does each row represent a single event or transaction?&lt;/strong&gt;&lt;br&gt;
→ If yes, it is probably a Fact table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Are most columns numeric and meant to be summed or averaged?&lt;/strong&gt;&lt;br&gt;
→ If yes, it is probably a Fact table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Does the table mostly describe &lt;em&gt;something&lt;/em&gt; — a person, a product, a place?&lt;/strong&gt;&lt;br&gt;
→ If yes, it is a Dimension table.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh3s4y3rlbzh62ic8o280.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh3s4y3rlbzh62ic8o280.png" alt="A simple vertical DECISION FLOWCHART flowchart" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  The Date Table — A Dimension Worth Its Own Mention
&lt;/h3&gt;

&lt;p&gt;If you build reports in Power BI, you will eventually need a &lt;strong&gt;Date table&lt;/strong&gt; — and it is the single most important dimension in most models.&lt;/p&gt;

&lt;p&gt;A proper Date table has one row per day and columns like:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;DateID&lt;/th&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;Quarter&lt;/th&gt;
&lt;th&gt;Month&lt;/th&gt;
&lt;th&gt;MonthName&lt;/th&gt;
&lt;th&gt;Weekday&lt;/th&gt;
&lt;th&gt;IsWeekend&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;20240101&lt;/td&gt;
&lt;td&gt;01/01/2024&lt;/td&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;Q1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;January&lt;/td&gt;
&lt;td&gt;Sunday&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Why does this matter? &lt;/p&gt;

&lt;p&gt;Because Power BI's time intelligence functions — &lt;code&gt;TOTALYTD&lt;/code&gt;, &lt;code&gt;SAMEPERIODLASTYEAR&lt;/code&gt;, &lt;code&gt;DATESYTD&lt;/code&gt; — only work reliably when you have a proper, unbroken Date table connected to your Fact table.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Pro tip:&lt;/strong&gt; Mark your Date table as an official date table in Power BI. Right-click the table in Model View → &lt;strong&gt;Mark as Date Table&lt;/strong&gt;. This unlocks full time intelligence support.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  Why This Distinction Drives Everything Else
&lt;/h3&gt;

&lt;p&gt;You cannot build a clean Star Schema without knowing which tables are facts and which are dimensions.&lt;/p&gt;

&lt;p&gt;You cannot set up relationships correctly without understanding which table holds the many side and which holds the one side — and that comes directly from this fact/dimension split.&lt;/p&gt;

&lt;p&gt;You cannot write efficient DAX without knowing where your measures live (Fact tables) and where your filters come from (Dimension tables).&lt;/p&gt;

&lt;p&gt;In short: &lt;strong&gt;every concept that follows in this article is built on top of what you just learned.&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;em&gt;Right now, someone you know is staring at a broken Power BI report right now wondering why their slicer does not work.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Share this with them. The foundation is always the fix.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Next in this series → **DAX Fundamentals&lt;/em&gt;&lt;em&gt;: writing measures, calculated columns, and time intelligence — built on top of the model you just learned to build.&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Section 4: Power BI Relationships — Joins' Smarter Sibling
&lt;/h2&gt;

&lt;p&gt;You learned that joins combine tables into one.&lt;/p&gt;

&lt;p&gt;Relationships do something different — and in most Power BI models, more powerful. &lt;/p&gt;

&lt;p&gt;Instead of merging tables, relationships &lt;strong&gt;keep tables separate while letting them communicate&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Filters flow. Measures calculate across tables. Slicers work report-wide.&lt;/p&gt;

&lt;p&gt;The tables stay independent. The model becomes intelligent.&lt;/p&gt;


&lt;h3&gt;
  
  
  Joins vs. Relationships — The Final Word
&lt;/h3&gt;

&lt;p&gt;Before we go deeper, lock this in:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Joins (Power Query)&lt;/th&gt;
&lt;th&gt;Relationships (Model View)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Where&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Power Query Editor&lt;/td&gt;
&lt;td&gt;Model View&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What it produces&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One merged table&lt;/td&gt;
&lt;td&gt;Two connected tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Combined into one&lt;/td&gt;
&lt;td&gt;Each table stays separate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Shaping data before loading&lt;/td&gt;
&lt;td&gt;Connecting tables for analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Filter behaviour&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Not applicable&lt;/td&gt;
&lt;td&gt;Filters flow between tables&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Use a join when you need to &lt;strong&gt;reshape&lt;/strong&gt; your data.&lt;br&gt;
Use a relationship when you need your tables to &lt;strong&gt;talk to each other&lt;/strong&gt; during analysis.&lt;/p&gt;

&lt;p&gt;Most real models use both — joins in Power Query to clean and prep, relationships in Model View to connect.&lt;/p&gt;


&lt;h3&gt;
  
  
  The Four Things That Define Every Relationship
&lt;/h3&gt;

&lt;p&gt;Every relationship in Power BI is described by four properties. Understanding each one is non-negotiable.&lt;/p&gt;


&lt;h4&gt;
  
  
  1. Cardinality — How Many. . . to How Many?
&lt;/h4&gt;

&lt;p&gt;Cardinality describes &lt;strong&gt;how many rows on one side of a relationship match rows on the other side&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Power BI supports three types:&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;One-to-Many (1:M) — The Gold Standard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One row in Table A matches many rows in Table B.&lt;/p&gt;

&lt;p&gt;Example: One customer can place many orders. The Customers table has one row per customer. The Orders (Fact) table has many rows per customer.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Customers (1)&lt;/th&gt;
&lt;th&gt;Orders (Many)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;C01 — Andrea&lt;/td&gt;
&lt;td&gt;Order 1001, 1005, 1009&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C02 — Brian&lt;/td&gt;
&lt;td&gt;Order 1002&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C03 — Carmen&lt;/td&gt;
&lt;td&gt;Order 1003, 1007&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is the relationship type you will use most. It is clean, performant, and exactly what a Star Schema is built on. &lt;strong&gt;When in doubt, aim for 1:M.&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Many-to-Many (M:M) — Powerful, Handle With Care&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Many rows in Table A match many rows in Table B.&lt;/p&gt;

&lt;p&gt;Example: One product can appear in many orders. One order can contain many products.&lt;/p&gt;

&lt;p&gt;Power BI supports M:M relationships natively, but they come with risks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Filter ambiguity — filters can behave unexpectedly&lt;/li&gt;
&lt;li&gt;Performance cost on large tables&lt;/li&gt;
&lt;li&gt;Harder to debug when totals look wrong&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Best practice:&lt;/strong&gt; Before accepting an M:M relationship, ask if a bridge table can resolve it into two clean 1:M relationships. It usually can — and your model will thank you.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;p&gt;&lt;strong&gt;One-to-One (1:1) — Rare but Valid&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One row in Table A matches exactly one row in Table B.&lt;/p&gt;

&lt;p&gt;Example: One employee record links to exactly one payroll record.&lt;/p&gt;

&lt;p&gt;1:1 relationships are uncommon. When you see one, ask whether the two tables should simply be merged into one. &lt;/p&gt;

&lt;p&gt;Often the answer is yes. &lt;/p&gt;

&lt;p&gt;Use 1:1 only when keeping the tables separate serves a clear purpose — security, source system constraints, or deliberate separation of concerns.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18jbkk1f2hib20vrxez1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18jbkk1f2hib20vrxez1.png" alt="Three side-by-side diagrams of tables, each showing two boxes connected by a line(s)" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h4&gt;
  
  
  2. Active vs. Inactive Relationships — The Starter and the Bench Player
&lt;/h4&gt;

&lt;p&gt;Power BI only allows &lt;strong&gt;one active relationship&lt;/strong&gt; between any two tables at a time.&lt;/p&gt;

&lt;p&gt;The active relationship is the default. It is the one Power BI uses automatically when you build visuals and write measures. It appears as a &lt;strong&gt;solid line&lt;/strong&gt; in Model View.&lt;/p&gt;

&lt;p&gt;An inactive relationship is a backup — it exists in the model but does nothing until you explicitly call it. It appears as a &lt;strong&gt;dashed line&lt;/strong&gt; in Model View.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When do you need an inactive relationship?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When the same two tables need to connect in more than one way.&lt;/p&gt;

&lt;p&gt;The most common example: a Date table connected to a Sales Fact table on &lt;em&gt;both&lt;/em&gt; Order Date and Ship Date. Power BI can only activate one at a time. So you make Order Date the active relationship and Ship Date the inactive one — then call it when needed using &lt;code&gt;USERELATIONSHIP()&lt;/code&gt; in DAX.&lt;/p&gt;

&lt;p&gt;We cover this fully in Section 6 on Role-Playing Dimensions. For now, just remember: &lt;strong&gt;solid line = active, dashed line = inactive.&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkv0rlgiru79wskgzk5m3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkv0rlgiru79wskgzk5m3.png" alt="shows — ACTIVE VS INACTIVE RELATIONSHIP SCREENSHOT&amp;lt;br&amp;gt;
A clean illustration of Power BI's Model View showing:shows — ACTIVE VS INACTIVE RELATIONSHIP between 2 tables to Mimic Power BI's actual Model View" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h4&gt;
  
  
  3. Cross-Filter Direction — Which Way Do Filters Flow?
&lt;/h4&gt;

&lt;p&gt;When you select a value in a slicer or filter a visual, Power BI applies that filter across related tables. &lt;strong&gt;Cross-filter direction controls which way that filter travels.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are two settings:&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Single — Filter flows one way only&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The filter moves from the "one" side to the "many" side.&lt;/p&gt;

&lt;p&gt;Example: Filtering the Customers table (one side) filters the Orders table (many side). But filtering Orders does not filter back into Customers.&lt;/p&gt;

&lt;p&gt;This is the default. It is safe, predictable, and right for most models.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Both — Filters flow in both directions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Filters travel across the relationship in either direction.&lt;/p&gt;

&lt;p&gt;This sounds convenient — and sometimes it is. But bidirectional filtering introduces a real risk: &lt;strong&gt;filter ambiguity&lt;/strong&gt;. When multiple paths exist for a filter to travel, Power BI can produce unexpected or incorrect results.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Rule of thumb:&lt;/strong&gt; Start with Single. Switch to Both only when you have a specific reason — and test your numbers carefully when you do. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bidirectional filters in M:M relationships are especially prone to silent errors.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulrc047r55fwjoyu7tcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulrc047r55fwjoyu7tcb.png" alt="Filter flows using single and bi-directional arrows" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h4&gt;
  
  
  4. The Relationship Line Notation in Power BI
&lt;/h4&gt;

&lt;p&gt;When you look at Model View, the lines between tables are not just decorative. They tell you everything about the relationship at a glance:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What You See&lt;/th&gt;
&lt;th&gt;What It Means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;1&lt;/strong&gt; on a line end&lt;/td&gt;
&lt;td&gt;That table is the "one" side&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;*&lt;/strong&gt; on a line end&lt;/td&gt;
&lt;td&gt;That table is the "many" side&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Solid line&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Active relationship&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dashed line&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Inactive relationship&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Single arrow&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Single cross-filter direction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Double arrow&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bidirectional cross-filter&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Learn to read these at a glance and Model View becomes a diagnostic tool, not just a canvas.&lt;/p&gt;


&lt;h3&gt;
  
  
  How to Create and Manage Relationships in Power BI
&lt;/h3&gt;

&lt;p&gt;There are two ways to create relationships in Power BI. Use whichever fits your workflow.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Method 1 — Drag and Drop in Model View&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Power BI Desktop, click the &lt;strong&gt;Model View&lt;/strong&gt; icon on the left sidebar (looks like three connected shapes).&lt;/li&gt;
&lt;li&gt;Locate the two tables you want to connect.&lt;/li&gt;
&lt;li&gt;Click and drag the &lt;strong&gt;shared column&lt;/strong&gt; from one table to the matching column in the other.&lt;/li&gt;
&lt;li&gt;Power BI creates the relationship and draws the line automatically.&lt;/li&gt;
&lt;li&gt;Double-click the relationship line to open its properties and review cardinality and cross-filter direction.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the fastest method for building a model from scratch.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Method 2 — Manage Relationships Dialog&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;strong&gt;Home&lt;/strong&gt; ribbon → click &lt;strong&gt;Manage Relationships&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A dialog shows all existing relationships in your model.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;New&lt;/strong&gt; to create a relationship manually.&lt;/li&gt;
&lt;li&gt;Select your two tables from the dropdowns.&lt;/li&gt;
&lt;li&gt;Click the matching column in each table's preview grid.&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Cardinality&lt;/strong&gt; and &lt;strong&gt;Cross-filter direction&lt;/strong&gt; using the dropdowns at the bottom.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt; → &lt;strong&gt;Close&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This method is better for editing existing relationships or when your model has many tables and drag-and-drop becomes difficult to manage.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F91pslda3amemyizbjez7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F91pslda3amemyizbjez7.png" alt="instructional layout, mimics Power BI's actual UI" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  A Relationship Checklist Before You Move On
&lt;/h3&gt;

&lt;p&gt;Before you leave Model View and start building visuals, run through this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Every Fact table is connected to its Dimension tables&lt;/li&gt;
&lt;li&gt;[ ] All relationships are 1:M where possible&lt;/li&gt;
&lt;li&gt;[ ] No unintended M:M relationships exist&lt;/li&gt;
&lt;li&gt;[ ] Cross-filter direction is Single unless you have a specific reason for Both&lt;/li&gt;
&lt;li&gt;[ ] Your Date table is connected to your Fact table on the correct date column&lt;/li&gt;
&lt;li&gt;[ ] Active vs. inactive relationships are set deliberately — not by accident&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A model that passes this checklist is a model you can build on with confidence.&lt;/p&gt;


&lt;h2&gt;
  
  
  Section 5: Schemas — Star, Snowflake, or Flat Table. Which House Do You Build?
&lt;/h2&gt;

&lt;p&gt;You know what Fact and Dimension tables are.&lt;/p&gt;

&lt;p&gt;You know how relationships connect them.&lt;/p&gt;

&lt;p&gt;Now the question is: &lt;strong&gt;how do you arrange them?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That arrangement has a name — a &lt;strong&gt;schema&lt;/strong&gt;. Think of it as the floor plan of your data model. The tables are the rooms. The relationships are the doorways. &lt;/p&gt;

&lt;p&gt;The schema is the blueprint that determines how everything fits together.&lt;/p&gt;

&lt;p&gt;There are three schemas you need to know. Each one suits a different situation. &lt;/p&gt;

&lt;p&gt;Choosing the wrong one does not necessarily break your model immediately — it just makes everything harder over time.&lt;/p&gt;


&lt;h3&gt;
  
  
  Schema 1: The Star Schema — The Industry Favourite
&lt;/h3&gt;

&lt;p&gt;The Star Schema is the most widely used structure in Power BI and business intelligence. If you only learn one schema, make it this one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The structure:&lt;/strong&gt;&lt;br&gt;
One Fact table sits at the center. Dimension tables surround it, each connected by a single 1:M relationship. When you draw it out, the shape looks exactly like a star.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7p4btg0pyi3985hiwkkr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7p4btg0pyi3985hiwkkr.png" alt="star schema representation" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;A retail Star Schema looks like this:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Table&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sales&lt;/td&gt;
&lt;td&gt;Fact&lt;/td&gt;
&lt;td&gt;Records every transaction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customers&lt;/td&gt;
&lt;td&gt;Dimension&lt;/td&gt;
&lt;td&gt;Describes who bought&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Products&lt;/td&gt;
&lt;td&gt;Dimension&lt;/td&gt;
&lt;td&gt;Describes what was bought&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;Dimension&lt;/td&gt;
&lt;td&gt;Describes when it happened&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stores&lt;/td&gt;
&lt;td&gt;Dimension&lt;/td&gt;
&lt;td&gt;Describes where it happened&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Every Dimension table connects directly to the Fact table. No Dimension connects to another Dimension.&lt;/p&gt;

&lt;p&gt;That directness is the point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Power BI loves the Star Schema:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Filters travel a short, predictable path — one hop from Dimension to Fact&lt;/li&gt;
&lt;li&gt;DAX measures are easier to write and debug&lt;/li&gt;
&lt;li&gt;Query performance is faster because relationships are simple&lt;/li&gt;
&lt;li&gt;Model View stays readable even as the model grows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use the Star Schema when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You are building a report or dashboard for business users&lt;/li&gt;
&lt;li&gt;Performance matters&lt;/li&gt;
&lt;li&gt;You want a model that is easy to maintain and hands off&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The honest limitation:&lt;/strong&gt;&lt;br&gt;
Star Schemas require some denormalization — meaning you may store repeated values across Dimension tables rather than normalizing them out. &lt;/p&gt;

&lt;p&gt;That is a deliberate trade-off. &lt;/p&gt;

&lt;p&gt;Readability and speed win over storage efficiency in most BI contexts.&lt;/p&gt;


&lt;h3&gt;
  
  
  Schema 2: The Snowflake Schema — The Star That Grew Branches
&lt;/h3&gt;

&lt;p&gt;The Snowflake Schema is a Star Schema where the Dimension tables have been &lt;strong&gt;normalized&lt;/strong&gt; — broken down further into their own related tables.&lt;/p&gt;

&lt;p&gt;Where a Star Schema has one Products table, a Snowflake might split it into Products → Subcategory → Category. Each level becomes its own table, connected in a chain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The structure looks like this:&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fde4j21dqkc1tbubw49y4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fde4j21dqkc1tbubw49y4.jpg" alt="snowflake schema representation" width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Same retail model, Snowflake style:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Table&lt;/th&gt;
&lt;th&gt;Connected To&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sales (Fact)&lt;/td&gt;
&lt;td&gt;Products, Customers, Date, Stores&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Products&lt;/td&gt;
&lt;td&gt;Sub-Category&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sub-Category&lt;/td&gt;
&lt;td&gt;Category&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customers&lt;/td&gt;
&lt;td&gt;City&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;City&lt;/td&gt;
&lt;td&gt;Region&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;When does a Snowflake Schema make sense?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mostly when your data comes from a &lt;strong&gt;normalized relational database&lt;/strong&gt; — like an enterprise data warehouse — and restructuring it into a flat Star Schema is not practical. The Snowflake preserves the source structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The trade-offs are real:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Star Schema&lt;/th&gt;
&lt;th&gt;Snowflake Schema&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Query speed&lt;/td&gt;
&lt;td&gt;Faster&lt;/td&gt;
&lt;td&gt;Slower&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model complexity&lt;/td&gt;
&lt;td&gt;Simple&lt;/td&gt;
&lt;td&gt;More complex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DAX difficulty&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage efficiency&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Power BI performance&lt;/td&gt;
&lt;td&gt;Better&lt;/td&gt;
&lt;td&gt;Can degrade at scale&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;The Power BI reality:&lt;/strong&gt; Power BI is optimized for Star Schemas. Snowflake models work — but every extra hop between tables is an extra relationship for the engine to traverse. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In large models, that cost adds up. &lt;/p&gt;

&lt;p&gt;If your source data arrives as a Snowflake, consider flattening the sub-dimension chains in Power Query before loading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use the Snowflake Schema when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your source system is already normalized and restructuring is not feasible&lt;/li&gt;
&lt;li&gt;Storage efficiency is a hard requirement&lt;/li&gt;
&lt;li&gt;You are working in a formal data warehouse environment&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  Schema 3: The Flat Table (Denormalized / Single Table) — Everything in One Room (Studio / Bedsitter)
&lt;/h3&gt;

&lt;p&gt;The Flat Table is exactly what it sounds like. &lt;strong&gt;All your data lives in one wide table.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;No relationships. &lt;/p&gt;

&lt;p&gt;No separate dimensions. &lt;/p&gt;

&lt;p&gt;Every column — measures, descriptions, dates, customer names — is in a single sheet.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flnei72lblrs5uu31f5m0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flnei72lblrs5uu31f5m0.jpg" alt="flat table image" width="800" height="224"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;What a Flat Table looks like:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;CustomerName&lt;/th&gt;
&lt;th&gt;City&lt;/th&gt;
&lt;th&gt;ProductName&lt;/th&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Qty&lt;/th&gt;
&lt;th&gt;Revenue&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;td&gt;2024-03-15&lt;/td&gt;
&lt;td&gt;Andrea&lt;/td&gt;
&lt;td&gt;New York&lt;/td&gt;
&lt;td&gt;Wireless Mouse&lt;/td&gt;
&lt;td&gt;Accessories&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;199.98&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1002&lt;/td&gt;
&lt;td&gt;2024-03-16&lt;/td&gt;
&lt;td&gt;Carmen&lt;/td&gt;
&lt;td&gt;Austin&lt;/td&gt;
&lt;td&gt;USB Hub&lt;/td&gt;
&lt;td&gt;Accessories&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;49.99&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No joins needed. No relationships to configure. Everything is right there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When it works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Small, one-off analyses with a single clean data source&lt;/li&gt;
&lt;li&gt;Quick exploration before committing to a full model&lt;/li&gt;
&lt;li&gt;Data exported from a single system that does not need enrichment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;When it breaks down:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The moment your data grows, the flat table becomes a liability:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Redundancy compounds&lt;/strong&gt; — CustomerName and City repeat on every single order row&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Updates become painful&lt;/strong&gt; — if Andrea moves to Chicago, you update hundreds of rows instead of one&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DAX gets messy&lt;/strong&gt; — no clean dimension tables means filters and calculations have more to work around&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance degrades&lt;/strong&gt; — Power BI's engine is not optimized for one massive wide table&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;The flat table trap:&lt;/strong&gt; Many beginners bring an Excel file into Power BI and start building visuals directly on top of it. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That works — until it doesn't. &lt;/p&gt;

&lt;p&gt;If your dataset will grow, or if you need to join additional sources later, invest the time to model it properly from the start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use the Flat Table when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The dataset is small and self-contained&lt;/li&gt;
&lt;li&gt;The analysis is exploratory or temporary&lt;/li&gt;
&lt;li&gt;You are prototyping before building the real model&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  Which Schema Should You Use? — A Decision Guide
&lt;/h3&gt;

&lt;p&gt;Not sure which one fits your situation? Work through this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start here:&lt;/strong&gt; How many data sources are you working with?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One table, small dataset, quick analysis&lt;/strong&gt; → Flat Table&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple tables you control&lt;/strong&gt; → Star Schema (default choice)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data from an enterprise warehouse you cannot restructure&lt;/strong&gt; → Snowflake Schema&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Then ask:&lt;/strong&gt; Will this model grow over time?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Yes&lt;/strong&gt; → Invest in a Star Schema now. A flat table will cost you later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No&lt;/strong&gt; → A flat table or simple Star Schema both work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Then ask:&lt;/strong&gt; Is query performance important?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Yes&lt;/strong&gt; → Star Schema. Every time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not critical&lt;/strong&gt; → Snowflake is acceptable if your source data demands it.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fen953yg5mcp70aglf8zt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fen953yg5mcp70aglf8zt.jpg" alt=" " width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  The Bottom Line
&lt;/h3&gt;

&lt;p&gt;The Star Schema is not just a best practice recommendation — it is the shape Power BI's engine is built to work with. When your model looks like a star, Power BI performs at its best.&lt;/p&gt;

&lt;p&gt;The Snowflake and Flat Table have their place. But. . . they are situational. &lt;/p&gt;

&lt;p&gt;The Star Schema is the default.&lt;/p&gt;

&lt;p&gt;Build your model like a star. Your reports — and your future self — will thank you.&lt;/p&gt;



&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;
  
  
  Section 6: Role-Playing Dimensions — One Table, Many Hats
&lt;/h2&gt;

&lt;p&gt;Some tables in your model are so useful they get called to duty more than once.&lt;/p&gt;

&lt;p&gt;Not a copy. &lt;/p&gt;

&lt;p&gt;Not a duplicate. &lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;same table&lt;/strong&gt;, playing a different role depending on the context.&lt;/p&gt;

&lt;p&gt;That is a &lt;strong&gt;role-playing dimension&lt;/strong&gt; — and the Date table is almost always the one wearing multiple hats.&lt;/p&gt;


&lt;h3&gt;
  
  
  The Problem It Solves
&lt;/h3&gt;

&lt;p&gt;Picture an e-commerce orders table. It has three date columns:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OrderID&lt;/th&gt;
&lt;th&gt;OrderDate&lt;/th&gt;
&lt;th&gt;ShipDate&lt;/th&gt;
&lt;th&gt;DeliveryDate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1001&lt;/td&gt;
&lt;td&gt;2024-03-01&lt;/td&gt;
&lt;td&gt;2024-03-03&lt;/td&gt;
&lt;td&gt;2024-03-06&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1002&lt;/td&gt;
&lt;td&gt;2024-03-02&lt;/td&gt;
&lt;td&gt;2024-03-05&lt;/td&gt;
&lt;td&gt;2024-03-09&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1003&lt;/td&gt;
&lt;td&gt;2024-03-04&lt;/td&gt;
&lt;td&gt;2024-03-04&lt;/td&gt;
&lt;td&gt;2024-03-07&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Each column is a date. Each one means something different. And your business needs to analyze by all three — orders placed by month, shipments by week, deliveries by quarter.&lt;/p&gt;

&lt;p&gt;You have one Date dimension table. You need it to serve three different relationships.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI only allows one active relationship between two tables at a time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is the constraint role-playing dimensions are designed to solve.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8r9usjxmazf8z0gcd8xp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8r9usjxmazf8z0gcd8xp.png" alt="role-playing dimensions" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  How to Handle It in Power BI
&lt;/h3&gt;

&lt;p&gt;There are two approaches. Which one you use depends on your model's complexity.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Approach 1 — One Date Table, Multiple Inactive Relationships&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the most common approach.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;In &lt;strong&gt;Model View&lt;/strong&gt;, create your first relationship:&lt;br&gt;
&lt;code&gt;Date[Date]&lt;/code&gt; → &lt;code&gt;Orders[OrderDate]&lt;/code&gt;&lt;br&gt;
Set this as the &lt;strong&gt;active&lt;/strong&gt; relationship.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a second relationship:&lt;br&gt;
&lt;code&gt;Date[Date]&lt;/code&gt; → &lt;code&gt;Orders[ShipDate]&lt;/code&gt;&lt;br&gt;
Power BI will automatically mark this as &lt;strong&gt;inactive&lt;/strong&gt; (dashed line).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a third relationship:&lt;br&gt;
&lt;code&gt;Date[Date]&lt;/code&gt; → &lt;code&gt;Orders[DeliveryDate]&lt;/code&gt;&lt;br&gt;
Also inactive.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, by default, every date-related visual uses &lt;strong&gt;OrderDate&lt;/strong&gt; — the active relationship does its job quietly in the background.&lt;/p&gt;

&lt;p&gt;When you need to analyze by ShipDate or DeliveryDate, you activate the relevant relationship inside a DAX measure using &lt;code&gt;USERELATIONSHIP()&lt;/code&gt;.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;The USERELATIONSHIP() Function — Plain English&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;USERELATIONSHIP()&lt;/code&gt; tells Power BI: &lt;em&gt;"For this specific calculation, ignore the active relationship and use this inactive one instead."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here is what it looks like in a DAX measure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Revenue by Ship Date =
CALCULATE(
    SUM(Orders[Revenue]),
    USERELATIONSHIP(Orders[ShipDate], Date[Date])
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What this does, line by line:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;SUM(Orders[Revenue])&lt;/code&gt; — add up all revenue&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;USERELATIONSHIP(Orders[ShipDate], Date[Date])&lt;/code&gt; — but filter by ShipDate, not OrderDate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You are not changing the model. You are temporarily swapping which relationship is active for that one measure only. Everything else in your report keeps using OrderDate.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;This is why inactive relationships exist.&lt;/strong&gt; They are not broken or forgotten relationships. They are deliberate standbys, ready to be called when the calculation needs them.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Approach 2 — Multiple Date Tables (One Per Role)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For complex models, some analysts create separate Date tables — one for each role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Date_Order&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Date_Ship&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Date_Delivery&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each one is a full copy of the same Date table, each connected to its respective column in the Fact table with its own active relationship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The benefit:&lt;/strong&gt; every relationship is active. No DAX switching required. Simpler measures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The trade-off:&lt;/strong&gt; three tables to maintain instead of one. If your Date table needs updating — a new column, a fiscal year change — you update it in three places.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8q802vz9rnuvo6oajzi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8q802vz9rnuvo6oajzi.png" alt="Three active relationships MULTIPLE DATE TABLES" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Which Approach Should You Use?
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;One Date Table + Inactive Relationships&lt;/th&gt;
&lt;th&gt;Multiple Date Tables&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Update one table&lt;/td&gt;
&lt;td&gt;Update each copy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DAX complexity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Requires USERELATIONSHIP()&lt;/td&gt;
&lt;td&gt;Simpler measures&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model tidiness&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cleaner Model View&lt;/td&gt;
&lt;td&gt;More tables to manage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Most models&lt;/td&gt;
&lt;td&gt;Models with heavy time-based analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For most use cases — &lt;strong&gt;start with one Date table and inactive relationships&lt;/strong&gt;. It keeps your model lean and your Model View readable. Reach for multiple Date tables only when your time intelligence needs are complex enough to justify the overhead.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Takeaway
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;A role-playing dimension is not a workaround. It is a deliberate modeling pattern used by professionals across the industry.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When you see a Fact table with multiple date columns, you now know exactly what to do: one Date table, one active relationship, inactive relationships standing by, and &lt;code&gt;USERELATIONSHIP()&lt;/code&gt; ready to call them into action.&lt;/p&gt;

&lt;p&gt;That is not beginner thinking. That is how real models are built.&lt;/p&gt;




&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Section 7: Common Data Modeling Mistakes — The Traps Every Beginner Falls Into
&lt;/h2&gt;

&lt;p&gt;A broken model rarely announces itself loudly.&lt;/p&gt;

&lt;p&gt;It whispers. A total that looks slightly off. A slicer that filters one visual but ignores another. &lt;/p&gt;

&lt;p&gt;A report that works perfectly — until someone adds a second page and everything falls apart.&lt;/p&gt;

&lt;p&gt;Most of these quiet failures trace back to the same handful of mistakes. &lt;/p&gt;

&lt;p&gt;Here they are — what causes them, what they look like, and how to fix them.&lt;/p&gt;




&lt;h3&gt;
  
  
  Mistake 1: Skipping the Model and Going Straight to Visuals
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What happens:&lt;/strong&gt;&lt;br&gt;
You load your data, land in Report View, and start dragging fields onto the canvas. Things look fine — until they don't.&lt;/p&gt;

&lt;p&gt;Totals are wrong. Cross-filtering breaks. You start writing complicated DAX to fix problems that a clean model would have prevented.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt;&lt;br&gt;
Report View is where the exciting stuff lives. &lt;/p&gt;

&lt;p&gt;The model feels like homework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix:&lt;/strong&gt;&lt;br&gt;
Before building a single visual, open &lt;strong&gt;Model View&lt;/strong&gt;. Check your relationships. Confirm your schema. &lt;/p&gt;

&lt;p&gt;Ten minutes of modeling upfront saves hours of debugging later.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Make it a habit:&lt;/strong&gt; Model first. Report second. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Always.&lt;/p&gt;




&lt;h3&gt;
  
  
  Mistake 2: Unintended Many-to-Many Relationships
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What happens:&lt;/strong&gt;&lt;br&gt;
Power BI detects a relationship between two tables but cannot determine which side is "one" and which is "many" — so it creates an M:M relationship. &lt;/p&gt;

&lt;p&gt;Your visuals render. &lt;br&gt;
Your numbers are wrong. &lt;br&gt;
You have no idea why.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt;&lt;br&gt;
The column you are joining on has &lt;strong&gt;duplicate values on both sides&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;For a clean 1:M relationship, the "one" side must have unique values — no repeats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
Joining Orders to Products on &lt;code&gt;ProductName&lt;/code&gt; instead of &lt;code&gt;ProductID&lt;/code&gt;. If product names are not unique — two products called "Wireless Mouse" in different categories — Power BI cannot resolve the relationship cleanly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always join on a column with &lt;strong&gt;unique values on the "one" side&lt;/strong&gt; — typically an ID column, not a name column&lt;/li&gt;
&lt;li&gt;In Model View, check the symbols on each end of the relationship line. You want &lt;strong&gt;1 and *&lt;/strong&gt; — not &lt;strong&gt;* and *&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;If you see * on both ends, investigate the source data for duplicates&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnyr9t2g0r8h7d1tksdhr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnyr9t2g0r8h7d1tksdhr.jpg" alt="Many to Many relationship WARNING DIAGRAM" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Mistake 3: Bidirectional Filters Applied Without a Reason
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What happens:&lt;/strong&gt;&lt;br&gt;
Cross-filter direction is set to &lt;strong&gt;Both&lt;/strong&gt; on one or more relationships. Filters start flowing in unexpected directions. A visual that should show all products now shows only a subset. Totals shift depending on what else is filtered on the page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt;&lt;br&gt;
Bidirectional filtering sounds more powerful — and sometimes it is. But in models with multiple relationship paths, it creates &lt;strong&gt;filter ambiguity&lt;/strong&gt;: Power BI has more than one route to travel and picks one, silently, without telling you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Default every relationship to &lt;strong&gt;Single&lt;/strong&gt; cross-filter direction&lt;/li&gt;
&lt;li&gt;Switch to &lt;strong&gt;Both&lt;/strong&gt; only when you have tested the outcome and confirmed it is correct&lt;/li&gt;
&lt;li&gt;If your numbers change unexpectedly after enabling bidirectional filtering — that is your sign to revert&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Mistake 4: Using a Flat Table When the Data Has Outgrown It
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What happens:&lt;/strong&gt;&lt;br&gt;
You import one wide table and build your report on top of it. Early on, everything works. Then the dataset doubles. Then someone asks for a new filter by region, and there is no clean Region column — just a City column with 400 unique values. Performance slows. Maintenance becomes painful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt;&lt;br&gt;
The flat table felt like the easy path at the start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix:&lt;/strong&gt;&lt;br&gt;
If your dataset has clear descriptive attributes — customer details, product categories, geographic hierarchies — &lt;strong&gt;split them into dimension tables&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Even a simple three-table Star Schema (Fact + two Dimensions) is dramatically easier to work with than one sprawling flat table.&lt;/p&gt;




&lt;h3&gt;
  
  
  Mistake 5: Duplicate Rows Breaking Relationship Integrity
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What happens:&lt;/strong&gt;&lt;br&gt;
Your relationship looks correct in Model View, but your measures are overcounting. A revenue total is double what it should be. A customer appears twice in a slicer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt;&lt;br&gt;
The "one" side of your relationship has &lt;strong&gt;duplicate values in the join column&lt;/strong&gt;. When Power BI tries to resolve the relationship, it finds multiple matches and multiplies the result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
Your Customers dimension table has two rows for CustomerID C01 — one from an original import and one from a refresh that appended instead of replaced. &lt;/p&gt;

&lt;p&gt;Every order for C01 now counts twice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In Power Query, apply &lt;strong&gt;Remove Duplicates&lt;/strong&gt; on the key column of every Dimension table&lt;/li&gt;
&lt;li&gt;Do this as a deliberate step during data preparation — not as an afterthought&lt;/li&gt;
&lt;li&gt;Use the &lt;strong&gt;Column Quality&lt;/strong&gt; feature in Power Query (View → Column Quality) to spot duplicate or error rates before loading&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn8ufytwqb9riafyrqsvd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn8ufytwqb9riafyrqsvd.jpg" alt="Two side-by-side Power Query table previews with Remove Duplicates applied" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Mistake 6: No Proper Date Table
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What happens:&lt;/strong&gt;&lt;br&gt;
You use the date column directly from your Fact table for time-based analysis. Some things work. But DAX time intelligence functions (&lt;code&gt;TOTALYTD&lt;/code&gt;, &lt;code&gt;SAMEPERIODLASTYEAR&lt;/code&gt;, &lt;code&gt;DATESYTD&lt;/code&gt;) behave inconsistently or return blanks. Fiscal year filtering is impossible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt;&lt;br&gt;
Power BI's time intelligence functions require a &lt;strong&gt;dedicated, contiguous Date table&lt;/strong&gt; — one row per day, no gaps, marked as a Date table — to work reliably.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a dedicated Date table — either in Power Query, DAX using &lt;code&gt;CALENDAR()&lt;/code&gt; or &lt;code&gt;CALENDARAUTO()&lt;/code&gt;, or by importing one&lt;/li&gt;
&lt;li&gt;Connect it to your Fact table on the date column&lt;/li&gt;
&lt;li&gt;Right-click the table in Model View → &lt;strong&gt;Mark as Date Table&lt;/strong&gt; → select the date column&lt;/li&gt;
&lt;li&gt;Make sure the date range covers every date in your Fact table — no gaps, no missing days&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Mistake 7: Inactive Relationships Left by Accident
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What happens:&lt;/strong&gt;&lt;br&gt;
You create a relationship, Power BI detects a conflict with an existing one, and quietly marks the new relationship as inactive. &lt;/p&gt;

&lt;p&gt;You do not notice. &lt;/p&gt;

&lt;p&gt;Your visual filters by the wrong date column — or does not filter at all — and you spend an hour debugging DAX before realising the relationship was never active.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt;&lt;br&gt;
Power BI creates inactive relationships silently. No alert. No warning. Just a dashed line you might not notice in a busy Model View.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The fix:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After creating any relationship, &lt;strong&gt;check the line&lt;/strong&gt; — solid means active, dashed means inactive&lt;/li&gt;
&lt;li&gt;Review all relationships periodically in &lt;strong&gt;Manage Relationships&lt;/strong&gt; (Home ribbon) — the Active column shows you exactly which ones are live&lt;/li&gt;
&lt;li&gt;If a relationship is inactive and you did not intend that, investigate whether it conflicts with an existing active relationship and resolve the ambiguity&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  The Mistake Prevention Checklist
&lt;/h3&gt;

&lt;p&gt;Run through this before you publish any Power BI report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Model View reviewed before first visual was built&lt;/li&gt;
&lt;li&gt;[ ] All 1:M relationships confirmed — no unintended M:M&lt;/li&gt;
&lt;li&gt;[ ] Cross-filter direction is Single unless deliberately changed&lt;/li&gt;
&lt;li&gt;[ ] Dimension tables checked for duplicates on key columns&lt;/li&gt;
&lt;li&gt;[ ] A proper, marked Date table is connected to the Fact table&lt;/li&gt;
&lt;li&gt;[ ] All active vs. inactive relationships are set intentionally&lt;/li&gt;
&lt;li&gt;[ ] Flat tables have been restructured if the dataset has grown&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A model that clears this list is a model you can hand to someone else with confidence.&lt;/p&gt;




&lt;h2&gt;
  
  
  Section 8: Build Your First Data Model — From Zero to a Working Model
&lt;/h2&gt;

&lt;p&gt;Every concept in this article has been building toward this moment.&lt;/p&gt;

&lt;p&gt;Fact tables. Dimension tables. Relationships. Star Schema. Role-playing dimensions. Joins in Power Query. You have learned each one individually. Now we put them together — step by step, start to finish — and build a real, working data model in Power BI.&lt;/p&gt;

&lt;p&gt;No shortcuts. No skipped steps. Just the process, exactly as it happens.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Scenario
&lt;/h3&gt;

&lt;p&gt;You work for a small retail business. You have been handed four CSV files:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;What It Contains&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Sales.csv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Every transaction — OrderID, CustomerID, ProductID, OrderDate, ShipDate, Quantity, Revenue&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Customers.csv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Customer details — CustomerID, CustomerName, City, Segment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Products.csv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Product details — ProductID, ProductName, Category, Price&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Date.csv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A full calendar table — Date, Year, Quarter, Month, MonthName, Weekday&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Your job: connect these four tables into a clean Star Schema, handle the role-playing date dimension, and leave the model ready to report on.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7j3qgvjnip3vwqsx5o2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7j3qgvjnip3vwqsx5o2.jpg" alt="simple visual showing four document icons labeled with the four CSV filenames" width="784" height="1168"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 1 — Load Your Tables Into Power BI
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Power BI Desktop&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On the Home ribbon, click &lt;strong&gt;Get Data → Text/CSV&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;code&gt;Sales.csv&lt;/code&gt; and click &lt;strong&gt;Load&lt;/strong&gt; — or click &lt;strong&gt;Transform Data&lt;/strong&gt; if you want to inspect it first in Power Query (recommended).&lt;/li&gt;
&lt;li&gt;Repeat for &lt;code&gt;Customers.csv&lt;/code&gt;, &lt;code&gt;Products.csv&lt;/code&gt;, and &lt;code&gt;Date.csv&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Once all four are loaded, you will see them listed in the &lt;strong&gt;Fields pane&lt;/strong&gt; on the right side of your screen.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Use Transform Data, not just Load.&lt;/strong&gt; Clicking Transform Data opens Power Query Editor first, giving you a chance to check column types, spot errors, and remove duplicates before anything reaches your model. Make this your default.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Step 2 — Clean and Prepare in Power Query
&lt;/h3&gt;

&lt;p&gt;With all four tables open in Power Query Editor, do a quick pass on each one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For every table:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check that column data types are correct — dates should be Date type, numbers should be Decimal or Whole Number, IDs should be Text&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;View → Column Quality&lt;/strong&gt; to check for errors and empty values&lt;/li&gt;
&lt;li&gt;On your key columns (CustomerID, ProductID, DateID), right-click the column header → &lt;strong&gt;Remove Duplicates&lt;/strong&gt; — especially on Customers, Products, and Date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For the Sales table specifically:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm both &lt;code&gt;OrderDate&lt;/code&gt; and &lt;code&gt;ShipDate&lt;/code&gt; columns are present and formatted as Date type&lt;/li&gt;
&lt;li&gt;These two columns are what we will use to create active and inactive relationships in the next steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When everything looks clean, click &lt;strong&gt;Close &amp;amp; Apply&lt;/strong&gt; on the Home ribbon. Power Query closes and your data loads into the model.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqy5gilwp4uf979xemm6z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqy5gilwp4uf979xemm6z.png" alt="POWER QUERY CLEAN TABLE" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 3 — Go to Model View
&lt;/h3&gt;

&lt;p&gt;Click the &lt;strong&gt;Model View&lt;/strong&gt; icon on the left sidebar — it looks like three connected shapes stacked vertically.&lt;/p&gt;

&lt;p&gt;You will see your four tables laid out on the canvas, possibly in a cluttered arrangement. Power BI may have already detected and created some relationships automatically based on matching column names.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before trusting auto-detected relationships:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;Home → Manage Relationships&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Review every relationship Power BI created&lt;/li&gt;
&lt;li&gt;Delete any that look incorrect or that connect the wrong columns&lt;/li&gt;
&lt;li&gt;You are going to create the relationships deliberately — do not let auto-detection make decisions for you&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Step 4 — Arrange Your Tables Into a Star Shape
&lt;/h3&gt;

&lt;p&gt;This step is visual but important. A readable Model View is a maintainable model.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Drag the &lt;strong&gt;Sales&lt;/strong&gt; table to the &lt;strong&gt;center&lt;/strong&gt; of the canvas — it is your Fact table.&lt;/li&gt;
&lt;li&gt;Drag &lt;strong&gt;Customers&lt;/strong&gt; to the left.&lt;/li&gt;
&lt;li&gt;Drag &lt;strong&gt;Products&lt;/strong&gt; to the right.&lt;/li&gt;
&lt;li&gt;Drag &lt;strong&gt;Date&lt;/strong&gt; to the top.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your canvas now physically resembles a star. That visual clarity is intentional — it makes relationships easier to create, easier to review, and easier to hand off to someone else.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi9tufq86f2igqqhqv5cd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi9tufq86f2igqqhqv5cd.png" alt="MODEL VIEW BEFORE RELATIONSHIPS" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 5 — Create Your Relationships
&lt;/h3&gt;

&lt;p&gt;Now we draw the lines. Work through each relationship one at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relationship 1 — Sales to Customers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In Model View, drag &lt;code&gt;CustomerID&lt;/code&gt; from the &lt;strong&gt;Sales&lt;/strong&gt; table to &lt;code&gt;CustomerID&lt;/code&gt; in the &lt;strong&gt;Customers&lt;/strong&gt; table&lt;/li&gt;
&lt;li&gt;Power BI creates the relationship&lt;/li&gt;
&lt;li&gt;Double-click the line to verify: Cardinality = &lt;strong&gt;Many to One (*:1)&lt;/strong&gt;, Cross-filter direction = &lt;strong&gt;Single&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click OK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Relationship 2 — Sales to Products&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drag &lt;code&gt;ProductID&lt;/code&gt; from &lt;strong&gt;Sales&lt;/strong&gt; to &lt;code&gt;ProductID&lt;/code&gt; in &lt;strong&gt;Products&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Verify: Cardinality = &lt;strong&gt;Many to One (*:1)&lt;/strong&gt;, Cross-filter direction = &lt;strong&gt;Single&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click OK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Relationship 3 — Date to Sales (Active — Order Date)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drag &lt;code&gt;Date&lt;/code&gt; from the &lt;strong&gt;Date&lt;/strong&gt; table to &lt;code&gt;OrderDate&lt;/code&gt; in the &lt;strong&gt;Sales&lt;/strong&gt; table&lt;/li&gt;
&lt;li&gt;Verify: Cardinality = &lt;strong&gt;One to Many (1:*)&lt;/strong&gt;, Cross-filter direction = &lt;strong&gt;Single&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;This is your &lt;strong&gt;active&lt;/strong&gt; relationship — the default for all date filtering&lt;/li&gt;
&lt;li&gt;Click OK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Relationship 4 — Date to Sales (Inactive — Ship Date)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drag &lt;code&gt;Date&lt;/code&gt; from the &lt;strong&gt;Date&lt;/strong&gt; table to &lt;code&gt;ShipDate&lt;/code&gt; in the &lt;strong&gt;Sales&lt;/strong&gt; table&lt;/li&gt;
&lt;li&gt;Power BI will flag a conflict with the existing Date→Sales relationship and automatically mark this one as &lt;strong&gt;inactive&lt;/strong&gt; (dashed line)&lt;/li&gt;
&lt;li&gt;That is exactly what you want — confirm and click OK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your model now has four relationships. Three solid lines. One dashed line.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5s2xq5eok9w5c922b2l8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5s2xq5eok9w5c922b2l8.png" alt="COMPLETED MODEL VIEW" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 6 — Mark Your Date Table
&lt;/h3&gt;

&lt;p&gt;Right-click the &lt;strong&gt;Date&lt;/strong&gt; table in Model View.&lt;br&gt;
Select &lt;strong&gt;Mark as Date Table&lt;/strong&gt;.&lt;br&gt;
In the dialog, select the &lt;code&gt;Date&lt;/code&gt; column as the date column.&lt;br&gt;
Click OK.&lt;/p&gt;

&lt;p&gt;Power BI now recognizes this as an official Date table. Time intelligence functions — &lt;code&gt;TOTALYTD&lt;/code&gt;, &lt;code&gt;SAMEPERIODLASTYEAR&lt;/code&gt;, and others — will work correctly from this point forward.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 7 — Verify the Model
&lt;/h3&gt;

&lt;p&gt;Before you build a single visual, run a final check.&lt;/p&gt;

&lt;p&gt;Open &lt;strong&gt;Manage Relationships&lt;/strong&gt; (Home ribbon) and confirm:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Relationship&lt;/th&gt;
&lt;th&gt;Cardinality&lt;/th&gt;
&lt;th&gt;Active&lt;/th&gt;
&lt;th&gt;Cross-filter&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Date → Sales (OrderDate)&lt;/td&gt;
&lt;td&gt;1:M&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Single&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Date → Sales (ShipDate)&lt;/td&gt;
&lt;td&gt;1:M&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;Single&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sales → Customers&lt;/td&gt;
&lt;td&gt;M:1&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Single&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sales → Products&lt;/td&gt;
&lt;td&gt;M:1&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Single&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Everything checks out. Your Star Schema is built, your role-playing dimension is in place, and your Date table is marked and ready.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 8 — Test With a Simple Visual
&lt;/h3&gt;

&lt;p&gt;Head to &lt;strong&gt;Report View&lt;/strong&gt;. Build one quick visual to confirm the model is working:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Insert a &lt;strong&gt;Matrix visual&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;MonthName&lt;/code&gt; from the Date table to Rows&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;Revenue&lt;/code&gt; from the Sales table to Values&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;Category&lt;/code&gt; from the Products table to Columns&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the matrix populates correctly — months on rows, product categories on columns, revenue figures in the cells — &lt;strong&gt;your model is working&lt;/strong&gt;. Filters are flowing from Dimensions to Fact exactly as designed.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvuol8l68nmhveu6jffse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvuol8l68nmhveu6jffse.png" alt="COMPLETED MATRIX VISUAL" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  What You Just Built
&lt;/h3&gt;

&lt;p&gt;Step back and look at what you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Four tables&lt;/strong&gt; — one Fact, three Dimensions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A clean Star Schema&lt;/strong&gt; — optimized for Power BI's engine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Four deliberate relationships&lt;/strong&gt; — cardinality and cross-filter direction set intentionally&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A role-playing Date dimension&lt;/strong&gt; — one active relationship, one inactive, ready for &lt;code&gt;USERELATIONSHIP()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A marked Date table&lt;/strong&gt; — time intelligence unlocked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A verified, tested model&lt;/strong&gt; — visuals confirmed before the report is built&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is not a beginner's model. That is how production models are built.&lt;/p&gt;




&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Section 9: The Model Was Always the Point
&lt;/h2&gt;

&lt;p&gt;Most people who open Power BI for the first time never make it this far.&lt;/p&gt;

&lt;p&gt;They build a few visuals, hit a wall when the numbers stop making sense, and quietly decide that data work is "not for them." &lt;/p&gt;

&lt;p&gt;Not know that the wall they hit was not a skill ceiling. It was a missing foundation — the one you just spent this entire article building.&lt;/p&gt;

&lt;p&gt;You made it here. That matters more than you think.&lt;/p&gt;




&lt;h3&gt;
  
  
  What Just Changed
&lt;/h3&gt;

&lt;p&gt;You did not just read about data modeling. You learned to see data differently.&lt;/p&gt;

&lt;p&gt;You now look at a spreadsheet and ask: &lt;em&gt;Is this a Fact table or a Dimension?&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;You look at two tables and ask: &lt;em&gt;Should these be joined or related?&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;You look at a schema and know — immediately — whether it will hold under pressure or collapse the moment someone adds a new data source.&lt;/p&gt;

&lt;p&gt;That shift in how you see data is not cosmetic. &lt;/p&gt;

&lt;p&gt;It is the difference between someone who uses Power BI and someone who understands it.&lt;/p&gt;

&lt;p&gt;Those two people sit in the same meetings, look at the same dashboards, and carry very different levels of quiet confidence.&lt;/p&gt;

&lt;p&gt;You just moved from one group to the other.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Thing Nobody Tells You About This Work
&lt;/h3&gt;

&lt;p&gt;Here is what the tutorials, YouTube videos, and certification courses rarely say out loud:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The technical part is the easy part.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Joins, relationships, schemas — those are learnable. &lt;/p&gt;

&lt;p&gt;You learned them today. What is harder — and what actually separates good analysts from great ones — is the discipline to model &lt;em&gt;before&lt;/em&gt; you build. &lt;/p&gt;

&lt;p&gt;To slow down at the start so everything accelerates after.&lt;/p&gt;

&lt;p&gt;Most people skip the model because it feels like a waste of valuable time.&lt;/p&gt;

&lt;p&gt;The best ones know it is the only thing that makes the work fast and &amp;amp; last.&lt;/p&gt;




&lt;h3&gt;
  
  
  What to Do Before This Week Is Over
&lt;/h3&gt;

&lt;p&gt;Do not let this article become a bookmark you never return to.&lt;/p&gt;

&lt;p&gt;Take any dataset you have — an Excel file, a work report, anything — and open Power BI. &lt;/p&gt;

&lt;p&gt;Find your Fact table. Identify your Dimensions. &lt;/p&gt;

&lt;p&gt;Build, even if its a simple three-table Star Schema. Create the relationships deliberately. Mark your Date table.&lt;/p&gt;

&lt;p&gt;It does not have to be perfect. It just has to be intentional.&lt;/p&gt;

&lt;p&gt;That first deliberate model is where everything you read today stops being knowledge and starts being skill. &lt;/p&gt;

&lt;p&gt;There is no shortcut to that crossing. You just have to build something.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When you are ready to go deeper:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DAX&lt;/strong&gt; is the natural next step — measures, calculated columns, and time intelligence that only work correctly on top of a model like the one you just learned to build&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power Query (M language)&lt;/strong&gt; sharpens how you prepare and shape data before it ever reaches the model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance optimization&lt;/strong&gt; — understanding how Power BI's Vertipaq engine reads your model will make you a stronger, faster, more deliberate modeler&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each one builds directly on what you learned here. The model is the foundation. It always was.&lt;/p&gt;




&lt;h3&gt;
  
  
  One Last Thing
&lt;/h3&gt;

&lt;p&gt;Go back to the beginning of this article for a moment — not to re-read it, just to remember where you started.&lt;/p&gt;

&lt;p&gt;You came in because something was broken or unclear. &lt;br&gt;
A report that did not behave. A concept that never quite landed. A feeling that everyone else understood something you had not learned yet.&lt;/p&gt;

&lt;p&gt;You were right. You had not learned it yet.&lt;/p&gt;

&lt;p&gt;Now you have.&lt;/p&gt;

&lt;p&gt;The broken slicer, the wrong totals, the filter that goes nowhere — you know what causes those now. &lt;/p&gt;

&lt;p&gt;More importantly, you know how to build something that does not have those problems in the first place.&lt;/p&gt;

&lt;p&gt;That knowledge does not expire. It does not get patched out in the next Power BI update. &lt;/p&gt;

&lt;p&gt;The Star Schema you built today is the same Star Schema that runs inside the dashboards at companies you have heard of. The relationship principles you learned are the same ones a senior BI developer applies on day one of any new project.&lt;/p&gt;

&lt;p&gt;You did not learn a trick. You learned the foundation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build on it.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pyc577khhnojvy30pqa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pyc577khhnojvy30pqa.png" alt="image of a clean model with trusted results" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Right now, someone you know is staring at a broken Power BI report right now wondering why their slicer does not work.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Share this with them. The foundation is always the fix.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Next in this series → **DAX Fundamentals&lt;/em&gt;&lt;em&gt;: writing measures, calculated columns, and time intelligence — built on top of the model you just learned to build.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;code&gt;#PowerBI&lt;/code&gt; &lt;code&gt;#DataModeling&lt;/code&gt; &lt;code&gt;#DataAnalytics&lt;/code&gt; &lt;code&gt;#BusinessIntelligence&lt;/code&gt; &lt;code&gt;#SQL&lt;/code&gt; &lt;code&gt;#StarSchema&lt;/code&gt; &lt;code&gt;#DAX&lt;/code&gt; &lt;code&gt;#PowerQuery&lt;/code&gt; &lt;code&gt;#BeginnerToAdvanced&lt;/code&gt; &lt;code&gt;#DataEngineering&lt;/code&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>datamodeling</category>
      <category>starschema</category>
      <category>powerbi</category>
    </item>
    <item>
      <title>How Excel is Used in Real-World Data Analysis</title>
      <dc:creator>Amailuk Joseph</dc:creator>
      <pubDate>Mon, 23 Mar 2026 13:29:38 +0000</pubDate>
      <link>https://dev.to/amailuk/how-excel-is-used-in-real-world-data-analysis-6pi</link>
      <guid>https://dev.to/amailuk/how-excel-is-used-in-real-world-data-analysis-6pi</guid>
      <description>&lt;p&gt;Every week, somewhere in the world, a data scientist opens a terminal, fires up Python, and writes elegant code to analyze a dataset. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;And every week, in even far greater numbers, someone opens Excel — and gets the same job done before lunch&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;I did not anticipate to write that sentence when I started my data science training at &lt;em&gt;LuxDevHQ&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I came in ready to learn Python, obsessed with the idea of writing code that crunched millions of rows in milliseconds. &lt;/p&gt;

&lt;p&gt;Excel felt like the thing you used before you knew better. The tool you graduated from.&lt;/p&gt;

&lt;p&gt;Then my instructor dropped a 7,000-row sales dataset on my screen and said: "Analyze this. You have two hours."&lt;/p&gt;

&lt;p&gt;I reached for Python. I spent forty minutes setting up the environment, importing libraries, and debugging a pandas error I had never seen before. &lt;/p&gt;

&lt;p&gt;My classmate next to me who had quietly opened Excel was already building her second PivotTable!&lt;/p&gt;

&lt;p&gt;She finished in ninety minutes. Her output was clean, visual, and ready to present. &lt;/p&gt;

&lt;p&gt;Mine was still a stack of error messages.&lt;/p&gt;

&lt;p&gt;That day, reset my entire perspective. . .&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Excel is not the tool you use before you know better&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;It is the tool professionals reach for when they need answers fast, when data lives in a spreadsheet and needs to stay there, and when the person waiting for your findings does not know what a DataFrame is!&lt;/p&gt;

&lt;p&gt;In this article, I walk you through what Excel actually is, how it shows up in real-world data work. Delving thru features and formulas I have been learning at LuxDevHQ in the same logical order you would actually use them when working with real data. &lt;/p&gt;

&lt;p&gt;Explaining them the way I wish it had been explained to me when I started.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Excel, Really?
&lt;/h2&gt;

&lt;p&gt;Microsoft Excel is a spreadsheet application developed by Microsoft and part of the Microsoft Office and its 365 suite. &lt;/p&gt;

&lt;p&gt;At its most basic level, it organizes data into a grid of rows and columns, forming what are called cells. &lt;/p&gt;

&lt;p&gt;Each cell can hold a value. Could be a number, text, a date, or a formula.&lt;/p&gt;

&lt;p&gt;But calling Excel just a "spreadsheet tool" would be like calling a Swiss Army knife just a "small blade." &lt;/p&gt;

&lt;p&gt;Excel is a full-featured environment for:&lt;/p&gt;

&lt;p&gt;• Storing and organizing data&lt;br&gt;
• Cleaning and transforming raw data&lt;br&gt;
• Performing statistical and mathematical analysis&lt;br&gt;
• Visualizing data through charts and dashboards&lt;br&gt;
• Automating repetitive tasks with formulas and macros&lt;/p&gt;

&lt;p&gt;It is available on Windows, Mac, and as a web application, making it one of the most accessible data tools in existence. &lt;/p&gt;

&lt;p&gt;More importantly, it is used across virtually every industry; finance, healthcare, retail, logistics, human resources, marketing, and beyond.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Does Excel Still Matters in a World of Python and SQL?
&lt;/h2&gt;

&lt;p&gt;That is a fair question. With tools like Python, R, SQL, and Power BI becoming standard in data science, why are we still talking about Excel?&lt;/p&gt;

&lt;p&gt;Here is the honest answer: most of the world's business data still lives in spreadsheets. &lt;/p&gt;

&lt;p&gt;When a sales manager hand you a .xlsx file and needs answers by end of day, you are not spinning up a Jupyter notebook. &lt;/p&gt;

&lt;p&gt;You open Excel, and you deliver.&lt;/p&gt;

&lt;p&gt;Beyond accessibility, Excel has some unique advantages:&lt;/p&gt;

&lt;p&gt;• Low entry barrier — almost every computer in a professional setting has it&lt;br&gt;
• No setup or environment required — you open it and start working&lt;br&gt;
• Great for quick Exploratory Data Analysis (EDA)&lt;br&gt;
• Excellent for communicating findings to non-technical stakeholders who are comfortable with spreadsheets&lt;br&gt;
• Bridges the gap between raw data and business decisions&lt;/p&gt;

&lt;p&gt;At LuxDevHQ, we were taught that a good data scientist is a versatile one. &lt;/p&gt;

&lt;p&gt;Excel is not a competitor to Python — it is a complement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Use Cases of Excel in Data Analysis
&lt;/h2&gt;

&lt;p&gt;Before diving into the features, let me paint a picture of where you will actually encounter Excel in the field.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Sales and Revenue Analysis
&lt;/h3&gt;

&lt;p&gt;Sales teams use Excel to track monthly revenue, compare performance across regions, calculate growth rates, and forecast future sales. Analysts build dashboards that update dynamically as new data is entered.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. HR and Workforce Analytics
&lt;/h3&gt;

&lt;p&gt;HR departments use Excel to manage employee records, calculate attrition rates, analyze compensation data, and track recruitment pipelines. Conditional formatting helps flag outliers — like employees’ overdue for a performance review.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Financial Modelling
&lt;/h3&gt;

&lt;p&gt;In finance, Excel is the industry standard. Analysts build complex models involving projections, scenario analysis, net present value calculations, and cash flow statements — all inside a spreadsheet.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Healthcare Data Tracking
&lt;/h3&gt;

&lt;p&gt;Hospitals and clinics use Excel to monitor patient data, track inventory of medical supplies, analyze readmission rates, and manage appointment scheduling data.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Marketing Campaign Analysis
&lt;/h3&gt;

&lt;p&gt;Marketers use Excel to analyze A/B test results, calculate conversion rates, track cost-per-acquisition, and measure return on investment (ROI) across campaigns.&lt;/p&gt;

&lt;p&gt;In all of these scenarios, the workflow is roughly the same: &lt;em&gt;get the data → clean it → analyze it → visualize it → communicate findings&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;That is the pipeline I want to walk you through now, using the features I have learned so far.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Getting Familiar with the Data
&lt;/h3&gt;

&lt;p&gt;When you receive a dataset, the first thing you do is understand its structure. &lt;/p&gt;

&lt;p&gt;• How many rows? &lt;br&gt;
• What columns exist? &lt;br&gt;
• Are there blanks? &lt;br&gt;
• What data types are present?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhokrqntzt1ug6fo63nk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhokrqntzt1ug6fo63nk6.png" alt="dataset of a farmers group presenting example of unclean real-world data with missing data, etc" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In Excel, a few keyboard shortcuts become your immediately best c jumps to the last used cell, telling you the size of your dataset&lt;br&gt;
• Ctrl + Shift + L — toggles filters on your headers so you can quickly sort and explore&lt;br&gt;
• Freeze Panes (View → Freeze Top Row) — keeps your headers visible as you scroll through thousands of rows&lt;/p&gt;

&lt;p&gt;These seem small, but they immediately tell you what you are working with.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Cleaning the Data
&lt;/h3&gt;

&lt;p&gt;Raw data is almost never analysis-ready. &lt;/p&gt;

&lt;p&gt;It has duplicates, inconsistent text, extra spaces, missing values, and wrong formats. Hence data cleaning being where analysts spend most of their time. &lt;/p&gt;

&lt;p&gt;And you guessed right, Excel has excellent tools for this.&lt;br&gt;
TRIM() — Removing Extra Spaces&lt;/p&gt;

&lt;p&gt;A common issue is hidden spaces in text fields that cause lookups and filters to fail silently.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=TRIM(A2)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This removes all leading, trailing, and excess internal spaces from the cell A2. Simple, but critical.&lt;/p&gt;

&lt;p&gt;PROPER(), UPPER(), LOWER() — Standardizing Text Case&lt;/p&gt;

&lt;p&gt;If one row says "lagos" and another says "LAGOS" and a third says "Lagos," Excel treats them as three different values. &lt;/p&gt;

&lt;p&gt;These functions standardize text:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=PROPER(A2)&lt;/code&gt;   → "Lagos"&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=UPPER(A2)&lt;/code&gt;    → "LAGOS"&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=LOWER(A2)&lt;/code&gt;    → "lagos"&lt;/p&gt;

&lt;p&gt;IFERROR() — Handling Errors Gracefully&lt;/p&gt;

&lt;p&gt;When a formula returns an error (&lt;em&gt;like dividing by zero&lt;/em&gt;), it can break the downstream calculations. IFERROR wraps any formula and returns a fallback value instead of an error:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=IFERROR(B2/C2, 0)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This means: divide value in B2 by value in C2, but if that throws an error, return 0 instead.&lt;/p&gt;

&lt;p&gt;Remove Duplicates&lt;/p&gt;

&lt;p&gt;Under the Data tab, "Remove Duplicates" is a one-click tool that scans selected columns and deletes duplicate rows. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Always done after first creating a backup of your raw data&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffd9s38g7kwkx21j30tg9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffd9s38g7kwkx21j30tg9.png" alt="dataset before and after it is cleaned" width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Exploring and Summarizing Data
&lt;/h3&gt;

&lt;p&gt;Once the data is clean, analysis begins. The goal here is to extract meaningful summaries.&lt;/p&gt;

&lt;p&gt;SUM(), AVERAGE(), COUNT(), MIN(), MAX()&lt;/p&gt;

&lt;p&gt;These are the foundational aggregate functions every analyst uses daily:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=SUM(D2:D100)&lt;/code&gt;       → Total revenue&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=AVERAGE(D2:D100)&lt;/code&gt;   → Average revenue per transaction&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=COUNT(D2:D100)&lt;/code&gt;     → Number of transactions&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=MIN(D2:D100)&lt;/code&gt;       → Lowest single transaction&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=MAX(D2:D100)&lt;/code&gt;       → Highest single transaction&lt;/p&gt;

&lt;p&gt;COUNTIF() and SUMIF() — Conditional Aggregation&lt;/p&gt;

&lt;p&gt;Here is where things get interesting. &lt;/p&gt;

&lt;p&gt;In the real world, you rarely want to sum everything. &lt;/p&gt;

&lt;p&gt;You want to sum revenue for a specific region, or count how many sales came from a given product.&lt;/p&gt;

&lt;p&gt;COUNTIF counts cells that meet a condition:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=COUNTIF(C2:C100, "North")&lt;/code&gt;&lt;br&gt;
→ "How many transactions came from the North region?"&lt;/p&gt;

&lt;p&gt;SUMIF sums cells where a related column meets a condition:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=SUMIF(C2:C100, "North", D2:D100)&lt;/code&gt;&lt;br&gt;
→ "What is the total revenue from the North region?"&lt;/p&gt;

&lt;p&gt;These functions are workhorses in sales and marketing analysis.&lt;/p&gt;

&lt;p&gt;SUMIFS() and COUNTIFS() — Multiple Conditions&lt;/p&gt;

&lt;p&gt;When you need to filter by more than one criterion:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=SUMIFS(D2:D100, C2:C100, "North", E2:E100, "Q1")&lt;/code&gt;&lt;br&gt;
→ "Total revenue from the North region in Q1"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bio9e0hsnx46yhz8sfw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bio9e0hsnx46yhz8sfw.png" alt="shows how the SumIFS formula works" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Looking Up and Combining Data
&lt;/h3&gt;

&lt;p&gt;Real-world data rarely lives in one sheet. You might have a sales table and a separate customer details table, and you need to bring them together. &lt;/p&gt;

&lt;p&gt;This is where lookup functions shine.&lt;/p&gt;

&lt;p&gt;VLOOKUP() — Vertical Lookup&lt;/p&gt;

&lt;p&gt;VLOOKUP searches for a value in the first column of a range and returns a corresponding value from another column in the same row.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=VLOOKUP(A2, CustomerTable, 3, FALSE)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Breaking this down:&lt;/p&gt;

&lt;p&gt;• A2 — the value to look for (e.g., a Customer ID)&lt;br&gt;
• CustomerTable — the range or table to search in&lt;br&gt;
• 3 — return the value from the 3rd column of that range&lt;br&gt;
•FALSE — find an exact match&lt;/p&gt;

&lt;p&gt;Real-world example: You have a list of transactions with Customer IDs, and a separate customer table with names and email addresses. &lt;/p&gt;

&lt;p&gt;VLOOKUP pulls the customer’s name into your transactions sheet automatically.&lt;/p&gt;

&lt;p&gt;XLOOKUP () — The Modern Upgrade&lt;/p&gt;

&lt;p&gt;XLOOKUP is the newer, more flexible replacement for VLOOKUP. &lt;/p&gt;

&lt;p&gt;It is cleaner to write, works in both directions (not just left-to-right), and handles missing values natively:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=XLOOKUP(A2, CustomerTable[CustomerID], CustomerTable[CustomerName], "Not Found")&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feo6gwjzdpygjraruhs5g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feo6gwjzdpygjraruhs5g.png" alt="showing how X-LookUp works in excel dataset" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Analyzing Patterns with PivotTables
&lt;/h3&gt;

&lt;p&gt;If I had to name the single most powerful Excel feature for data analysis, it would be PivotTables. &lt;/p&gt;

&lt;p&gt;A PivotTable lets you instantly summarize, group, filter, and cross-tabulate data — without writing a single formula.&lt;/p&gt;

&lt;p&gt;Here is the scenario: you have 10,000 rows of sales transactions. You want to know total revenue by region, broken down by product category, for each month.&lt;/p&gt;

&lt;p&gt;Writing formulas for that would take a long time. And I mean, a very long time.&lt;/p&gt;

&lt;p&gt;A PivotTable does it in under 60 seconds.&lt;/p&gt;

&lt;p&gt;How to create one:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click anywhere inside your clean dataset&lt;/li&gt;
&lt;li&gt;Go to Insert → PivotTable&lt;/li&gt;
&lt;li&gt;Choose where to place it (new sheet recommended)&lt;/li&gt;
&lt;li&gt;In the PivotTable Fields panel: 
 o Drag Region to Rows
 o Drag Product Category to Columns
 o Drag Revenue to Values (set to Sum)
 o Drag Month to Filters&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltq9rwb5n930lhoq7t7e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltq9rwb5n930lhoq7t7e.png" alt="visual of a pivot table in a macbook" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PivotTables are also dynamic. If the underlying data changes, you right-click and hit Refresh — and all your summaries instantly update.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Visualizing Data
&lt;/h3&gt;

&lt;p&gt;Numbers alone do not communicate. &lt;/p&gt;

&lt;p&gt;Charts make patterns visible and findings convincing. Excel's charting tools are robust enough for most business reporting needs.&lt;/p&gt;

&lt;p&gt;Choosing the Right Chart Type&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Goal             Chart Type&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Compare categories  Bar or Column Chart&lt;/p&gt;

&lt;p&gt;Show trends over time   Line Chart&lt;/p&gt;

&lt;p&gt;Show proportions    Pie or Donut Chart&lt;/p&gt;

&lt;p&gt;Show distribution   Histogram&lt;/p&gt;

&lt;p&gt;Show relationships  Scatter Plot&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building a Chart from a PivotTable&lt;/strong&gt;&lt;br&gt;
Once your PivotTable is ready, you can insert a PivotChart directly from it. &lt;/p&gt;

&lt;p&gt;This creates a chart that stays linked to the PivotTable — when you change the filter, the chart updates too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3pkfjdjhh9556avj7dz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3pkfjdjhh9556avj7dz.png" alt="chart evolved from a pivot table results" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conditional Formatting — Visual Analysis Without Charts&lt;/strong&gt;&lt;br&gt;
For quick pattern recognition within a table, Conditional Formatting applies color scales, data bars, or icon sets to cells based on their values.&lt;/p&gt;

&lt;p&gt;Example: Apply a green-to-red color scale on the Revenue column — highest values glow green, lowest glow red. In seconds, you can visually identify your best- and worst-performing segments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcr7n8ppiju95yj1je1sj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcr7n8ppiju95yj1je1sj.png" alt="conditional formatting example in excel" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7: Making Data Dynamic with Named Ranges and Data Validation
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Named Ranges&lt;/strong&gt;&lt;br&gt;
Instead of referring to Sheet1!$D$2:$D$100 in every formula, you can name that range "Revenue" and use it like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=SUM(Revenue)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;=AVERAGE(Revenue)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This makes formulas readable and easy to maintain — especially important when handing work to a colleague.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Validation&lt;/strong&gt;&lt;br&gt;
Data validation controls what can be entered into a cell. Common uses:&lt;/p&gt;

&lt;p&gt;• Allowing only numbers within a specific range&lt;br&gt;
• Creating a dropdown list to ensure consistent entries (e.g., only "North", "South", "East", "West" can be entered in the Region column)&lt;/p&gt;

&lt;p&gt;This is crucial for maintaining data integrity — bad inputs are the root cause of most analysis errors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2gnzkp0gnikskjziymz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2gnzkp0gnikskjziymz.png" alt="validating data to minimise error entries" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Putting It All Together: A Mini Case Study
&lt;/h3&gt;

&lt;p&gt;Let me close with a real scenario from a practice exercise at LuxDevHQ.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; A retail company gave us 12 months of transaction data — over 8,000 rows covering sales reps, regions, product lines, and revenue figures. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The question:&lt;/strong&gt; Which region and product combination drove the most revenue in H2, and how does that compare to H1?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Workflow:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Opened the raw .xlsx file and used Ctrl + End to confirm the dataset size&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cleaned the data — used TRIM () to fix text fields, removed duplicates, standardized region names with PROPER ()&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Created a helper column using SUMIFS to calculate H1 and H2 revenue per row&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Built a PivotTable with Region on rows, Product on columns, and Revenue (Sum) as values — filtered by half-year period&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added Conditional Formatting to highlight top-performing cells&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Created a PivotChart (clustered bar chart) to visualize the comparison&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wrote a 5-line summary of findings directly below the chart, ready to be shared with the team&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Total time: under 2 hours. And the output was clear, professional, and actionable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;Excel is not a beginner tool that you grow out of. It is a professional tool that grows with you. &lt;/p&gt;

&lt;p&gt;The further you go in data analytics and data science, the more you appreciate having a solid foundation in Excel — because it trains you to think about data: how it is structured, how it should be cleaned, how summaries are built, and how stories are told through numbers.&lt;/p&gt;

&lt;p&gt;As a student at LuxDevHQ, learning Excel alongside Python and SQL has shown me that the best analysts are not defined by which tool they use, but by how clearly, they can move from raw data to insight — whatever the tool in hand.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;The Tool Does Not Make the Analyst — But It Reveals Them&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The formulas and features in this article are just the beginning. But master these, and you will already be thinking like a data analyst.&lt;/p&gt;

&lt;p&gt;The thing nobody tells you when you start learning data science: the tools are not the point. &lt;/p&gt;

&lt;p&gt;The thinking is.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Excel does not make you a great analyst. Neither does Python. Neither does SQL.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;What makes you a great analyst is the ability to look at a messy pile of numbers and ask the right questions — then pursue the answers with whatever is in your hands.&lt;/p&gt;

&lt;p&gt;And that is what Excel does do, and better than almost anything else at this stage: it keeps you honest. &lt;/p&gt;

&lt;p&gt;Every step is visible. Every formula is traceable. Every error is right there, staring at you from a cell, refusing to be hidden behind a stack trace or a silent script failure. &lt;/p&gt;

&lt;p&gt;Excel forces you to understand your data before you summarize it, and understand your summary before you visualize it. &lt;/p&gt;

&lt;p&gt;That discipline — that sequential, deliberate way of working — is not a limitation of the tool. &lt;/p&gt;

&lt;p&gt;It is a lesson the tool is teaching you.&lt;/p&gt;

&lt;p&gt;My classmate who finished her PivotTable in ninety minutes while I was drowning in pandas errors was not better at Excel than I was at Python. &lt;/p&gt;

&lt;p&gt;She was better at thinking through data. &lt;/p&gt;

&lt;p&gt;Excel just made that thinking visible.&lt;/p&gt;

&lt;p&gt;I am still learning. We all are. &lt;/p&gt;

&lt;p&gt;But every SUMIFS formula I write, every VLOOKUP I debug, every PivotTable I build from a chaotic spreadsheet — I am not just producing an output. &lt;/p&gt;

&lt;p&gt;I am training a muscle. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;The muscle that asks: *&lt;/em&gt;&lt;br&gt;
• What does this data actually say? &lt;br&gt;
• What is it hiding? &lt;br&gt;
• And what decision should it impact?&lt;/p&gt;

&lt;p&gt;That muscle does not care what tool you use. &lt;/p&gt;

&lt;p&gt;However, if you are just starting out, Excel is one of the best places to build it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Personal Reflection
&lt;/h3&gt;

&lt;p&gt;Learning Excel has genuinely changed my perception of data.&lt;/p&gt;

&lt;p&gt;Earlier, I used to look at numbers as isolated values—figures on a screen without much meaning attached to them. But now, I naturally start asking questions. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What does this number represent? &lt;/li&gt;
&lt;li&gt;Why does it change? &lt;/li&gt;
&lt;li&gt;What story is it telling?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Working with Excel trained me to slow down and pay attention to structure—how data is organized, how small inconsistencies can affect results, and how a simple formula can reveal something deeper. &lt;/p&gt;

&lt;p&gt;Even something as basic as cleaning a dataset made me realize that good analysis starts long before any insights appear.&lt;/p&gt;

&lt;p&gt;What stands out the most is how Excel shifted my mindset. &lt;/p&gt;

&lt;p&gt;I no longer rush to conclusions. &lt;/p&gt;

&lt;p&gt;I Instead explore, test, and verify. I’ve become more curious and more intentional with data.&lt;/p&gt;

&lt;p&gt;You could say, learning Excel didn’t just teach me a tool—it changed how I think.&lt;/p&gt;

&lt;p&gt;So, the next time someone hands you a .xlsx file and expects answers — do not reach for something fancier. &lt;/p&gt;

&lt;p&gt;Open Excel. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trust the grid. And deliver.&lt;/strong&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  &lt;em&gt;Share your past &amp;amp; present experiences of excel in the comments below; what was learning data analysis with Excel like? I'd love to hear from you.&lt;/em&gt;
&lt;/h6&gt;

</description>
      <category>datascience</category>
      <category>beginners</category>
      <category>excel</category>
      <category>dataanlytics</category>
    </item>
  </channel>
</rss>
