Sign up for our FREE Power BI Bootcap
Close Icon

The Difference Between Amateurs and Pros? Best Practices

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

This article will examine Power BI best practices.

It will also introduce the Best Practice Analyzer (BPA) in Tabular Editor.

BPA is a tool that provides guard rails to aid in following best practice development for optimal Power BI and tabular modelling. As a Power BI developer or data analyst, understanding and applying best practices in your work can dramatically increase the efficiency of your models and ensure their performance. This can lead to a more streamlined user experience, potentially reducing computation time and making your reports more interactive. The reward is improved performance and a deeper understanding of Power BI and tabular model design.

It also helps put clients at ease, especially during interviews. If you are a developer that follows industry best practices and uses tools to augment the application of best practices, and can explain the concept, you won't be overlooked for many roles in this world.

Unfortunately, many people don't know/use/understand best practices.

Despite a plethora of articles, blog posts, and videos discussing best practices, developers still find it challenging to implement these principles.

Understanding the Role of the Best Practice Analyzer and Tabular Editor

Tabular Editor can do many things, but this post will only focus on the BPA.

Your resources specific to this post:

Downloads:

  • Tabular Editor 2. Not the latest version, but it is free and perfect for starting: Link HERE
  • Tabular Editor 3. Paid. Latest and greatest. Link HERE

Tutorials:

  • Onboarding guide. Link HERE

More Resources:

  • BPA Rules File. Link HERE

The Best Practice Analyzer is a feature of Tabular Editor, a tool developed by Daniel Otykier, a Power BI MVP.

It's designed to notify you if your model has any issues going against the list at the end of this post, much like a spell-checker in a Word document.

This tool can help you ensure adherence to naming conventions, user experience guidelines, and performance optimization techniques.

For example, consider a model with many tables and measures. Manually scanning this model for optimization opportunities would be daunting, but it's done in seconds with the Best Practice Analyzer.

Load the Best Practice Rules into Your Local Tabular Editor

Many developers struggle with the actual implementation of best practices.

Here's where the rule engine of the Best Practice Analyzer comes in.

Adding predefined rules to your Tabular Editor lets you quickly scan your entire model for potential issues.

You can load these rules using the Advanced Scripting method using this script:

System.Net.WebClient w = new System.Net.WebClient(); string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); string url = "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/BestPracticeRules/BPARules.json"; string downloadLoc = path+@"\TabularEditor\BPARules.json"; w.DownloadFile(url, downloadLoc);

Or you can download and install it using this repo.

Both methods involve downloading the 'Best Practice Rules' from GitHub, but the former requires running a script while the latter is more straightforward.

Apply the Rules and Fix Issues

Once the rules are loaded into Tabular Editor, you can run these against your model.

The tool will then list all objects that violate laws, enabling you to address potential issues and make necessary improvements.

The tool even allows generating a fixed script for simple issues. You can also disable rules that don't apply to your specific use case.

Regularly Review and Update Rules

The beauty of using a tool like Tabular Editor's Best Practice Analyzer is that it is not a one-and-done process.

Instead, as technology advances and more best practices are identified, you can continue to update and enhance the rules for building high-quality models.

Remember, the primary aim of using these best practices is to improve the performance and design of your models and empower you as a developer.

It's a continuous journey towards producing higher quality models, and with the right tools, you are well on your way to achieving this.

For your reference, the rules are below. I'll keep these updated as we progress.

These rules were written by Michael Kovalsky - the Power BI Program Manager at Microsoft (so he knows his stuff). There is a tonne of information on below, so definitely get out there and research this stuff.

NOTE: I found loading the BPA rules a little finicky, so keep cracking along and if you need help, email me at hello@powerbiplaybook.com.

AH

The Rules

DAX Expressions

  • Use the DIVIDE function for division
  • Avoid using the IFERROR function
  • Column references should be fully qualified
  • Measure references should be unqualified
  • Measures should not be direct references to other measures
  • No two measures should have the exact definition
  • Use the TR+EATAS function instead of INTERSECT for virtual relationships

Error Prevention

  • Data columns must have a source column
  • Calculated columns must have an expression

Formatting

  • Add data category for columns
  • Do not summarize numeric columns
  • The first letter of objects must be capitalized
  • Hide fact table columns
  • Hide foreign keys
  • Mark primary keys
  • Month (as a string) must be sorted
  • Things should not start or end with a space
  • Percentages should be formatted with thousands of separators and one decimal.
  • Format flag columns as Yes/No value strings
  • Provide format string for "Date" columns
  • Provide format string for "Month" columns
  • Provide format string for measures
  • Relationship columns should be of integer data type
  • Whole numbers should be formatted with thousands of separators and no decimals

Maintenance

  • Ensure tables have relationships
  • Objects with no description
  • Remove data sources not referenced by any partitions
  • Remove roles with no members
  • Remove unnecessary columns
  • Remove unnecessary measures

Naming Conventions

  • Use camelCase for hidden columns
  • Partition name should match table name for single partition tables
  • Object names must not contain special characters

Performance

  • Avoid bi-directional relationships against high-cardinality columns
  • Avoid excessive bi-directional or many-to-many relationships
  • Avoid snowflake schema architecture
  • Do not use floating point data types
  • Large tables should be partitioned *
  • Limit row-level security (RLS) logic
  • Many-to-many relationships should be in a single direction
  • Minimize Power Query transformations
  • The model should have a date table
  • Model using Direct Query and no aggregations
  • Reduce the number of calculated columns
  • Reduce usage of calculated columns that use the RELATED function
  • Reduce usage of calculated tables
  • Reduce usage of long-length columns with high cardinality
  • Remove auto-date table
  • Remove redundant columns in related tables
  • Set IsAvailableInMdx to false on non-attribute columns

Actionable tips to take you from developer to Power BI business owner

Written by humans. We'll never share your data
Thank you! The Reports are yours!
Be sure to check your junk if you don't see our confirmation email.
Oops! Something went wrong while submitting the form.