You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
π Research date: 2026-05-15 | Scope: Business Intelligence, Power BI, Microsoft Fabric automation & the broader AI-driven analytics ecosystem.
ποΈ Interesting News
semantic-link-labs0.15.0 ships β 14 May 2026 π
Hot off the press, yesterday's release is the most feature-dense drop since 0.14.0. Headline items:
Area
What's New
Mirrored Azure Databricks Catalog
Full CRUD (create_mirrored_azure_databricks_catalog, list_, delete_, get_, update_); ConnectMirroredAzureDatabricksCatalog wraps SQL/T-SQL execution against mirrored Databricks. generate_direct_lake_semantic_model now accepts a Mirrored Azure Databricks Catalog as a source.
Lakehouse schemas
create_schema and create_materialized_lake_view β the latter only supported in schema-enabled lakehouses.
Perspective editor
Interactive UI for creating/managing perspectives in semantic models.
deploy_semantic_model mini-model filter
New filters parameter allows deploying a subset of a master model scoped to a perspective β "single-lakehouse-sourced Direct Lake" only.
TOM ergonomics
add_direct_lake_tables, hide_key_columns, mark_primary_keys, get_mini_model_properties; all add_* functions now return the created object.
SQL Database
list_restorable_deleted_databases, revalidate_cmk, "Sensitivity Label Id" column in list_sql_databases.
Workspace tags
apply_workspace_tags / unapply_workspace_tags.
Bug fixes
#1163, #1168, #1180, #1220 (the write_deltalake() schema error), and remove_vertipaq_annotations.
Active PRs Heading Toward 0.15.x / 0.16.0
Several substantial PRs have opened in the last week against main:
The add_prep_for_ai function auto-generates synonyms, descriptions, and linguistic schema to make models Copilot-ready β the most AI-integration-forward piece of the batch.
fabric-toolbox β New & Updated Tools
The Microsoft Fabric Customer Advisory Team (CAT) has updated the toolbox README to highlight:
π’ NEW: Fabric Assessment Tool (fat) v0.2.2 β CLI for scanning Synapse/Databricks workspaces and exporting structured inventory for Fabric migration readiness analysis. Supports Azure CLI and Fabric Notebook authentication; dual-path Entra ID / SQL auth for dedicated pools.
π‘ UPDATED: Fabric Data Factory Migration Assistant β pipeline migration from ADF/Synapse
π’ NEW Script: Mirror CCI Tables for Fabric SQL DB β columnstore index mirroring helper
DAX Performance Tuner MCP Server β connects Copilot Chat or Claude Desktop to ADOMD.NET; performs evidence-based DAX optimization in a 2-stage workflow with semantic equivalence checking. Built from C# source via setup.bat / setup.ps1.
Semantic Model MCP Server β companion MCP server for semantic model introspection
π₯ Competitive Analysis
Platform
Latest Move
Microsoft Fabric
DAX-to-SQL push-down improvements in Fabric's serverless SQL endpoint; Direct Lake now supports Mirrored Azure Databricks Catalog as a source β Fabric is increasingly the unifying layer across the Azure/Databricks ecosystem.
Databricks
The Fabric mirroring integration with Databricks catalogs goes both ways: Fabric can now mirror a Databricks Catalog as a first-class Fabric item, effectively making Databricks the upstream lakehouse and Fabric the BI layer β a potential coexistence posture rather than a displacement fight.
Anthropic / Claude
Released claude-for-financial-services (github.com/anthropics/financial-services) β a reference-agent library for investment banking, equity research, PE, and wealth management. Agents: Pitch Agent, Market Researcher, Earnings Reviewer, GL Reconciler, Month-End Closer, Valuation Reviewer, KYC Screener. Distributable as Claude Cowork plugins or via the Managed Agents API. Directly relevant: the GL Reconciler and Month-End Closer are the kind of BI-adjacent workflows that Power BI + Fabric teams support in FP&A.
Tableau (Salesforce)
Continues to compete at the enterprise visualization layer; no significant announcements this week in the open-source ecosystem.
Looker (Google)
Silent in open source; Google's LookML-to-BigQuery positioning keeps it tight to GCP rather than the Fabric/Azure ecosystem.
This PR is research-grade β it ships a Pratt-style DAX parser with VAR/RETURN support, virtual columns, AST walk/transform, and HTML color-coded rendering. While not an academic paper, it represents the first full Python DAX AST library baked into the sempy_labs ecosystem. Interesting design notes:
Regex-driven tokenizer with a known sql parameter name typo and a string-escape regex bug (flagged in the PR)
_generator.py is a minimal ASTβDAX printer β partial coverage only
_analysis.py provides find_numeric_aggregation_columns as a concrete use-case driving the parser
BPA Rule Proposal: SUM on Text Columns (Issue #1222)
A well-argued feature request with a thorough write-up: detect at BPA (Best Practice Analyzer) time when a measure calls SUM() or AVERAGE() over a String-typed column. The analysis notes that neither the sempy_labs BPA rule pack nor the canonical community BPA rules at Microsoft/Analysis-Services cover this case β a genuine industry gap. Proposed as severity "Error" (the model is demonstrably broken, not merely styled poorly). This is a good reference for anyone building their own pre-publish validation pipelines.
evaluate_dax_impersonation API Endpoint Bug (Issue #1225)
A reported regression: labs.evaluate_dax_impersonation(...) now calls api.fabric.microsoft.com/v1.0/myorg/groups/{id}/datasets/{id}/executeQueries but the documented endpoint is api.powerbi.com. This silent base-URL drift is worth monitoring β it affects any automation that queries semantic models with impersonation from a Fabric notebook.
π‘ New Ideas
1. Automated Report Quality Gate in CI/CD
The pbi-fixer batch of 30+ functions, combined with BPA rules, creates the building blocks for a Power BI CI/CD quality gate: run all fix_* functions in "dry run" mode, collect violations, fail the pipeline if error-severity BPA rules or fixer-detectable issues exist. Similar to ESLint --max-warnings 0. The add_prep_for_ai function then runs as a post-process to ensure Copilot readiness before promotion to production.
2. DAX Semantic Analyzer (Leveraging PR #1227)
With a full Python DAX AST now in sempy_labs, there's a clear path to:
Static type-checking of DAX expressions (detect SUM on string columns at parse time, not at refresh time)
Measure complexity scoring (cyclomatic-complexity-equivalent for DAX)
Automated refactoring (AST transform to replace / [Total] with DIVIDE(...), complement the fix_use_divide_function fixer)
3. Fabric Migration Readiness Dashboard
fabric-toolbox's new Fabric Assessment Tool scans Synapse/Databricks workspaces and outputs a structured folder hierarchy. Pairing this with semantic-link-labs' bulk_export_items / bulk_import_items and the Mirrored Azure Databricks Catalog features creates a complete migration readiness dashboard workflow: assess β export β mirror β validate.
4. MCP-First Power BI Development
Two MCP servers now exist in fabric-toolbox: the DAX Performance Tuner and the Semantic Model MCP Server. The pattern of exposing Fabric/Power BI capabilities as MCP tools (compatible with Claude, Copilot Chat, VS Code) is accelerating. A natural next step: an MCP server exposing pbi-fixer functions so any AI coding assistant can apply quality fixes interactively.
π Market Opportunities
Fabric Migration Services
With Synapse Analytics nearing end-of-mainstream-support positioning, the Fabric Assessment Tool (fat) and the Direct Lake + Mirrored Catalog path from Databricks represent a well-documented migration corridor. Consulting and ISV opportunities exist around:
Automated SynapseβFabric workspace inventory
Semantic model generation from Databricks catalogs
Post-migration quality scoring (BPA + pbi-fixer)
Power BI Report Auditing as a Service
The pbi-fixer ecosystem points toward a commercial opportunity: a SaaS tool that ingests a .pbix / TMDL-enabled report, runs all fixers and BPA rules, and returns a scored quality report with one-click remediation. No such tool exists at scale today. Target buyers: BI teams with 50β500 reports and no internal automation practice.
AI-Ready Semantic Models (add_prep_for_ai)
As Power BI Copilot adoption grows, enterprises need semantic models with proper synonyms, descriptions, and linguistic schemas. The add_prep_for_ai function automates this, but there's a market for Copilot Readiness Audits β scoring existing models against Copilot's requirements and delivering a remediation plan. This is a repeatable, high-margin professional services engagement.
Financial BI + Anthropic's Financial Services Agents
Anthropic's open-source claude-for-financial-services release signals a shift: AI agents are now first-class participants in FP&A, GL reconciliation, and equity research. Power BI / Fabric teams embedding in financial services organizations should evaluate integrating these agents with their Fabric lakehouses and semantic models as a competitive differentiator.
π Enjoyable Anecdotes
"The Pie Chart Killer" π₯§
PR #1186 β fix_pie_chart β does one thing: it finds every pie and donut chart in a Power BI report and replaces it with a bar chart, citing IBCS (International Business Communication Standards) norms. One-line summary: the maintainer of an 8,000-star Python library is, by popular demand, systematically eliminating pie charts from the known universe. The BI data visualization debate has been settled: submit a PR.
The DAX Parser Has a Bug Named sql
In PR #1227's new regex-driven DAX tokenizer (_tokenizer.py), the parameter that accepts DAX expressions is named sql. The PR author noted the misname in their own write-up and left it for the maintainer to fix. There is something deeply funny about shipping a DAX parser where the entry point is parse(sql=...).
GitHub's Most Trending Python Repo This Week: AI-Trader
The top trending Python repository on GitHub this week is HKUDS/AI-Trader, billed as "100% Fully-Automated Agent-Native Trading." Anthropic simultaneously released claude-for-financial-services with an explicit disclaimer: "These agents draft analyst work product β they do not execute transactions." The contrast in philosophy is instructive.
π Research Provenance (queries, tools, commands)
Web Fetches
https://github.com/microsoft/semantic-link-labs/releases β release notes for 0.15.0
https://github.com/microsoft/semantic-link-labs/issues?q=is:open&sort=updated β open issues list
ποΈ Interesting News
semantic-link-labs0.15.0 ships β 14 May 2026 πHot off the press, yesterday's release is the most feature-dense drop since 0.14.0. Headline items:
create_mirrored_azure_databricks_catalog,list_,delete_,get_,update_);ConnectMirroredAzureDatabricksCatalogwraps SQL/T-SQL execution against mirrored Databricks.generate_direct_lake_semantic_modelnow accepts a Mirrored Azure Databricks Catalog as a source.create_schemaandcreate_materialized_lake_viewβ the latter only supported in schema-enabled lakehouses.deploy_semantic_modelmini-model filterfiltersparameter allows deploying a subset of a master model scoped to a perspective β "single-lakehouse-sourced Direct Lake" only.add_direct_lake_tables,hide_key_columns,mark_primary_keys,get_mini_model_properties; alladd_*functions now return the created object.list_restorable_deleted_databases,revalidate_cmk,"Sensitivity Label Id"column inlist_sql_databases.apply_workspace_tags/unapply_workspace_tags.write_deltalake()schema error), andremove_vertipaq_annotations.Active PRs Heading Toward 0.15.x / 0.16.0
Several substantial PRs have opened in the last week against
main:list_apps()now returns"Workspace Id"β aligns the DataFrame with the Microsoft Admin Apps APIsempy_labs.mirrored_catalogmodule: list/delete catalogs, trigger metadata refresh, monitor catalog & per-table mirroring statusextract_table_commentsfor Delta lakehouses β dual-path impl (puredeltalakelibrary or PySparkDESCRIBE EXTENDED)parse_dax,format_dax(HTML color-coded), ASTwalk/find_all/transform,find_numeric_aggregation_columns, TOM-levelfind_non_numeric_aggregationslist_data_access_rolespath matching for CLS/RLS in Mirrored Catalogs β prefix matching for nested table pathspbi-fixerContribution Wave Still Incoming (Issue #1185)30+ standalone PR batch adding a composable "linter-with-autofix" layer on top of semantic-link-labs:
fix_pie_chart,fix_bar_chart,fix_column_chart,fix_line_chart,fix_ibcs_variance,fix_visual_alignment,fix_hide_visual_filters,fix_disable_show_items_no_data,fix_migrate_report_level_measuresfix_floating_point_datatype,fix_do_not_summarize,fix_hide_foreign_keys,fix_use_divide_function,fix_measure_descriptions,fix_percentage_format,fix_whole_number_format,fix_data_category,fix_date_column_formatadd_calculated_calendar,add_calc_group_time_intelligence,add_calc_group_units,add_measures_from_columns,add_last_refresh_table,add_prep_for_aiThe
add_prep_for_aifunction auto-generates synonyms, descriptions, and linguistic schema to make models Copilot-ready β the most AI-integration-forward piece of the batch.fabric-toolboxβ New & Updated ToolsThe Microsoft Fabric Customer Advisory Team (CAT) has updated the toolbox README to highlight:
fat) v0.2.2 β CLI for scanning Synapse/Databricks workspaces and exporting structured inventory for Fabric migration readiness analysis. Supports Azure CLI and Fabric Notebook authentication; dual-path Entra ID / SQL auth for dedicated pools.setup.bat/setup.ps1.π₯ Competitive Analysis
claude-for-financial-services(github.com/anthropics/financial-services) β a reference-agent library for investment banking, equity research, PE, and wealth management. Agents: Pitch Agent, Market Researcher, Earnings Reviewer, GL Reconciler, Month-End Closer, Valuation Reviewer, KYC Screener. Distributable as Claude Cowork plugins or via the Managed Agents API. Directly relevant: the GL Reconciler and Month-End Closer are the kind of BI-adjacent workflows that Power BI + Fabric teams support in FP&A.π Research Papers & Technical Reads
DAX Parser Inside semantic-link-labs (PR #1227)
This PR is research-grade β it ships a Pratt-style DAX parser with VAR/RETURN support, virtual columns, AST walk/transform, and HTML color-coded rendering. While not an academic paper, it represents the first full Python DAX AST library baked into the
sempy_labsecosystem. Interesting design notes:sqlparameter name typo and a string-escape regex bug (flagged in the PR)_generator.pyis a minimal ASTβDAX printer β partial coverage only_analysis.pyprovidesfind_numeric_aggregation_columnsas a concrete use-case driving the parserBPA Rule Proposal:
SUMon Text Columns (Issue #1222)A well-argued feature request with a thorough write-up: detect at BPA (Best Practice Analyzer) time when a measure calls
SUM()orAVERAGE()over aString-typed column. The analysis notes that neither thesempy_labsBPA rule pack nor the canonical community BPA rules at Microsoft/Analysis-Services cover this case β a genuine industry gap. Proposed as severity"Error"(the model is demonstrably broken, not merely styled poorly). This is a good reference for anyone building their own pre-publish validation pipelines.evaluate_dax_impersonationAPI Endpoint Bug (Issue #1225)A reported regression:
labs.evaluate_dax_impersonation(...)now callsapi.fabric.microsoft.com/v1.0/myorg/groups/{id}/datasets/{id}/executeQueriesbut the documented endpoint isapi.powerbi.com. This silent base-URL drift is worth monitoring β it affects any automation that queries semantic models with impersonation from a Fabric notebook.π‘ New Ideas
1. Automated Report Quality Gate in CI/CD
The
pbi-fixerbatch of 30+ functions, combined with BPA rules, creates the building blocks for a Power BI CI/CD quality gate: run allfix_*functions in "dry run" mode, collect violations, fail the pipeline if error-severity BPA rules or fixer-detectable issues exist. Similar to ESLint--max-warnings 0. Theadd_prep_for_aifunction then runs as a post-process to ensure Copilot readiness before promotion to production.2. DAX Semantic Analyzer (Leveraging PR #1227)
With a full Python DAX AST now in
sempy_labs, there's a clear path to:SUMon string columns at parse time, not at refresh time)transformto replace/ [Total]withDIVIDE(...), complement thefix_use_divide_functionfixer)3. Fabric Migration Readiness Dashboard
fabric-toolbox's new Fabric Assessment Tool scans Synapse/Databricks workspaces and outputs a structured folder hierarchy. Pairing this withsemantic-link-labs'bulk_export_items/bulk_import_itemsand the Mirrored Azure Databricks Catalog features creates a complete migration readiness dashboard workflow: assess β export β mirror β validate.4. MCP-First Power BI Development
Two MCP servers now exist in
fabric-toolbox: the DAX Performance Tuner and the Semantic Model MCP Server. The pattern of exposing Fabric/Power BI capabilities as MCP tools (compatible with Claude, Copilot Chat, VS Code) is accelerating. A natural next step: an MCP server exposingpbi-fixerfunctions so any AI coding assistant can apply quality fixes interactively.π Market Opportunities
Fabric Migration Services
With Synapse Analytics nearing end-of-mainstream-support positioning, the Fabric Assessment Tool (
fat) and the Direct Lake + Mirrored Catalog path from Databricks represent a well-documented migration corridor. Consulting and ISV opportunities exist around:Power BI Report Auditing as a Service
The
pbi-fixerecosystem points toward a commercial opportunity: a SaaS tool that ingests a.pbix/ TMDL-enabled report, runs all fixers and BPA rules, and returns a scored quality report with one-click remediation. No such tool exists at scale today. Target buyers: BI teams with 50β500 reports and no internal automation practice.AI-Ready Semantic Models (
add_prep_for_ai)As Power BI Copilot adoption grows, enterprises need semantic models with proper synonyms, descriptions, and linguistic schemas. The
add_prep_for_aifunction automates this, but there's a market for Copilot Readiness Audits β scoring existing models against Copilot's requirements and delivering a remediation plan. This is a repeatable, high-margin professional services engagement.Financial BI + Anthropic's Financial Services Agents
Anthropic's open-source
claude-for-financial-servicesrelease signals a shift: AI agents are now first-class participants in FP&A, GL reconciliation, and equity research. Power BI / Fabric teams embedding in financial services organizations should evaluate integrating these agents with their Fabric lakehouses and semantic models as a competitive differentiator.π Enjoyable Anecdotes
"The Pie Chart Killer" π₯§
PR #1186 β
fix_pie_chartβ does one thing: it finds every pie and donut chart in a Power BI report and replaces it with a bar chart, citing IBCS (International Business Communication Standards) norms. One-line summary: the maintainer of an 8,000-star Python library is, by popular demand, systematically eliminating pie charts from the known universe. The BI data visualization debate has been settled: submit a PR.The DAX Parser Has a Bug Named
sqlIn PR #1227's new regex-driven DAX tokenizer (
_tokenizer.py), the parameter that accepts DAX expressions is namedsql. The PR author noted the misname in their own write-up and left it for the maintainer to fix. There is something deeply funny about shipping a DAX parser where the entry point isparse(sql=...).GitHub's Most Trending Python Repo This Week:
AI-TraderThe top trending Python repository on GitHub this week is
HKUDS/AI-Trader, billed as "100% Fully-Automated Agent-Native Trading." Anthropic simultaneously releasedclaude-for-financial-serviceswith an explicit disclaimer: "These agents draft analyst work product β they do not execute transactions." The contrast in philosophy is instructive.π Research Provenance (queries, tools, commands)
Web Fetches
https://github.com/microsoft/semantic-link-labs/releasesβ release notes for 0.15.0https://github.com/microsoft/semantic-link-labs/issues?q=is:open&sort=updatedβ open issues listhttps://github.com/microsoft/semantic-link-labs/issues/1185β pbi-fixer tracking issuehttps://github.com/microsoft/semantic-link-labs/issues/1221β list_apps workspace ID PRhttps://github.com/microsoft/semantic-link-labs/issues/1222β BPA SUM on text column requesthttps://github.com/microsoft/semantic-link-labs/issues/1223β mirrored catalog PRhttps://github.com/microsoft/semantic-link-labs/issues/1225β evaluate_dax_impersonation bughttps://github.com/microsoft/semantic-link-labs/issues/1226β extract_table_comments PRhttps://github.com/microsoft/semantic-link-labs/issues/1227β DAX parser PRhttps://github.com/microsoft/semantic-link-labs/issues/1228β data access roles path fixhttps://github.com/microsoft/semantic-link-labs/pulls?q=is:pr+is:merged+sort:updated-descβ merged PRshttps://github.com/microsoft/fabric-toolbox/blob/main/README.mdβ fabric-toolbox READMEhttps://github.com/microsoft/fabric-toolbox/blob/main/tools/fabric-assessment-tool/README.mdβ FAT READMEhttps://github.com/microsoft/fabric-toolbox/blob/main/tools/DAXPerformanceTunerMCPServer/README.mdβ DAX MCP READMEhttps://github.com/anthropics/financial-servicesβ Claude for Financial Serviceshttps://github.com/trending/python?since=weeklyβ GitHub Python trendingGitHub MCP Tools Used
github-get_file_contentsβ repository root listing, README.md, .github directorygithub-list_issuesβ Cecex-git/BI-Research issues (to understand prior art & report format)Bash Commands
cat /tmp/...issues.txt | python3 -c "..."β parsed issues JSON to extract titles and countWarning
The following domains were blocked by the firewall during workflow execution:
anthropics.github.ioarxiv.orglearn.microsoft.compowerbi.microsoft.comtechcommunity.microsoft.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.