<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="www.w3.org/2005/Atom" xmlns:sy="purl.org/rss/1.0/modules/syndication/" xmlns:dc="purl.org/dc/elements/1.1/" xmlns:content="purl.org/rss/1.0/modules/content/" xmlns:wfw="wellformedweb.org/CommentAPI/" xmlns:slash="purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>BI as Business Insight</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/danrub/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/danrub/feed.xml</link>
    <description>Proving that what you do has real impact.</description>
    <lastBuildDate>Tue, 18 Oct 2016 00:44:01 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>HowTo: Add a record thru code AndAlso Get Current User with Visual Studio LightSwitch</title>
      <link>https://docs.microsoft.com/archive/blogs/danrub/howto-add-a-record-thru-code-andalso-get-current-user-with-visual-studio-lightswitch</link>
      <pubDate>Fri, 29 Apr 2016 18:21:14 GMT</pubDate>
      <dc:creator><![CDATA[Daniel Rubiolo]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/danrub/?p=715</guid>
      <description><![CDATA[In my BI journey these last several years, I had to face a common need: provide a way for business...]]></description>
      <content:encoded><![CDATA[<p>In my BI journey these last several years, I had to face a common need: provide a way for business analysts to maintain (add, modify, delete) records on a backend table. It’s very common that users need to classify/aggregate the data from your transactional systems with taxonomies not in those source systems, and thus the need to provide them a way to maintain the records for these taxonomies.</p><p>I’d been using Visual Studio LightSwtich for this, mostly the VB’s SilverLight project types. </p><p>During the last few months, I had to take these skills up several notches, in order to develop a couple more complex applications for my team. The first still focused on the Windows Client thru SilverLight on a 2 Tier deployment. The last one had stringent requirements, including having to run on other browsers other than IE (so, no SilverLight), and enable users from outside the company (not in our AD domain)… so I jumped to learn about the Visual Studio LightSwitch world of HTML5 projects on a 3 Tier deployment… Enter JavaScript &amp; CSS &amp; DOM, asynch, promises, etc…</p><p>So after going thru all of LightSwitch's <a href="https://msdn.microsoft.com/en-us/library/ff851953.aspx">documentation</a>, <a href="https://msdn.microsoft.com/en-us/library/ff852064.aspx">tutorials</a>, <a href="https://blogs.msdn.microsoft.com/lightswitch/">blogs</a>, the <a href="lightswitchhelpwebsite.com/Home.aspx">help website</a>, <a href="https://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=lightswitch">community forum</a>, and many others… I started researching the more advanced challenges. And found great &amp; lengthy discussions around a few common use cases, such as creating records on a table thru code, and get in the UI information about the current user; which were very informative, but didn’t totally solve the problems I was particularly facing. So let me share here what I learnt.<h3><b>Requirements</b></h3></p><p>These were the key design requirements for the solution:<ol><li>Backend on Azure SQL DB.</li><li>Deployment on an Azure Web Site.</li><li>Support for Modern Browsers.</li><li>Users may be from outside the company.</li><li>Track usage of the app.</li><li>Users can only see what they own (per role).</li></ol></p><p>So these led me to decide for HTML5 (Req. #2, #3, #4), 3 Tier Deployment (Req. #1, #2, #3), using Forms Authentication (Req. #1, #2, #4). To reuse my previous experience, the server code would be on VB.<h3><b>Track Usage &amp; Getting the User’s login</b></h3></p><p>I see Req. #5 as a common need for having some instrumentation to know basic things on usage of the app. Req. #6 drove the need to know a lot more about the logged user than just it’s login alias/name.</p><p>This depicts kind of what I needed:</p><p><img width="831" height="189" title="clip_image002" style="margin: 0px" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image00218.png" border="0"/><ol><li>Get the user’s name.</li><li>Get the user’s login.</li><li>Get the user’s role(s) in the app.</li><li>If the role is “Partner”, then get the Company Name.</li><li>Get appropriate counts from across related tables filtered for this Company.</li></ol></p><p>So, I created a screen for Home page of type “Browse” with no data associated to it.<ul><li>Added a Local Property (thru the “Add Data Item” button in the screen designer), of type String named “UserInfoString” that will show the welcome string message top right.</li><li>Added Local Properties of type Integer for the counts (named “CntLocations” and “CntOffers”).</li><li>Dropped these properties into the designer, at the top:<br /><img width="351" height="214" title="clip_image004" style="margin: 0px" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image00413.png" border="0"/></li><li>For example, the UserInfoString is formatted to not show the name and right aligned (there’s a bit of CSS applied to it for color &amp; format):<br /><img width="182" height="376" title="clip_image006" style="margin: 0px" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image00616.png" border="0"/></li></ul></p><p>Now, to get the appropriate values into these Local Properties, I had to write code in the “created” method for the screen:</p><p><img width="246" height="211" title="clip_image008" style="margin: 0px" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image00812.png" border="0"/></p><p><img width="904" height="479" title="clip_image010" style="margin: 0px" alt="clip_image010" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image0105.png" border="0"/><ol><li>Open a connection to the data.</li><li>A pointer “varTrackThisVisit” to a new record on the “AppUsersSet” table in the “ApplicationData” data source (under the Server project of the solution). [This is the table where I track screen’s usage (instrumentation), and while doing that, I collect info about the user; see below.]</li><li>The “Screen” field of this new record (referenced by “varTrackThisVisit.Screen”) receives the DisplayName of this screen (in this case is the Home screen, but you can use this code in other screens).</li><li>After passing the screen’s name, now I save this new record thru the connection opened in step 1:<ol><li>Explained below: when I save the record, I take the opportunity that the “Inserting” method runs in the server, to collect info about the user.</li><li>I use the “then()” promise to ensure the data gets saved before continuing the processing for 5, 6, 7.</li></ol></li><li>Once the record finished saving (thanks to the “then”), I start concatenating the string into the Local Property for the user info.</li><li>If the user has a role (checking that the role is NOT null or empty, by going thru the ELSE of the IF statement), I add the role portion of the string (by using the “+=”).</li><li>If the role of the user is “Partner”, and the company name is not null (the UserPartner field), then I finish concatenating the company’s name to the string.</li><li>I get the counts of Locations and Offers into the other two Local Properties created earlier in the screen.<ol><li>Explained below: to get the appropriate count of records for the user logged in, I’ve a FILTER condition in these tables.</li></ol></li></ol></p><p>That will give me what I needed to show in the screen. Before I cover how I get the User’s info, let me show the CSS code I used for the formatting of the “UserInfoString” Local Property in the Home screen, added as part of the “PostRender” method:</p><p><img width="506" height="266" title="clip_image002[4]" style="margin: 0px" alt="clip_image002[4]" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image00242.png" border="0"/></p><p><img width="529" height="207" title="clip_image004[4]" alt="clip_image004[4]" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image00441.png" border="0"/></p><p>Now, the “AppUsers” table is defined as:</p><p><img width="666" height="449" title="clip_image012" style="margin: 0px" alt="clip_image012" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image0124.png" border="0"/></p><p>On the “Inserting” method of this table:</p><p><img width="264" height="248" title="clip_image014" style="margin: 0px" alt="clip_image014" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image0142.png" border="0"/></p><p><img width="605" height="342" title="clip_image016" style="margin: 0px" alt="clip_image016" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image0162.png" border="0"/><ol><li>When you’re saving a new record (from the “saveChanges()” in the earlier code) the “Inserting” method launches. The “entity” refers to this new record, so in this step we get the PersonID (login name) and FullName from the User of the Application (as defined when users are created for the Forms Authentication (the SilverLight project to manage the auth)). [You could also use User.Name instead of User.PersonID].</li><li>Here we need to concatenate the possible various roles a user may have.</li><li>So, we go thru all the roles.</li><li>Concatenating into the ThisUserRoles variable.</li><li>And now we assign the roles to the UserRole field of this new record.</li><li>Here we get the Company’s name for this user. There’s a table in the model named “PartnersSet” that have info about the company, as well as the user login for this company. The PartnersSet table has a FILTER for the current user (see below).</li><li>So, if there’s any company for this user:</li><li>We assign the company’s name to the UserPartner field of this new record. [Have to use “first()” because it’s a set of records, however it’ll have only one record.]</li></ol></p><p>So, the FILTER for the PartnersSet table is:</p><p><img width="971" height="444" title="clip_image018" style="margin: 0px" alt="clip_image018" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image0183.png" border="0"/><ol><li>The Partners table with some of its fields shown, related to the company.</li><li>Get to the FILTER to enter the code.</li><li>The field “SecurityLogin” will relate to the user’s login from the Forms Authentication entry (the security/app administration needs to link these with the same login, in the screen that that maintains this table).</li></ol></p><p><img width="675" height="152" title="clip_image020" style="margin: 0px" alt="clip_image020" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image0203.png" border="0"/><ol><li>Will filter the records to only the ones this user can see, but only if this user is a Partner (by having the “MSPartners” permission). If not, then no filter to the table gets applied, so administrators can access all records).</li><li>The field “SecurityLogin” is used to filter by the User.Name logged in the app.</li></ol></p><p>Similar filters were applied to the related tables “PartnersLocationsSet” and “PartnersOffersSet”, so we can have the appropriate count of records. But as these are related tables to Partners, the field used in each table needs to navigate thru the relationships:</p><p><img width="805" height="277" title="clip_image022" style="margin: 0px" alt="clip_image022" src="https://msdnshared.blob.core.windows.net/media/2016/04/clip_image022.png" border="0"/><ol><li>The “PartnersLocationsSet” table relates directly to the “Partners” table, so the navigation to the “SecurityLogin” field in order to apply the filter has one hop.</li><li>The “PartnersOffersSet” table relates to the “Partners” table thru the “PartnersLocations” table, so the navigation to the “SecurityLogin” field in order to apply the filter has two hops.</li></ol></p><p>This covers the objective I had. From this foundation, a lot more now can be done to extend functionality. Hope this helps.</p><p><br /></p><p><a name="_MailAutoSig"></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Use Ranges/Bands for measuring Frequencies and visualizing Empirical Distributions</title>
      <link>https://docs.microsoft.com/archive/blogs/danrub/use-rangesbands-for-measuring-frequencies-and-visualizing-empirical-distributions</link>
      <pubDate>Tue, 29 Mar 2016 14:19:35 GMT</pubDate>
      <dc:creator><![CDATA[Daniel Rubiolo]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/danrub/?p=613</guid>
      <description><![CDATA[ScenarioThe majority of BI-related activities require measuring something on your business process....]]></description>
      <content:encoded><![CDATA[<h3><font color="#9b00d3">Scenario</font></h3><p>The majority of BI-related activities require measuring something on your business process. These measures usually relate to one of:</p><ol><li>Inputs to a business process (usually leading indicators, i.e. number of incidents occurring; volume of calls happening; duration of calls; number of transactions).</li><li>How the process performs (i.e. number of tickets per analyst; time to resolution; length of queues).</li><li>Outputs of that process (usually lagging indicators, i.e. satisfaction scores; TTR [Avg. Time To Resolution]; costs; throughput; sales).</li></ol><p>In almost all of these cases we need data over time to reflect how these measures progress, and be able to make decisions to drive improvements and also verify the impact of previous decisions (i.e. did adding a resource help improve satisfaction scores or TTR?).</p><p>One of the most common analyses in these cases relates to measuring the frequencies of these events happening (i.e. how often?), in order to understand the most common cases, as well as the least common ones, and ultimately the probability of a value to happen. So, counting how often the transactions happen on intervals (AKA ranges or bands) is very useful information.</p><p>Let’s take a very simple example, in which our dataset is Transaction IDs and its time to resolution in minutes (Duration):</p><p><img width="202" height="362" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image751.png" border="0"/></p><h3><font color="#9b00d3">HowTo</font></h3><p>If we use the articles referenced at the bottom of this post, we could use those techniques to define the specific ranges we want; however, that assumes we know the data (meaning that we know min/max values and possible ranges). If we want to do a more generic analysis, we’ll have to calculate dynamically the ranges based on the input data, and the number of ranges in which we want to analyze it. </p><p>Let’s say we want to know the frequencies of these durations on intervals of 2 minutes, and see the distribution.</p><p>For that, we need to divide the range of values in equal intervals of 2 minutes. Then, we’ll count how many transactions happened on each interval. When we picture that with a bar chart with the ranges as X axis, and the count of transactions as Y, we’ll obtain the empirical distribution of that data set.</p><p>We’ll need these 4 elements:</p><ul><li>A <font color="#ff0000">measure</font> to obtain the minimum duration across all the dataset.</li><li>A <strong></strong><strong></strong><strong></strong><strong></strong><strong></strong><strong></strong><strong></strong><strong><font color="#ff0000" size="3"><strong></strong><strong></strong><strong></strong><strong></strong><strong></strong><strong></strong><strong></strong><strong>column</strong></font></strong> that calculates the range (as a number) to which the current Duration for a given transaction belongs to.</li><li>A second <strong><font color="#ff0000">column</font></strong> that calculates the label for the range (so we use as X axis in the chart).</li><li>A <font color="#ff0000">measure</font> that calculates the number of transactions on each range.</li></ul><p>The first <font color="#ff0000">measure</font> calculates the minimum duration of the entire dataset:</p><p><img width="578" height="152" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image752.png" border="0"/></p><p>With that, we can calculate a <font color="#ff0000">column</font> for the range to which this transaction’s duration belongs to (this way we calculate once the MIN(Duration) and use multiple times):</p><p><img width="581" height="151" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image753.png" border="0"/></p><p>Then we calculate another <font color="#ff0000">column</font> for the label of the range, which we’ll use in the chart:</p><p><img width="772" height="154" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image754.png" border="0"/></p><p>And finally, we calculate the <font color="#ff0000"><strong>measure</strong></font> for the frequency (i.e. how many transactions had a duration within a given range?):</p><p><img width="577" height="154" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image755.png" border="0"/></p><h3><font color="#9b00d3">Results</font></h3><p>We can now create a bar chart with the Range Label in the X axis, and Frequency on the Y axis:</p><p><img width="374" height="283" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image756.png" border="0"/></p><p>which reflects the real distribution of durations in that dataset (which I call here “empirical distribution” because it’s based on the data itself and not on any statistical distribution)… the “shape” of the bar chart reflects the actual distribution of the dataset. As over time you refresh the dataset, the ranges will recalculate and reflect the new buckets:</p><p><img width="371" height="280" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image757.png" border="0"/></p><p>This information can be used to calculate the empirical probability of new values on these ranges, if conditions in the business process don’t change. [I call it “empirical” because, as mentioned above, we use the actual data and not any theoretical or statistical distribution or any kind of sampling.]&nbsp; If you make a decision in your business process (i.e. adding 2 people to help resolve tickets faster), then a change in the “shape” of your KPI (“Duration” in this case) would reflect the impact of this decision on the business process, and thus give you a way to assess how valuable that decision was (a topic for a future post).</p><h3><font color="#9b00d3">Related Posts</font></h3><ul><li>“<a href="https://blogs.msdn.microsoft.com/danrub/2016/03/20/ranges-as-filters-for-dates/" target="_blank">Ranges as Filters for Dates</a>”.</li><li>“<a href="https://blogs.msdn.microsoft.com/danrub/2016/03/29/grouping-in-rangesbands/" target="_blank">Grouping in Ranges/Bands</a>”.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Grouping in Ranges/Bands</title>
      <link>https://docs.microsoft.com/archive/blogs/danrub/grouping-in-rangesbands</link>
      <pubDate>Tue, 29 Mar 2016 10:43:36 GMT</pubDate>
      <dc:creator><![CDATA[Daniel Rubiolo]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/danrub/?p=563</guid>
      <description><![CDATA[ScenarioIn my previous post “Ranges as Filters for Dates” I covered a way to group on ranges of...]]></description>
      <content:encoded><![CDATA[<h3><font color="#9b00d3">Scenario</font></h3><p>In my previous post “<a href="https://blogs.msdn.microsoft.com/danrub/2016/03/20/ranges-as-filters-for-dates/" target="_blank">Ranges as Filters for Dates</a>” I covered a way to group on ranges of months that we could use in selections. In this post I’ll share a way to simplify the measures using DAX’s SWITCH function, and also apply it to other cases.</p><h3><font color="#9b00d3">HowTo</font></h3><p>In the previous post we used several nested IF statements to calculate the column “Time Bucket”… let’s simplify that by using the <a href="https://msdn.microsoft.com/en-us/library/gg492166.aspx" target="_blank">SWITCH function</a>. </p><ul><li>The first argument is the expression to evaluate. Because we’re creating time buckets, we need conditions that will evaluate to TRUE/FALSE, and we want to take as value the first TRUE statement… so, the expression is TRUE().</li><li>Then we have the list of pairs of “condition to evaluate”/”value to return if true” in order of precedence, because the SWITCH function will return the value of the first condition that finds being TRUE.</li><li>Lastly, the value for the ELSE.</li></ul><p><img width="573" height="276" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image744.png" border="0"/></p><p>Similarly, we can use SWITCH to simplify the column’s formula that will return a numeric value that we’ll use to order the previous column as explained in that post.</p><h3><font color="#9b00d3">Results</font></h3><p>Same as in the previous post. For example:</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image2610.png"><img width="1151" height="438" title="image26" style="border: 0px currentcolor" alt="image26" src="https://msdnshared.blob.core.windows.net/media/2016/03/image26_thumb.png" border="0"/></a></p><h3><font color="#9b00d3">Related Posts</font></h3><ul><li>“<a href="https://blogs.msdn.microsoft.com/danrub/2016/03/20/ranges-as-filters-for-dates/" target="_blank">Ranges as Filters for Dates</a>” as mentioned above.</li><li>“<a href="https://blogs.msdn.microsoft.com/danrub/2016/03/29/use-rangesbands-for-measuring-frequencies-and-visualizing-empirical-distributions/" target="_blank">Use Ranges/Bands for measuring Frequencies and visualizing Empirical Distributions</a>”.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Ranges as Filters for Dates</title>
      <link>https://docs.microsoft.com/archive/blogs/danrub/ranges-as-filters-for-dates</link>
      <pubDate>Sun, 20 Mar 2016 18:26:36 GMT</pubDate>
      <dc:creator><![CDATA[Daniel Rubiolo]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/danrub/?p=551</guid>
      <description><![CDATA[ScenarioWe may have data across months, and we’d like to, at times, focus on the next 3 months, the...]]></description>
      <content:encoded><![CDATA[<h3><font color="#9b00d3">Scenario</font></h3><p>We may have data across months, and we’d like to, at times, focus on the next 3 months, the following quarter, or the first 6 months… or similar, i.e. how many people between 20-30 years old, or 30-40, etc. How do we define these ranges, and how can we visualize them?</p><h3><font color="#9b00d3">HowTo</font></h3><p>Let’s say we have a dataset measuring costs for projects across two years. We’d like to have ranges for:</p><ul><li>All months before today.</li><li>This current month.</li><li>The next 3 months.</li><li>The following 3 months.</li><li>The next year.</li></ul><p>These calculations will be needed in the “Dates” table. First we need a column to calculate the buckets (in this case, the number of months from today):</p><p><img width="588" height="172" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image444.png" border="0"/></p><p>Then, another column to calculate the actual range based on the buckets (these could be combined):</p><p><img width="587" height="246" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image445.png" border="0"/></p><p>Finally, a column that we’ll use to order the ranges when we display them (on a logical order that makes sense, and not alphabetically):</p><p><img width="587" height="245" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image446.png" border="0"/></p><p>When we select the “Time Bucket” column, we can use the “Sort By Column” option to choose “TimeBucketOrder”:</p><p><img width="589" height="276" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image447.png" border="0"/></p><p>Now we can create visualizations like these:</p><p><img width="1147" height="432" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image448.png" border="0"/></p><h3><font color="#9b00d3">Results</font></h3><p>If we filter by “Past”, will take all months before the current one:</p><p><img width="1148" height="443" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image449.png" border="0"/></p><p>Current and next quarter:</p><p><img width="1146" height="437" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image450.png" border="0"/></p><p>And if we select America’s region, we highlight the values for that region on the selected range of dates:</p><p><img width="1151" height="438" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image451.png" border="0"/></p><h3><font color="#9b00d3">Related Posts</font></h3><ul><li>“<a href="https://blogs.msdn.microsoft.com/danrub/2016/03/29/grouping-in-rangesbands/" target="_blank">Grouping in Ranges/Bands</a>” for ways to simplify a bit this scenario.</li><li>“<a href="https://blogs.msdn.microsoft.com/danrub/2016/03/29/use-rangesbands-for-measuring-frequencies-and-visualizing-empirical-distributions/" target="_blank">Use Ranges/Bands for measuring Frequencies and visualizing Empirical Distributions</a>”.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Parameters for What-If Scenarios in Power BI</title>
      <link>https://docs.microsoft.com/archive/blogs/danrub/parameters-for-what-if-scenarios-in-power-bi</link>
      <pubDate>Sun, 20 Mar 2016 07:18:58 GMT</pubDate>
      <dc:creator><![CDATA[Daniel Rubiolo]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/danrub/?p=471</guid>
      <description><![CDATA[ScenarioIf we increase the current forecast by 5%, what would have happened with the variance to...]]></description>
      <content:encoded><![CDATA[<h3><font color="#9b00d3">Scenario</font></h3><p>If we increase the current forecast by 5%, what would have happened with the variance to forecast? If we had reduced by 3% instead, then what? How can we provide an input parameter to calculate variables and see the impact of that change in the charts and trends?</p><p>Let’s start from a simple report that shows Actual and Forecast in Euros for the year, and its Variance in EU and %. The first column shows the current values, the second column in blue shows our estimations after we input a parameter of change (they are the same at start). The Waterfall chart shows the cumulative variance per region. The bars shows actuals, and the lines will show current (black) versus estimated (red) forecast (they overlap at start):</p><p><img width="606" height="445" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image386.png" border="0"/></p><p>There’s also a filter at the page level for our input parameter, which starts at 0:</p><p><img width="225" height="212" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image387.png" border="0"/></p><p>So, if we enter a 7.5 value on that parameter, the Estimated Forecast will increase by 7.5%, and this would have been the hypothetical impact:</p><ul><li>Total variance to forecast would have been 11.6% or almost 15MM EU.</li><li>The red line of the estimated forecast now departs from the black one.</li></ul><p><img width="797" height="452" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image388.png" border="0"/></p><h3><font color="#9b00d3">HowTo</font></h3><p>We start with the measures in green on the first column, then we need to implement the selection of the parameter, and finally the estimated measures using the chosen value.</p><h3>1. The current measures</h3><p>We start with these four measures on the “Plans” table: Actuals, Forecast, and Variance in Euros, and also Variance in %:</p><p><img width="586" height="153" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image389.png" border="0"/></p><p><img width="582" height="152" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image390.png" border="0"/></p><p><img width="582" height="153" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image391.png" border="0"/></p><p><img width="584" height="153" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image392.png" border="0"/></p><h3>2. The parameter</h3><p>Power BI Desktop doesn’t support parameters yet, so how can we simulate it for our specific purpose? What if we had a list of values to chose from? So then we could filter that list with our selection, and we can use that filtered value in our calculations.</p><p>We can use a couple features of Power BI Desktop that allows us to create a table by entering our own data (manually or copy/paste from i.e. Excel). This feature is called “Enter Data” in the “External Data” group on the “Home” ribbon:</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image1910.png"><img width="420" height="122" title="image19" style="margin: 0px;border: 0px currentcolor" alt="image19" src="https://msdnshared.blob.core.windows.net/media/2016/03/image19_thumb.png" border="0"/></a></p><p>Which opens the “Create Table” dialog, in which you can name the table, create columns, and enter data for it (or copy/paste from i.e. Excel):</p><p><a href="https://msdnshared.blob.core.windows.net/media/2016/03/image2310.png"><img width="659" height="361" title="image23" style="margin: 0px;border: 0px currentcolor" alt="image23" src="https://msdnshared.blob.core.windows.net/media/2016/03/image23_thumb1.png" border="0"/></a></p><p>Let’s say we want in our model to choose What-If values in the range of –15 to 15 in 0.5 increments… this list can easily be build in Excel:</p><p><img width="117" height="380" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image393.png" border="0"/></p><p>Now we select this list of values (including the label that will become the name of the field we enter on creating the table), and paste it:</p><p><img width="615" height="618" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image394.png" border="0"/></p><p>The “Load” button will create the table; the “Edit” button will open the table in Query Editor in case we want to make additional modifications.</p><p>How will we use this table? We’ll add the “pForecast” field to the page filter area, where the users will be able to enter their chosen value. (We could also use this list of values as a Filter on the canvas, see example in <a href="https://blogs.msdn.microsoft.com/danrub/2016/03/19/dynamic-topn-ranking-in-power-bi/" target="_blank">this blog post</a>). </p><h3>3. The estimation measures</h3><p>Now we can calculate the measures for “estimated” values given the selections on the parameter. These are how we define them:</p><p><img width="583" height="156" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image395.png" border="0"/></p><ul><li>We increase (if the selection in the parameter was positive) or decrease (if negative) the previous value for Forecast, by converting the selected value of the parameter to percentage first.</li><li>The “MIN” function would ensure that in case the user selected multiple options, only the first will be considered in subsequent calculations (this would only happen if we use this as a Filter list on the canvas, as in the blog post referenced earlier; otherwise it has no ill effect).</li><li>An improvement to this formula could be to account for the user entering values that don’t exist in the list.</li></ul><p><img width="584" height="154" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image396.png" border="0"/></p><p><img width="631" height="155" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image397.png" border="0"/></p><p>With these, we can build the visualizations… a Multi-row Card for current values:</p><p><img width="178" height="167" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image398.png" border="0"/></p><p>A Multi-row Card for estimated values:</p><p><img width="199" height="153" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image399.png" border="0"/></p><p>A Waterfall Chart for the regions:</p><p><img width="195" height="162" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image400.png" border="0"/></p><p>And a Line and Stacked Column Chart for actuals versus the two forecasts:</p><p><img width="195" height="324" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image401.png" border="0"/></p><h3><font color="#9b00d3">Result</font></h3><p>Now… what if we reduce the forecast (thus saving some budget) by 5%? We enter “-5” on the parameter:</p><p><img width="796" height="451" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image402.png" border="0"/></p><ul><li>We clearly see that Asia will go out of budget by 1.3MM EU.</li></ul><p>What if we reduce by 3%?</p><p><img width="795" height="450" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image403.png" border="0"/></p><p>And if we select the bar for Europe, the cross-filtering will give us the information for Europe:</p><p><img width="608" height="448" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image404.png" border="0"/></p>]]></content:encoded>
    </item>
    <item>
      <title>Dynamic TopN &amp; Ranking in Power BI</title>
      <link>https://docs.microsoft.com/archive/blogs/danrub/dynamic-topn-ranking-in-power-bi</link>
      <pubDate>Sat, 19 Mar 2016 11:27:56 GMT</pubDate>
      <dc:creator><![CDATA[Daniel Rubiolo]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/danrub/?p=282</guid>
      <description><![CDATA[ScenarioLet’s assume we have data about projects, and we want to rank the projects by budget, so...]]></description>
      <content:encoded><![CDATA[<h3><font color="#9b00d3">Scenario</font></h3><p>Let’s assume we have data about projects, and we want to rank the projects by budget, so that if we filter the data by some criteria (i.e. region, country, or some other classification) the ranking recalculates for the new scope. We also want some metrics calculated for the TopN projects, i.e. total budget for TopN and percent to overall budget. But most importantly, we want TopN to be a dynamic selection, meaning that in using the report, we want to focus on Top5, or Top10, or Top15, etc. by changing our selection at any time.</p><h3><font color="#9b00d3">HowTo</font></h3><p><a href="https://powerbi.microsoft.com/en-us/documentation/powerbi-desktop-quickstart-learn-dax-basics/" target="_blank">Power BI Desktop supports DAX</a> for calculations and data analysis problems. DAX (Data Analysis eXpressions) is a collection of functions, operators, and constants that can be used in formulas or expressions to calculate and return values. A couple of those that we’ll use here are <a href="https://msdn.microsoft.com/en-us/library/gg492185.aspx" target="_blank">RANKX</a> and <a href="https://msdn.microsoft.com/en-us/library/gg492198.aspx" target="_blank">TOPN</a> (see the full <a href="https://msdn.microsoft.com/library/ee634396.aspx" target="_blank">DAX Function Reference here</a>).</p><p>So, we need to rank the projects first. Then we need to implement the option’s selection of the TopN. Then we define the metrics. And finally, we put everything together with some charts &amp; tables using Power BI Desktop.</p><h3>1. Ranking the Projects</h3><p>We will rank the projects by total budget, so we need a “Total_Budget” (with an underscore) measure (not a field, as we need some aggregation), based on the “Total Budget” (without underscore) field… both of these from the “Budget” table:</p><blockquote><p>Total_Budget = SUM(Budget[Total Budget])</p></blockquote><p>On the table of Projects, we create a new measure by right-clicking the “Projects” table on the right-hand pane for Fields (or clicking the “…” to the right of it):</p><p><img width="161" height="95" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image367.png" border="0"/></p><p>And we define the measure (named “Rank” in this case) as follows:</p><blockquote><p>Rank = RANKX(ALL(Projects), Budget[Total_Budget], ,DESC)</p></blockquote><p><img width="669" height="147" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image368.png" border="0"/></p><ul><li>As this measure is on the “Projects” table, the default context for the measure will be the row for which it’s being calculated… and we don’t want the ranking to happen only for that row, but for all the Projects (hence the “ALL(Projects)” as the scope for the ranking). </li><li>Then we define the criteria for ranking the projects; in this case, the total budget for each project that comes from the other measure in the “Budget” table indicated above, with the filtering context of these two tables being related to each other (there’s a relationship between Projects and Budget thru ProjIDs).</li><li>And finally, the bigger the budget, the first to be ranked… so it’s in DESCending order.</li></ul><p>Now we can use this measure in a table with other Projects’ fields, and order by it in ranking order by descending total budget.</p><h2>2. Option’s Selection for TopN</h2><p>We want to allow the selection of TopN, where N could be 5, 10, 15, 20, etc. So, we can use a couple features of Power BI Desktop that allows us to create a table by entering our own data (manually or copy/paste from i.e. Excel). This feature is called “Enter Data” in the “External Data” group on the “Home” ribbon:</p><p><img width="420" height="122" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image369.png" border="0"/></p><p>Which opens the “Create Table” dialog, in which we can name the table, create columns, and enter data for it (or copy/paste from i.e. Excel):</p><p><img width="659" height="361" title="image" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image370.png" border="0"/></p><p><img width="297" height="314" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image371.png" border="0"/></p><p>The “Load” button will create the table; the “Edit” button will open the table in Query Editor in case we want to make additional modifications.</p><p>How will we use this table? We’ll add a filter visualization to the canvas, so these values will be filter options for us to choose from. From the runtime perspective, when we filter a table by a slicer, only records where the criteria is true will be in context, cross-filtering other tables related to it. In this case, there’s no relationship to other tables, but we can create a measure in this new table that will hold the value that was chosen, and then we can use it in other measures’ calculations later… so, we create the following measure on this new “TopN Options” table:</p><p><img width="614" height="160" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image372.png" border="0"/></p><ul><li>The “MIN” function will ensure that in case the user selected multiple options, only the first will be considered in subsequent calculations.</li></ul><h2>3. Metrics for TopN</h2><p>Now that we have the selection of TopN, we can create a couple measures on the “Projects”:</p><p><img width="800" height="157" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image373.png" border="0"/></p><ul><li>This calculates the total budget for the TopN projects.</li><li>The TOPN function takes the value for N (calculated previously from selecting it in the filter with the previous step).</li><li>Then it takes the Table to get the TopN from, and the criteria for deciding what the TopN are.</li><li>This function has some similarities with RANKX, in that it calculates the rank of the projects based on total budget descending, and selects the TopN (instead of just returning the rank’s value).</li></ul><p>The second measure will calculate the percentage of this total budget for TopN projects, against the overall total budget:</p><p><img width="586" height="158" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image374.png" border="0"/></p><p>Another measure we can use for displaying on tables, relates to highlighting which projects are the TopN based on current selections, by returning an arrow we can use as a field in the table for the TopN projects:</p><p><img width="584" height="154" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image375.png" border="0"/></p><ul><li>If the rank for a given project is less or equal to the TopN value selected by the user, then an arrow will be returned for display/highlighting in a table.</li></ul><h2>4. Using all these with Charts and Tables</h2><p>Here’s how we could display some of these measures and fields:</p><p><img width="442" height="176" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image376.png" border="0"/></p><ul><li>The filter is an Slicer configured as:<br /><img width="225" height="98" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image377.png" border="0"/></li><li>The two metrics are Cards configured as:<br /><img width="227" height="101" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image378.png" border="0"/><br /><img width="223" height="104" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image379.png" border="0"/></li><li>The bars are Stacked Bar Chart configured as:<br /><img width="223" height="293" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image380.png" border="0"/></li></ul><p>Then we could have a table with fields from Project and Budget and some of these new measures, ordered by the Rank column:</p><p><img width="412" height="405" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image381.png" border="0"/></p><p>Which is a Table visualization configured as:</p><p><img width="227" height="236" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image382.png" border="0"/></p><p>So, if we select Top15, it all gets filtered accordingly:</p><p><img width="622" height="384" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image383.png" border="0"/></p><p>Taking advantage of Power BI’s cross filtering, if we select the bar for “Asia”, all other controls will get cross filtered, the ranking recalculated to this new subset of projects, and we effectively get the information for the “Top15 projects in Asia”:</p><p><img width="618" height="378" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image384.png" border="0"/></p><p>A final example for the “Top10 projects in Europe”:</p><p><img width="618" height="382" title="image" style="margin: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/03/image385.png" border="0"/></p><p>Which tells us that “the Top 10 projects in Europe represent 31.7% of the total 32MM Euros (the total of the table’s column for budget) across all projects there, amounting to 10.2MM Euros, where the Top3 reach about 4.8M Euros (the first three rows)”.</p>]]></content:encoded>
    </item>
    <item>
      <title>Data Warehouse versus Business Intelligence</title>
      <link>https://docs.microsoft.com/archive/blogs/danrub/data-warehouse-versus-business-intelligence</link>
      <pubDate>Mon, 24 Jan 2011 09:46:13 GMT</pubDate>
      <dc:creator><![CDATA[Daniel Rubiolo]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/danrub/2011/01/24/data-warehouse-versus-business-intelligence/</guid>
      <description><![CDATA[The traditional definition of “data warehouse, or DW” from late ‘70s/early ‘80s involved the...]]></description>
      <content:encoded><![CDATA[<span style="color: #000000;font-family: Verdana">The traditional definition of “data warehouse, or DW” from late ‘70s/early ‘80s involved the end-to-end solution for business users… from extracting data and aggregating it into special data models, the queries, all thru the applications/reports the users interacted with to consume that data.</span>

<span style="color: #000000;font-family: Verdana">In the ‘90s, the concept of “Business Intelligence, or BI” came to describe the technologies to take this data and present it to users as dashboards, reports, scorecards, and graphical analysis. This happened because early adopters of data warehousing only aggregated data in repositories to keep history, but they did not build the last mile of user presentation and consumption, leaving the DW concept just for the backend databases.</span>

<span style="color: #000000;font-family: Verdana">However, it became clear over time that BI could not exist without DW, where the data warehouse is the foundation for business intelligence. Today, because the tools evolved to cover more and more of this end-to-end scenario, these two terms are widely used interchangeably. I use BI from now on.</span>

&nbsp;
<h2><span style="color: #000000;font-family: Verdana">New meaning for BI: Business Insight</span></h2>
<span style="color: #000000;font-family: Verdana">I propose we forget about the traditional concept of “BI”: those terms refer mostly to database design practices and tools, instead of what they intend to solve for the business.</span>

<span style="color: #000000;font-family: Verdana">First, we need to make clear what BI means when faced with building a BI solution. When considered as “Business Intelligence”, we have two dynamic terms. We model the business with these BI systems, where the business evolves all the time responding to strategies and market conditions. These BI models provide information – intelligence – to business’ decision-making, which in turn trigger new questions and business scenarios that will require new information. We learn something about the business, and new questions arise. This means that when we start a BI project, we already know it will evolve dynamically all the time because its two components (business and intelligence) will evolve all the time. Therefore, a BI project CANNOT follow a traditional software lifecycle, because in doing so, the solution will be obsolete as soon as released.</span>

<span style="color: #000000;font-family: Verdana">Second, a BI solution does not mean having some reports, dashboards, and scorecards from our operational systems or applications. To consider it BI, it must apply business logic to enrich the data with analytical insights for business users. Without this additional business logic, our systems may only tell the users what they already know. We have categorizations that can add value to our data, such as organizational taxonomies, business categories (i.e. critical list; Compliance versions), linkages to other data sources, and history… the interconnection between business processes that provide an end-to-end view of the business and its evolution.</span>

<span style="color: #000000;font-family: Verdana">This describes why I recommend we start considering BI as “Business Insight”, so we focus on the business value it provides, instead of the technologies that implement it.</span>

&nbsp;
<h2><span style="color: #000000;font-family: Verdana">Key components of BI</span></h2>
<span style="color: #000000;font-family: Verdana">Successful BI depends on three fundamental concepts:</span>
<ul>
	<li><span style="color: #000000;font-family: Verdana">Focus on the business.</span></li>
	<li><span style="color: #000000;font-family: Verdana">A special structure for the data delivered to the business via several mechanisms.</span></li>
	<li><span style="color: #000000;font-family: Verdana">Iteratively develop the overall BI environment in manageable lifecycle increments rather than attempting a galactic Big Bang.</span></li>
</ul>
<span style="color: #000000;font-family: Verdana">A true BI system should address these business concerns:</span>
<ul>
	<li><span style="color: #000000;font-family: Verdana">“We have mountains of data in our apps, but we can’t access it.”</span></li>
	<li><span style="color: #000000;font-family: Verdana">“We need to slice and dice the data in many ways.”</span></li>
	<li><span style="color: #000000;font-family: Verdana">“You’ve got to make it easy for business people to access the data directly.”</span></li>
	<li><span style="color: #000000;font-family: Verdana">“Just show me what’s important.”</span></li>
	<li><span style="color: #000000;font-family: Verdana">“It drives me crazy to have two people present the same business metrics at a meeting, but with different numbers.”</span></li>
	<li><span style="color: #000000;font-family: Verdana">“We want people to use information to support more fact-based decision making.”</span></li>
	<li><span style="color: #000000;font-family: Verdana">“We spend way too much time in producing data for reviews.”</span></li>
	<li><span style="font-family: Verdana">“In spite that we have an official scorecard, during review sessions some offline spreadsheets come out questioning the data. From there, the review is spent second guessing numbers instead of driving business discussion.”</span></li>
</ul>
<span style="color: #000000;font-family: Verdana">These hint to a key element on driving a BI solution: the key skills needed to manage a BI project have to have a mix of DBA and MBA. A pure IT technical DBA (database administrator) can design the databases, reports, and applications, but will fail delivering the right information users need to drive their business decisions because won’t understand the business dynamics. Other projects may have a pure MBA collecting requirements, but will fail balancing technology limitations/constraints and setting the right expectations back to users. Clearly, BI projects need a mix of DBA/MBA very close to the business.</span>

&nbsp;
<h3><span style="color: #000000;font-family: Verdana">ETL Systems</span></h3>
<span style="color: #000000;font-family: Verdana">A little known fact about building BI systems: 70% of the resources go into designing the data model, creating the supporting databases, and implementing the value added processes mentioned earlier (called “ETL: Extract, Transform, Load”); just 30% go to presentation UIs and reports. This because the ETL:</span>
<ul>
	<li><span style="color: #000000;font-family: Verdana">Removes mistakes and corrects missing data.</span></li>
	<li><span style="color: #000000;font-family: Verdana">Provides documented measures of confidence in data.</span></li>
	<li><span style="color: #000000;font-family: Verdana">Captures the flow of transactional data for safekeeping (history).</span></li>
	<li><span style="color: #000000;font-family: Verdana">Adjusts data from multiple sources to use it together.</span></li>
	<li><span style="color: #000000;font-family: Verdana">Correlates data across disparate systems to get views into the business that you could not get otherwise.</span></li>
	<li><span style="color: #000000;font-family: Verdana">Structures data for use by end-user tools.</span></li>
</ul>
&nbsp;
<h3><span style="color: #000000;font-family: Verdana">Data Marts and Data Warehouses</span></h3>
<span style="color: #000000;font-family: Verdana">Another little secret of BI systems resides in that we can apply the BI or DW concepts to many business levels, and concatenate them. Many times, big applications generate mountains of operational data as we use them to execute business processes, but it becomes difficult to use all that data to monitor and measure those processes, and evaluate its impact to the overall business. </span>

<span style="color: #000000;font-family: Verdana">Usually we need an Operational BI system on top of these big apps, called “Data Mart”, or departmental DW, and thus reserving the Data Warehouse term for the overarching business BI system.</span>

<span style="color: #000000;font-family: Verdana">Again, I will use just “BI”, clarifying when we mean an operational one or business one.</span>

&nbsp;
<h2><span style="color: #000000;font-family: Verdana">Summary</span></h2>
<span style="color: #000000;font-family: Verdana">In brief, we can define a BI system as the solution for gathering data from multiple sources, transforming that data so that it is consistent and stored in a single location, and presenting its information to business users for analysis and decision-making.</span>
<p align="right"><span style="font-family: Verdana"><em><span style="color: #666666;font-size: small">(Partially inspired on Kimball methodology. See more at </span></em><a title="www.kimballgroup.com/" href="www.kimballgroup.com/"><em><span style="color: #666666;font-size: small">www.kimballgroup.com/</span></em></a><em><span style="color: #666666;font-size: small">.)</span></em></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Objective for this blog</title>
      <link>https://docs.microsoft.com/archive/blogs/danrub/objective-for-this-blog</link>
      <pubDate>Sun, 15 Aug 2010 09:31:00 GMT</pubDate>
      <dc:creator><![CDATA[Daniel Rubiolo]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/danrub/2010/08/15/objective-for-this-blog/</guid>
      <description><![CDATA[Making decisions that drive action without objective data to back it up makes no business sense at...]]></description>
      <content:encoded><![CDATA[<span style="font-family: 'Verdana', 'sans-serif'"><span style="font-size: small"><span style="color: #000000">Making decisions that drive action without objective data to back it up makes no business sense at all, but it happens all the time. Much guess-work goes on, so huge risks and costs follow. And employees get frustrated with activity that doesn't deliver the expected value.</span></span></span>

<span style="font-family: 'Verdana', 'sans-serif'"><span style="font-size: small"><span style="color: #000000">Some examples of not really managing your business:</span></span></span>
<ul>
	<li><span style="font-family: 'Verdana', 'sans-serif'"><span style="font-size: small"><span style="color: #000000">Not having data to really understand your business standing, </span></span></span></li>
	<li><span style="font-family: 'Verdana', 'sans-serif'"><span style="font-size: small"><span style="color: #000000">Not having data to evaluate if you have the capability to deliver what you think/plan as targets, </span></span></span></li>
	<li><span style="font-family: 'Verdana', 'sans-serif'"><span style="font-size: small"><span style="color: #000000">Not having data to demonstrate if your actions have real impact, and </span></span></span></li>
	<li><span style="font-family: 'Verdana', 'sans-serif'"><span style="font-size: small"><span style="color: #000000">Not having data to put controls in place to identify deviations.</span></span></span></li>
</ul>
<span style="font-family: 'Verdana', 'sans-serif'"><span style="font-size: small"><span style="color: #000000">Here you will read about a model that combines Business Intelligence and Statistical Process Control practices to manage the execution of your business services' plans. This does not substitute for appropriate strategy &amp; planning, but makes them actionable with no waste of resources.
</span></span></span>

<span style="font-family: 'Verdana', 'sans-serif'"><span style="font-size: small"><span style="color: #000000">(March 19, 2016): I recently joined the Customer, Partner, and Market Success organization in Power BI, as Program Manager in the Ecosystem Customer Engagement team. With this, my posts will also cover other business areas, including technical information about Microsoft BI (Office Excel, SQL SSRS &amp; SSAS, Power BI), as well as Cortana Analytics.</span></span></span>

&nbsp;]]></content:encoded>
    </item>
  </channel>
</rss>