<?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: Skillmarked</title>
    <description>The latest articles on DEV Community by Skillmarked (@skillmarked).</description>
    <link>https://dev.to/skillmarked</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4243213%2F3e304c69-7ed7-4591-9b2e-9b0db786aea2.png</url>
      <title>DEV Community: Skillmarked</title>
      <link>https://dev.to/skillmarked</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/skillmarked"/>
    <language>en</language>
    <item>
      <title>PL-300: 7 Power BI answers that look right and cost you points</title>
      <dc:creator>Skillmarked</dc:creator>
      <pubDate>Fri, 13 Nov 2026 15:43:26 +0000</pubDate>
      <link>https://dev.to/skillmarked/pl-300-7-power-bi-answers-that-look-right-and-cost-you-points-1a4b</link>
      <guid>https://dev.to/skillmarked/pl-300-7-power-bi-answers-that-look-right-and-cost-you-points-1a4b</guid>
      <description>&lt;p&gt;You can build Power BI reports every day and still lose points on &lt;strong&gt;PL-300 (Microsoft Power BI Data Analyst)&lt;/strong&gt;. The exam likes questions where the answer you'd reach for at work is &lt;em&gt;almost&lt;/em&gt; right.&lt;/p&gt;

&lt;p&gt;Here are seven of those, across all four domains.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Sorting month names by the Date column
&lt;/h2&gt;

&lt;p&gt;Your months come out as April, August, December… The fix is &lt;strong&gt;Sort by column&lt;/strong&gt;, but the column you sort by matters.&lt;/p&gt;

&lt;p&gt;The rule: the sort column must have &lt;strong&gt;exactly one value for each value&lt;/strong&gt; of the column you're sorting. Sorting &lt;em&gt;Month Name&lt;/em&gt; by &lt;em&gt;Month Number&lt;/em&gt; works. Sorting &lt;em&gt;Month Name&lt;/em&gt; by &lt;em&gt;Date&lt;/em&gt; fails, because every month name has many dates.&lt;/p&gt;

&lt;p&gt;If an answer option sorts by the date column "because it's already in order", it's the trap.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Reporting by ship date when the relationship uses order date
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Sales&lt;/em&gt; has &lt;em&gt;OrderDate&lt;/em&gt; and &lt;em&gt;ShipDate&lt;/em&gt;, and both relate to one &lt;em&gt;Date&lt;/em&gt; table. Only one relationship between two tables can be active, so the ship-date one is inactive (the dashed line).&lt;/p&gt;

&lt;p&gt;For a handful of measures, keep it inactive and switch it on inside the measure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sales by Ship Date =
CALCULATE ( [Total Sales], USERELATIONSHIP ( Sales[ShipDate], 'Date'[Date] ) )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two details the exam checks: &lt;code&gt;USERELATIONSHIP&lt;/code&gt; only works inside &lt;code&gt;CALCULATE&lt;/code&gt; (or &lt;code&gt;CALCULATETABLE&lt;/code&gt;), and only for a relationship that already exists in the model.&lt;/p&gt;

&lt;p&gt;The other valid answer is a &lt;strong&gt;copy of the date table per role&lt;/strong&gt; (a &lt;em&gt;Ship Date&lt;/em&gt; table with its own active relationship). That's the right choice when users need to slice by order date and ship date independently, or see both in the same visual. Read the scenario for that requirement before choosing.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Time intelligence that "should" work but doesn't
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;TOTALYTD&lt;/code&gt; and &lt;code&gt;SAMEPERIODLASTYEAR&lt;/code&gt; expect a proper date table:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one row per day, no gaps, no duplicates&lt;/li&gt;
&lt;li&gt;a Date-typed column with no blanks&lt;/li&gt;
&lt;li&gt;complete years covering every date in your facts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then &lt;strong&gt;mark it as a date table&lt;/strong&gt;. Marking also lets time intelligence work when the relationship uses an integer key like &lt;em&gt;20260131&lt;/em&gt; instead of a date.&lt;/p&gt;

&lt;p&gt;And once you have your own date table, turn off &lt;strong&gt;Auto date/time&lt;/strong&gt;. It creates a hidden date table for every date column, which bloats the model and doesn't share dates across fact tables.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Expecting CALCULATE to respect the slicer
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Red Sales = CALCULATE ( [Total Sales], Product[Color] = "Red" )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Put a slicer on Color, pick &lt;strong&gt;Blue&lt;/strong&gt;, and this still shows red sales. A simple filter argument &lt;strong&gt;replaces&lt;/strong&gt; any existing filter on that column.&lt;/p&gt;

&lt;p&gt;If you want it to intersect with the slicer instead (blank for Blue), wrap it: &lt;code&gt;KEEPFILTERS ( Product[Color] = "Red" )&lt;/code&gt;. Questions about "why does this measure ignore the slicer" are usually this.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Testing RLS with your own account
&lt;/h2&gt;

&lt;p&gt;You set up row-level security, publish, open the report and see everything. Is RLS broken?&lt;/p&gt;

&lt;p&gt;Probably not. RLS applies to &lt;strong&gt;Viewers&lt;/strong&gt;, and to people who get access through an app or sharing. &lt;strong&gt;Admins, Members and Contributors of the workspace are not filtered.&lt;/strong&gt; If you're a Member, you'll see all rows.&lt;/p&gt;

&lt;p&gt;Two more details that turn up in questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Roles you define in Desktop only take effect once you &lt;strong&gt;assign members&lt;/strong&gt; in the service (&lt;em&gt;semantic model &amp;gt; Security&lt;/em&gt;). Security groups are the tidy way to do that.&lt;/li&gt;
&lt;li&gt;Once RLS exists, someone with access to the report but &lt;strong&gt;no role&lt;/strong&gt; sees &lt;strong&gt;no data&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Dynamic RLS with USERNAME()
&lt;/h2&gt;

&lt;p&gt;For "each salesperson sees only their own rows", you want one role with a filter like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Email] = USERPRINCIPALNAME ()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;usually on a user mapping table, with the filter flowing to the facts through relationships.&lt;/p&gt;

&lt;p&gt;Why not &lt;code&gt;USERNAME()&lt;/code&gt;? In Desktop it returns &lt;em&gt;DOMAIN\user&lt;/em&gt;, while &lt;code&gt;USERPRINCIPALNAME()&lt;/code&gt; returns the sign-in name in both Desktop and the service. If one option uses each, pick the UPN.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. The wrong gateway (or a gateway you don't need)
&lt;/h2&gt;

&lt;p&gt;Scheduled refresh from an on-premises SQL Server needs an &lt;strong&gt;on-premises data gateway&lt;/strong&gt;. Two traps around it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Personal mode&lt;/strong&gt; serves one user and supports &lt;strong&gt;Import refresh only&lt;/strong&gt;. If the scenario mentions DirectQuery, several users or a team, it's &lt;strong&gt;standard mode&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud sources&lt;/strong&gt; such as Azure SQL Database, SharePoint Online or Dataverse don't need a gateway at all. "Install a gateway" is a distractor there.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to study for this
&lt;/h2&gt;

&lt;p&gt;Most of these only stick once you've hit them yourself. Build one small model end to end:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Make a proper date table and sort month names correctly.&lt;/li&gt;
&lt;li&gt;Add a ship-date measure with &lt;code&gt;USERELATIONSHIP&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Publish it, add a colleague as a Viewer, and test dynamic RLS.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;We run &lt;a href="https://skillmarked.com/study-guides/pl-300?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=pl-300-traps" rel="noopener noreferrer"&gt;Skillmarked&lt;/a&gt;, an independent exam-prep site (not affiliated with Microsoft). The full PL-300 study guide is free: 30 lessons across all four domains, with a &lt;a href="https://skillmarked.com/practice/pl-300?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=pl-300-traps" rel="noopener noreferrer"&gt;practice scenario after every lesson&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>powerplatform</category>
      <category>dax</category>
      <category>microsoft</category>
      <category>certification</category>
    </item>
    <item>
      <title>CCAO-F: the biggest domain isn't prompting. 6 traps that cost people points</title>
      <dc:creator>Skillmarked</dc:creator>
      <pubDate>Fri, 13 Nov 2026 15:37:49 +0000</pubDate>
      <link>https://dev.to/skillmarked/ccao-f-the-biggest-domain-isnt-prompting-6-traps-that-cost-people-points-47b4</link>
      <guid>https://dev.to/skillmarked/ccao-f-the-biggest-domain-isnt-prompting-6-traps-that-cost-people-points-47b4</guid>
      <description>&lt;p&gt;Most people preparing for &lt;strong&gt;CCAO-F (Claude Certified Associate – Foundations)&lt;/strong&gt; spend their time on prompting. That makes sense: it's the fun part. But look at the domain weights:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Output Evaluation and Validation&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;21%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workflow Integration and Solution Design&lt;/td&gt;
&lt;td&gt;16%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Governance, Risk, and Responsible Use&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prompting and Task Execution&lt;/td&gt;
&lt;td&gt;14%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Product and Model Selection&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Configuration and Knowledge Management&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Troubleshooting and Optimisation&lt;/td&gt;
&lt;td&gt;10%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The largest domain is about &lt;strong&gt;judging&lt;/strong&gt; what Claude gives you, not about asking for it. And the questions are written so that the confident-sounding option is often the wrong one.&lt;/p&gt;

&lt;p&gt;Here are six patterns worth knowing before exam day.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Trusting step-by-step instructions for a system Claude has never seen
&lt;/h2&gt;

&lt;p&gt;Hallucinations aren't spread evenly. They cluster where Claude has the least to go on: your company's internal tools, very recent events, and precise figures that weren't in the material you gave it.&lt;/p&gt;

&lt;p&gt;The riskiest shape is a tidy, numbered how-to for an internal system. It reads like documentation, which is exactly why it's dangerous. If an answer option says "follow the steps, they're clear and specific", be suspicious. Specific is not the same as grounded.&lt;/p&gt;

&lt;p&gt;A related trap: Claude saying it has &lt;em&gt;done&lt;/em&gt; something outside the chat, such as sent an email or saved a file somewhere. Claude can hallucinate its own actions too.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Fixing the one contradiction you spotted
&lt;/h2&gt;

&lt;p&gt;You notice the summary says revenue went up while the table shows it went down. Tempting answer: correct that line and send it.&lt;/p&gt;

&lt;p&gt;The better answer: an inconsistency is a signal that the output as a whole isn't reliable. Re-check the &lt;strong&gt;whole&lt;/strong&gt; thing against the source, not just the sentence that caught your eye.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Treating bias as one bad word
&lt;/h2&gt;

&lt;p&gt;Bias in outputs shows up as a pattern: in how different people are described, what's assumed about them, which framing gets used. Deleting one loaded word doesn't fix a pattern.&lt;/p&gt;

&lt;p&gt;Read across descriptions side by side rather than sentence by sentence. If you swapped the names, would the descriptions still read the same?&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Picking the reviewer by seniority
&lt;/h2&gt;

&lt;p&gt;When an output needs human review, the exam cares about &lt;strong&gt;who&lt;/strong&gt; reviews it. The right reviewer is someone &lt;em&gt;qualified in the subject&lt;/em&gt; who can actually change the output. The most senior person in the room, or whoever's free, is the distractor.&lt;/p&gt;

&lt;p&gt;And what makes something need review? Things like an external audience, legal or financial consequences, decisions about people, safety, or anything you can't take back once it's sent. One of those is enough. Note what's &lt;em&gt;not&lt;/em&gt; on the list: how polished or confident the draft sounds.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Escalating everything "to be safe"
&lt;/h2&gt;

&lt;p&gt;The opposite failure is just as wrong. Sending every routine internal note through formal review buries reviewers and slows down the outputs that really need them. If an option escalates a low-stakes draft "just in case", it's usually not the answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Putting the reference document in the custom instructions
&lt;/h2&gt;

&lt;p&gt;This one is from Configuration and Knowledge Management (12%), and it catches a lot of people.&lt;/p&gt;

&lt;p&gt;A Claude Project has two halves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Custom instructions&lt;/strong&gt;: how Claude should behave (tone, role, format, standing rules)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project knowledge&lt;/strong&gt;: the material Claude works from (documents, files)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A quick test: &lt;em&gt;is this a rule about behaviour, or material to consult?&lt;/em&gt; Rules go in the instructions; material goes in knowledge. Pasting a whole policy document into the instructions "so Claude never misses it" is the classic wrong answer, and so is uploading a standing rule as a file and expecting it to govern every reply.&lt;/p&gt;

&lt;p&gt;A practical way to build a Project: whatever you re-explain at the start of every chat belongs in the instructions; whatever you re-attach belongs in knowledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to study for this
&lt;/h2&gt;

&lt;p&gt;Set up a real Claude Project for something you do every week while you study. Deciding what goes in instructions versus knowledge, and checking the outputs critically, covers a big share of what the exam tests.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;We run &lt;a href="https://skillmarked.com/study-guides/ccao-f?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=ccao-f-traps" rel="noopener noreferrer"&gt;Skillmarked&lt;/a&gt;, an independent exam-prep site (not affiliated with Anthropic). The full CCAO-F study guide is free, 30 lessons across all seven domains, and there's a &lt;a href="https://skillmarked.com/practice/ccao-f/mini-mock?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=ccao-f-traps" rel="noopener noreferrer"&gt;free 10-question mock test&lt;/a&gt; you can take without an account.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>certification</category>
      <category>career</category>
    </item>
  </channel>
</rss>
