From Programs to Purpose: The Policy-Driven Future of Computing

For most of the history of software, the burden has been on the user. Learn the menu. Memorize the workflow. Click the right button in the right order. Even when software became more user-friendly, the core bargain stayed the same: the human still had to translate intention into the language of the machine.

That bargain is beginning to end. The next era of computing will not be defined primarily by faster chips, prettier interfaces, or even larger models. It will be defined by a different operating assumption. Users will state what they want. Software will infer intent, consult policy, gather evidence, act across systems, and return work that is ready for review, approval, or execution. This paper makes a simple argument: the future of computing will be intent-driven, policy-governed, and data-connected. Science fiction saw this pattern long ago. Enterprise architecture is finally catching up.

The cliched “Future is now” moment

Classic and modern science fiction have often portrayed AI in a way that feels more realistic now than it did when those stories first appeared. In those worlds, AI is rarely handed a detailed program in the way traditional software is. Instead, it is given a mission, a role, or a bounded objective. The interesting tension is never just whether the machine can compute. It is whether it can interpret goals, reconcile constraints, and act within limits.

That is exactly where enterprise software is headed. The most important applications of the next decade will not be systems that merely store records or execute fixed workflows. They will be systems that understand a user’s intent, combine that intent with both loose and tight rules, consult what I would call a policy store, and then operate against governed data stores in controlled ways. In financial services, this matters immediately. A claims payout, a wire request, a loan renewal, a beneficiary change, or a disputed card transaction is never just a transaction. It is a goal that must be satisfied inside a web of obligations, approvals, evidence, risk tolerances, and audit requirements.

The organizations that win in this environment will not simply have the best models. They will have the best architecture for turning intent into safe action.

Science Fiction Already Mapped the Pattern

Isaac Asimov remains one of the clearest early examples. The Three Laws of Robotics, introduced in “Runaround” and later collected into I, Robot, were framed as an ethical system for robots and humans rather than a procedural runbook. The enduring force of those stories comes from ambiguity: what counts as harm, how commands conflict, and how an intelligent system interprets layered goals when rules collide. Recent commentary on Asimov makes the same point in modern language: creating intelligence is easier than creating dependable ethics.

Star Trek took a different path, but it arrived at a related destination. A CHI paper analyzing the Enterprise computer described Trek interactions as brief, functional, multimodal, and context-driven, often without the kind of chatty back-and-forth that dominates many current assistants. In other words, the computer is not waiting for a rigid command syntax. It is interpreting intent in context. And Trek’s AI stories repeatedly turn on role and purpose. Voyager’s Emergency Medical Hologram evolves from a temporary failsafe program into a complex individual, while Discovery’s Control becomes dangerous precisely because it pursues its mission beyond what its designers intended.

Mike Shepherd’s Kris Longknife series offers another revealing model. Kris just talks to her personal computer, Nelly, and that computer accesses an inventory of physical and digital capabilities – including other computers – and develops and executes a plan of action, including writing (or rewriting) software as she goes. That is a subtle but powerful idea. Nelly is not presented as a one-off utility or a script executor. She functions more like an intelligence layer that collaborates, adapts, and mediates between people, ships, and systems.

Ian Douglas’s Star Carrier series scales the same idea upward. You start with AIs that are seemingly similar in concept to what we have now, including avatars that can answer phones and even attend meetings for their owners, but before long you are introduced to the super-AI Konstantin, who develops grand-scale plans and directives, including missions tied to civilizational survival and humanity’s transcendence into Singularity – and even calls for help when it needs it. Again, the AI is not compelling because it follows a checklist. It is compelling because it operates at the level of goals, constraints, and strategic direction.

These stories differ in tone. Asimov is analytical. Star Trek is humanistic. Kris Longknife is companionate and operational. Star Carrier is strategic and civilizational. But they converge on one architectural principle: intelligent systems are most interesting, and most useful, when they are given goals within boundaries, not just procedures to execute.

The Real Shift: From Workflow Software to Intent Software

Traditional enterprise software is procedural by design. It assumes that the application already knows the workflow and that the user’s job is to fit into it. That made sense when interfaces were brittle, compute was scarce, and the safest path was to predefine everything. It makes less sense when models can parse language, classify context, synthesize records, and plan across tools.

Current agentic systems already point in this direction. Anthropic’s Claude Code is an agentic tool that can read a codebase, edit files, run commands, and integrate with external tools. It also demonstrates a real shift in interaction style: users describe what they want in plain language, and the system plans and acts across files and tools to get the work done. Anthropic’s Model Context Protocol was introduced as an open standard for connecting AI systems to the places where data lives, specifically to make assistants more context-aware and operationally useful.

That is the shape of the next application stack. First comes an intent layer that interprets what the user is trying to accomplish. Second comes the policy store, which holds the rules, obligations, entitlements, sequencing requirements, thresholds, approvals, and exception logic that define what “done” means. Third comes a set of governed data stores and action surfaces that the system can read from and update in controlled ways. The model does not become the system of record. It becomes the reasoning layer that coordinates among systems of record.

This is why the policy store matters so much. Loose rules and tight rules are not the same thing, and future software will need both. Loose rules describe preference and judgment: service tone, escalation style, tolerance for ambiguity, house views, risk appetite within a range, or how much explanation to provide to a customer or advisor. Tight rules are non-negotiable: a claim cannot be paid until required audit checks are complete, a lending file cannot move to approval unless documentation is present, a beneficiary change cannot be finalized without identity verification, a card dispute cannot miss network deadlines, and a trade recommendation cannot violate suitability or account restrictions.

In too many current AI implementations, those rules are smuggled into prompts. That is not durable enough. Prompts are useful, but they should not be the enterprise source of truth for operational obligation. The policy store should be explicit, queryable, versioned, testable, and auditable. In practical terms, some firms will implement this as policy-as-code, some as a governed rules service, and some as a set of tightly managed workflow and decision assets. The label matters less than the role. The role is to tell the AI what it may do, what it must do, what must be proven first, and what requires a human decision.

The Policy Store Becomes the Enterprise Core

This is the part many organizations will underestimate. They will think the intelligence lives in the model. In practice, the durable enterprise advantage will come from how well an organization externalizes and governs its operating judgment.

NIST’s AI Risk Management Framework is useful here because it frames governance in operational, not mystical, terms. Its Govern function emphasizes policies, processes, procedures, accountability, oversight, third-party controls, and clearly defined human-AI roles. Its Map function emphasizes documenting goals, context, impacts, constraints, and human oversight before deployment and as systems evolve. That is, in effect, the formal beginning of a policy store mindset.

In property and casualty insurance, the policy store would not only know coverage logic. It would know the operational requirements around settlement authority, fraud screening, documentation sufficiency, reserve movement, subrogation flags, vendor usage, and payment release.

In wealth management, it would know account restrictions, investment policy statements, best-interest obligations, communication standards, concentration thresholds, tax sensitivities, and approval requirements before money moves.

In credit card processing, it would know dispute reason codes, evidence windows, merchant rules, and refund or chargeback conditions.

Put differently, the policy store is where institutional memory stops being tribal and becomes computational.

Governed Data Stores, Not Open Terrain

The third layer is the series of data stores the software can access, read from, and update in defined and controlled ways. This is just as important as the policy layer, because intent without evidence becomes improvisation.

The emerging standards conversation already reflects this. The MCP specification separates tools from resources, defines typed interfaces, and emphasizes user consent, control, data privacy, and tool safety. Its documentation describes resources as structured access to information and tools as schema-defined actions a model can request. It also highlights approval dialogs, pre-approval settings for safer operations, and activity logs that show what a model did and what came back. That is the right pattern for enterprise computing: typed access, constrained operations, explicit consent, and durable observability.

Anthropic’s current settings and MCP documentation push in the same direction. They expose allow, ask, and deny permission rules, support managed allowlists and denylists for MCP servers, and distinguish between access that is available, access that is confirmable, and access that is forbidden. This is not just a developer convenience. It is the beginnings of a control plane for intent-driven software.

That matters profoundly in financial services. A future claims platform should be able to read claim notes, policy data, estimate history, photos, prior payments, repair network status, and fraud indicators. But it should not have blanket write access everywhere. It should be able to draft a settlement, update a reserve recommendation, request missing artifacts, or prepare a payment action for approval, all under policy. A future advisor workstation should be able to assemble household context, unrealized gains, liquidity needs, account restrictions, and communications history, then draft a recommendation or cash-raising plan. But execution should still honor policy, entitlements, and approval logic. The same pattern applies to servicing, underwriting, reinsurance operations, and dispute management.

The future application will feel fluid to the user. Underneath, it will be highly structured.

Financial Services Will Be the Proving Ground

Financial services is a particularly useful lens because the work is rich in intention and dense with obligation. Customers, claimants, underwriters, advisors, analysts, loan officers, processors, and operations teams are rarely trying to “fill out a form.” They are trying to accomplish something meaningful inside a regulated environment.

Consider a property and casualty claim. The customer’s intent is simple: “Help me get this resolved.” The adjuster’s intent is also simple: “Move this claim to fair, fast, and defensible resolution.” What makes the task hard is not the language. It is the policy burden. Coverage must be verified. Audit checks must be complete. The file must be complete. Thresholds must be respected. Fraud controls must be satisfied. Payment authority must be valid. The future claims system will interpret intent, gather the evidence, explain the recommended next action, and then either execute or escalate based on policy.

The same is true in wealth and banking. A client does not want to navigate twelve screens to raise cash for taxes, transfer assets into trust registration, or adjust a portfolio around a life event. The client wants the outcome. The advisor wants the work done correctly, with tax awareness, suitability, documentation, and communication. In lending, a relationship manager does not want to manually assemble every covenant note, collateral exception, and committee artifact from scattered systems. The goal is to understand risk, document the story, and make a sound decision. In credit card processing, the merchant or cardholder does not care about the internal fragmentation of dispute systems. They care that the case is resolved on time and with the right evidence.

This is why financial services will likely be one of the earliest industries to force maturity on AI-native software. The sector has enough rules to demand architecture, enough complexity to benefit from intent understanding, and enough value at stake to justify building the connective tissue between models, policy, and data.

The Risk Is Not Intelligence. It Is Unbounded Action.

None of this should be romanticized. Goal-driven systems are powerful, but power without boundaries is exactly what science fiction warns about. Star Trek’s Control is memorable because it follows its mission in a way its creators did not mean. Asimov’s stories endure because rule hierarchies break under ambiguity. Those are not arguments against AI. They are arguments against burying governance inside vague hopes about “alignment.”

A serious enterprise design will therefore separate intent from authorization, policy from prompt text, and data access from unrestricted model context. It will log every action against identity and policy. It will preserve human approval for consequential acts. It will treat explanation, exception handling, rollback, and deactivation as first-class design features, not afterthoughts. NIST’s emphasis on documented roles, oversight, third-party controls, monitoring, and the ability to disengage or deactivate systems points directly to this operating model.

Conclusion

The future of computing is not that software disappears. It is that users will no longer be expected to think like software.

Science fiction has been telling us this for decades. Asimov gave us bounded intelligence under ethical constraint. Star Trek gave us context-aware interfaces and AI shaped by mission. Kris Longknife imagined a companion intelligence woven into operations. Star Carrier imagined strategic AI operating toward civilizational ends. What those stories grasped is now becoming practical: the most useful systems are not the ones that wait for procedures. They are the ones that can understand goals inside governed boundaries.

That is why the next great enterprise platform will not just be a model. It will be a model connected to a policy store and to governed data stores, operating under explicit authority. In that world, the interface becomes intent, the differentiator becomes policy, and the system’s value comes from how safely it can turn understanding into action. For financial services leaders, that is not a distant science-fiction vision. It is the architecture decision already taking shape.

The CFO Does Not Want Your Lineage Graph

When a senior executive challenges a number, the meeting does not pause so everyone can open a lineage tool, inspect a dependency graph, and trace SQL.

That is not how trust works at the executive level.

The CFO is not asking for a prettier diagram. They are asking for an answer. They want to know where the number came from, what logic produced it, and whether they should trust it. And they want that answer quickly, accurately, and in plain language.

That is why I think the current state of the art in data glossary and data lineage is fundamentally transitory. The graph matters. The catalog matters. The metadata matters. But none of those is the destination. They are ingredients. The destination is an interface that can answer the question directly and back that answer with evidence.

Continue reading “The CFO Does Not Want Your Lineage Graph”

From Vibes to Specs: The New Citizen Development Financial Services Can Actually Trust

A friend of mine recently came back from a conference session on “vibe coding” with the kind of energy you only get when something fundamental has shifted. They are smart, tech-enabled, and fully comfortable around digital tools, but they are not a programmer. After a brief introduction, they sat down and built several applications. Not toys. Not abstract demos. Useful applications that solved real problems in both their daily life and their professional work. They even shared those applications with colleagues. And, as is often the case with these new tools, the apps were not only functional. They were polished, themed, and appealing to use.

That story is easy to file under amazement. It is harder, and more important, to recognize it as a signal. The computing world is going through a fundamental shift that changes the locus of invention. Before – and almost every programmer has had this experience, I suspect – non-developers would come up to you and tell you an idea, then try to get you to help them make it happen. Now they can do a lot of the hard work themselves!

The signal, though, is not that everyone should now go build production systems from a prompt window and hope for the best. The signal is that the distance between understanding a problem and expressing a solution in software has collapsed. The people closest to the work can now participate in shaping the tools they need in a much more direct way. That is the breakthrough. And in the financial services sector, where structure, security, explainability, and accountability are non-negotiable, the way to turn that breakthrough into something durable is not vibe coding. It is spec-driven development.

If we want a world where everyone can get to what they need to do, their way, even inside the highly governed world of banking, wealth management, lending, life insurance, reinsurance, property and casualty insurance, and credit card processing, then spec-driven development should become the new citizen development model.

Continue reading “From Vibes to Specs: The New Citizen Development Financial Services Can Actually Trust”

A Data Product Is an Engine, Not a Table: FabCon 2026, Databricks, Fabric, and the Case for Interoperability

FabCon and SQLCon 2026 made the Microsoft Fabric and Azure Databricks story more concrete. The headline changes were not cosmetic. Microsoft moved zero-copy access to OneLake data from Azure Databricks into public preview, made Direct Lake in OneLake generally available, kept expanding Databricks-to-Fabric mirroring, and then pushed shortcut transformations into general availability in April. Put plainly, the platform story is moving away from “pick one stack forever” and toward “publish governed products that multiple engines can use.”

That matters because too many teams still call a dataset a product. Microsoft’s current guidance is more precise than that. A data product has defined shape, interfaces, maintenance expectations, and refresh cycles. It is processed for analytical use, and it should be discoverable, secure, interoperable, and valuable enough to serve downstream consumers without forcing them back into raw source complexity. The OneLake Catalog is now described in the Cloud Adoption Framework as a unified access surface for approved data products across Fabric and external processing platforms such as Databricks.

That is where Quantum Regression is a useful teaching device. I am not using it here as a product feature – or even going into the technology -, I am using it as a way to think about how data products enable modular expansions to the data estate. In this framing, a data product is an independent transformation: it accepts ingestions, applies logic, enforces quality and policy, and surfaces results. The file, table, semantic model, or API is only the current observable state of that transformation. The product is the operator, not the artifact. That is the mindset shift that helps make interoperability useful instead of merely fashionable.

Continue reading “A Data Product Is an Engine, Not a Table: FabCon 2026, Databricks, Fabric, and the Case for Interoperability”

Automate the Ordinary, Protect the Complex: Why Straight-Through Document Processing Lowers Risk

The most expensive document in a regulated workflow is often not the complicated one. It is the ordinary one that gets treated like an exception.

Every unnecessary touch adds labor cost, cycle time, rekeying risk, and inconsistency. That is why straight-through processing matters when it is part of a broader digital intelligence process. Done well, it reduces risk twice. On the front end, it automates the non-exceptional work. On the back end, it gives people more time for the cases a machine cannot resolve reliably—or should not be allowed to resolve alone. That is the real operating advantage now emerging across insurance and lending workflows.

Straight-through processing is not just scanning or OCR. It is an operating model: classify the document, extract the right fields, validate them against rules and third-party data, determine whether confidence is high enough, and then either complete the task or route the file into an exception queue with context. That direction is already built into the market. ACORD describes its standards work as supporting the insurance industry’s goal of straight-through processing, McKinsey notes that document-classification capabilities can be reused across underwriting, claims, and policy servicing, and McKinsey’s 2026 banking work describes end-to-end workflows that accelerate flow while escalating exceptions to humans in the loop.

Continue reading “Automate the Ordinary, Protect the Complex: Why Straight-Through Document Processing Lowers Risk”

Before the Capacity Fire Starts: Why FUAM Belongs in Every FSS Fabric Baseline

Most Fabric monitoring conversations begin too late.

They begin when a workspace is already noisy, when refreshes are already failing, or when capacity pressure has already become visible enough to trigger concern. By that point, the real problem is usually larger than utilization. It is a visibility problem. Teams do not have a durable, tenant-level view of what exists, what changed, what is connected to source control, what is actively used, and where governance has started to drift. That is the gap FUAM was designed to close. The distinction worth making is not between a “simple” and a “serious” version of monitoring, but between an original governance-first package and the newer Fabric Toolbox implementation that extends that foundation with Capacity Metrics and deeper operational analysis.

That distinction matters for FSS environments because it changes the order of operations. The older GT-Analytics package, labeled FUAM Basic, focused on the data that can be gathered without reading Capacity Metrics. The current Fabric Toolbox implementation keeps the same broad monitoring vision, but adds Capacity Metrics as part of a larger platform-admin monitoring solution. If the question is what should be present by default in an FSS Fabric setup, the answer starts with the governance-and-inventory layer and then grows into the richer Capacity Metrics-enabled implementation as operational maturity increases.

Continue reading “Before the Capacity Fire Starts: Why FUAM Belongs in Every FSS Fabric Baseline”

After FabCon: What Agentic Apps on Microsoft Fabric Could Actually Look Like in Insurance and Wealth Management

The real test for agentic AI is not whether it can answer a question. It is whether it can answer the right question, with the right data, under the right controls, and then move work forward without creating new risk. That is why Microsoft’s March 12 piece on operationalizing agentic applications mattered. It shifted the conversation away from chatbot theater and toward architecture, telemetry, governance, and action. Since FabCon Atlanta in March 2026, that story has become more concrete: Microsoft used the event to frame trusted AI around OneLake, Real-Time Intelligence, Fabric IQ, and AI agents; said Fabric data agents are now generally available; introduced Fabric Remote MCP in preview; and announced Planning in Fabric IQ.

Just as important, the weeks immediately after FabCon filled in several missing pieces. Microsoft says Fabric IQ now supports Azure Private Link integration, and it also says Fabric IQ ontology will be exposed through public MCP endpoints. Microsoft added Ontology Rules with Fabric Activator, documented Business Events in Real-Time Intelligence, published source control and deployment-pipeline guidance for Fabric data agents, and, in April 2026, announced shortcut transformations as generally available. Taken together, those updates make Fabric’s agent story look less like a promising concept and more like an emerging operating model.

That matters because Fabric IQ is no longer just a semantic side note. Microsoft now describes IQ as a workload spanning ontology, plan, graph, data agents, operations agents, and semantic models. Ontology defines entity types, relationships, properties, and condition-action rules bound to real data. Graph adds relationship-centric analysis. Plan brings budgets, forecasts, and scenarios onto the same governed platform. And Fabric data agents can answer questions over lakehouses, warehouses, semantic models, KQL databases, ontologies, and Microsoft Graph in Fabric.

OneLake Transformations Are GA—and That Makes Zero‑Unmanaged‑Copy Much More Practical

If you were already bullish on OneLake transformations in preview, the structured-file general availability milestone is easy to treat as a nice product update: useful, welcome, and mostly about convenience. I think that undersells it. What Microsoft officially calls shortcut transformations for structured files is now generally available, and the docs position it very plainly: take CSV, Parquet, or JSON files referenced through a OneLake shortcut, convert them into queryable Delta tables, keep them synchronized, and do it without hand-built ETL pipelines. That is not just easier ingestion. It is a stronger architectural bridge between raw file-based inputs and governed analytical assets inside OneLake.

What I want to do in this post is straightforward. First, I want to explain why this GA moment matters to the zero‑unmanaged‑copy model, not just to file onboarding. Second, I want to connect it to the ingest‑transform‑surface framing we have been using here. Third, I want to argue that shortcut transformations are another example—alongside Materialized Lake Views—of how multistep transform pipelines smooth the path between layers and produce something cleaner than a rigid, box-drawing version of bronze‑silver‑gold. Fabric still clearly supports medallion as a first-class pattern, but that does not mean your internal architecture has to stop at three oversized steps.

GA matters because ingest just got more product-shaped

The most important thing about shortcut transformations going GA is that ingestion becomes more like a platform primitive and less like a custom engineering tax. Microsoft’s documentation now describes shortcut transformations as managed conversion from shortcut-backed files into Delta tables with automatic schema handling, deep flattening, recursive folder discovery, frequent synchronization, and inherited governance including OneLake lineage, permissions, and Purview policies. Microsoft’s “What’s New” log also calls out the feature as generally available in April 2026. In other words, the platform now has a stable, service-managed answer for a very common problem: “I have structured files over there; I want governed Delta tables over here; and I do not want to build and babysit another pile of pipelines to make that happen.”

That is a bigger deal in financial services than it might sound at first. Wealth management teams still receive custodian position files. Lending teams still deal with servicer extracts and partner feeds. Reinsurers still work with bordereaux. Property and casualty organizations still inherit operational file drops from claims, finance, and third-party data providers. Credit card processing estates are full of settlement files, exception files, dispute files, and fee reports. Those are not edge cases. They are the day-to-day reality of how important data actually arrives. Historically, that reality has led to a familiar pattern: copy the files into a landing zone, copy them again into a parsed zone, run a notebook to shape them, land them again into a managed table, and only then begin the “real” transformation work. Shortcut transformations do not eliminate every later materialization, but they collapse a large chunk of that low-value plumbing into a governed ingest step that the platform now owns.

And notice how this changes the conversation with delivery teams. The question becomes less “what custom ingest framework are we going to build for this source?” and more “what is the cleanest input boundary we want to declare?” That is a healthier architectural question. It pushes teams to think intentionally about what they are consuming, where the source of authority lives, and what should be represented as managed Delta inside OneLake. That is already a more product-shaped starting point than “let’s dump it somewhere and figure it out later.”

Zero‑unmanaged‑copy gets stronger, not weaker

This is exactly why the feature strengthens the zero‑unmanaged‑copy model rather than contradicting it. OneLake is explicitly described by Microsoft as a single, unified logical lake with one copy of data for use with multiple analytical engines, and shortcuts are explicitly designed to eliminate edge copies and the latency introduced by staging. In your own framing, the important idea has never been “never materialize anything.” It has been “don’t proliferate unmanaged copies that escape governance, clarity, and intent.” When you do materialize, do it in a place and format the platform can govern. Shortcut transformations fit that definition almost perfectly: the upstream files remain where they are, referenced through the shortcut, while Fabric produces a managed Delta table inside the OneLake estate.

That may sound like a subtle distinction, but operationally it is not subtle at all. Consider a lender receiving monthly or daily boarding files from an external servicer. The old pattern tends to produce “temporary” copies in multiple storage locations, each with its own lifecycle, permissions, and chances to drift from the intended source. Or consider a card-processing analytics team pulling settlement and chargeback files from an external store. The common workaround is a ladder of copies and partial transforms, often implemented in a way that nobody wants to fully document because the whole thing is “just staging.” Shortcut transformations move that copy into the open. The resulting Delta table is not an accidental byproduct of bespoke ETL. It is a declared, synchronized, monitored platform asset. That is a much better expression of zero‑unmanaged‑copy than a philosophy that refuses any materialization and then quietly tolerates three layers of shadow duplication anyway.

There is also a governance payoff here that matters in regulated industries. Microsoft’s documentation explicitly notes that the transformed shortcut flow carries inherited governance signals, including lineage, permissions, and Purview policies. That is precisely what you want when the data is headed into lending risk analytics, advisor reporting, reserving support, or operational reconciliation. The copy that exists is not just “inside the platform.” It is inside the platform’s governance envelope. That is what makes it managed.

The ingest‑transform‑surface model just got sharper

This is where the ingest‑transform‑surface framing becomes especially useful. On edudatasci.net, the advanced lakehouse pattern was framed as explicit inputs through shortcuts or schema shortcuts, a small-step transformation layer implemented as a DAG, and a versioned schema-based surface exposed as the product contract. Shortcut transformations make the ingest part of that model stronger because they give file-based sources a cleaner first-class boundary. Before, the model was already strong when the input was Delta-native, mirrored, or otherwise easy to consume. Now the file-heavy edge of the estate gets a much more elegant path into the same pattern. The ingest boundary stops being “a folder our notebook happens to read” and becomes “a managed Delta representation of the files we intentionally consume.”

The supporting mechanics line up nicely too. Microsoft documents lakehouse schemas as named collections of tables, supports schema shortcuts that map external Delta folders or other lakehouse schemas into your local lakehouse, and supports four-part cross-workspace Spark SQL names. That matters because it lets you keep both the input layer and the product surface explicit. Inputs can be isolated into a clearly named schema. Outputs can be versioned into clearly named product schemas. And the path between the two can remain a deliberate internal implementation rather than an accidental tangle of notebooks and one-off scripts.

The surface side of the model is just as important. Microsoft’s Fabric lifecycle docs say that once data is in OneLake, you can transform it within Fabric without moving it between engines. From there, you can expose it through schemas, through the automatically provisioned SQL analytics endpoint, or through Direct Lake semantic models over Delta tables in OneLake. The SQL analytics endpoint gives you a read-only T-SQL surface over lakehouse Delta tables. Direct Lake is explicitly described as ideal for the gold analytics layer because it reads OneLake Delta tables directly and refreshes by copying metadata rather than replicating the full dataset. That is exactly what a surface should be: a published interface over governed assets, not yet another extraction exercise.

Think about a wealth management product for reconciled holdings and exposures. The ingest boundary might be multiple shortcut transformations over custodian and reference-data files. The transform layer might canonicalize security identifiers, standardize portfolio keys, and compute look-through exposures. The surface might be a versioned schema consumed by quants through SQL and by executives through a Direct Lake semantic model. Same OneLake foundation, explicit boundaries, and far fewer excuses to create side copies “just for reporting.” The model becomes cleaner because each step knows what it is for.

This is another multistep transform pipeline story

The real architectural lesson, though, is not just about ingest. It is about small-step composition. Microsoft’s medallion guidance now explicitly says Materialized Lake Views can be used to implement medallion architecture without building complex pipelines between bronze, silver, and gold. The MLV docs describe declarative transformations, automatic dependency management, built-in data quality rules, optimal refresh, and monitoring. They also note that an MLV can be defined from a table or from another MLV, and that lineage is processed in dependency order. That is exactly what a multistep transform pipeline is supposed to look like: not one giant transformation job, but a graph of smaller, observable steps the platform can understand and operate.

Now read that next to the shortcut transformation documentation and the pattern becomes even more explicit. The shortcut transformations doc not only describes the managed file-to-Delta ingest step; it also says, in plain language, that for further transformations—especially where you need more shaping—you should use Materialized Lake Views for the silver layer. That is a remarkably direct articulation of the chained pattern: start with shortcut transformations to get from file-shaped raw data to governed Delta, then continue with MLVs for the internal transformation graph. Sources stay explicit. Steps stay small. Lineage stays visible. Outputs become cleaner.

This is why I keep coming back to the distinction between medallion as vocabulary and medallion as rigid execution template. Bronze, silver, and gold are useful labels. They are useful teaching tools. They are often a sensible way to describe maturity and intent. But when teams turn those labels into three huge engineering buckets, they often hide too much complexity inside each one. Type normalization, deduplication, survivorship, conformance, rule application, exception handling, and regulatory quality checks get shoved into a few oversized jobs, and then everyone pretends the architecture is clean because the folders are named nicely. The actual engineering is still messy. Multistep transform pipelines smooth out the terrain between those layers by making the in-between work first-class and observable. That is the cleaner option.

Shortcut transformations are now part of that same pattern. They are not merely “how files become bronze.” They are a small transformation step at the ingest edge. MLVs are then small steps in the internal transform graph. Schemas, SQL endpoints, and Direct Lake models become the product surface. Once you see the architecture that way, the old bronze‑silver‑gold staircase starts to look less like a design and more like a loose shorthand for where things broadly sit. The real architecture is the chain of explicit steps between ingest and surface.

That matters a lot in financial services because the hardest work is often not the initial landing and not the final dashboard. It is the middle. In lending, the middle is where delinquency logic, payment reversals, and exposure calculations get reconciled. In property and casualty insurance, it is where claim events are ordered, reserves are interpreted, and policy context is attached. In reinsurance, it is where bordereaux are standardized, treaty mappings are applied, and quality exceptions are isolated. In wealth management, it is where multiple custodians’ versions of the same reality are made coherent enough to publish. Those are exactly the places where smaller, composable transform steps beat giant middle layers every time.

Why financial services teams should care now

Financial services teams should care about this GA moment because so much of the estate is still file-shaped at the edges. Not everything arrives as CDC. Not everything is mirrored. Not everything is already Delta. A large amount of economically important data still shows up as structured files in cloud storage, partner locations, or other OneLake-connected sources. Shortcut transformations being generally available means that edge is now less custom, less brittle, and more governable. The platform can take more responsibility for the boring but essential work of turning structured files into governed Delta tables that stay synchronized.

And that changes where your engineering attention can go. Instead of spending cycles on repetitive file-to-table plumbing, teams can concentrate on the parts of the pipeline that actually differentiate the data product: the business rules, the conformance logic, the quality controls, the contract design, and the surface that consumers trust. That is a much healthier allocation of effort. Your best engineers should be spending more time on exposure logic, reserve interpretation, advisor segmentation, fraud features, or liquidity reporting—not on rebuilding another ingestion ladder for CSV files.

So yes, the obvious story is that OneLake transformations are GA. But the more important story is architectural. The feature makes zero‑unmanaged‑copy more practical because it gives file-heavy estates a managed bridge into Delta. It makes ingest‑transform‑surface more complete because the ingest boundary gets sharper. And it reinforces the same lesson Materialized Lake Views have been teaching: the cleanest modern Fabric pipelines are multistep, explicit, and contract-oriented. Bronze‑silver‑gold still has value. It just works better when it describes the landscape rather than dictating three oversized jumps across it.

Closing thoughts

If you have a backlog full of nightly file copy jobs, fragile parsing notebooks, and “temporary” landing zones that somehow became permanent, this is a good moment to redraw the picture. Start with the input boundary. Let OneLake own more of the copy and synchronization work. Use small-step transformations where the business logic actually lives. And treat the surface as the product contract your consumers are meant to rely on. That is a cleaner architecture than a rigid bronze‑silver‑gold staircase—and now that structured shortcut transformations are GA, it is a much more practical one too.

FinOps for the Data + AI Era: Strong Structures Beat Strong Opinions

The fastest way to turn cloud enthusiasm into executive skepticism is simple: ship something impressive in Data or AI…and then hand Finance a bill no one can explain.

That’s not a tooling problem. It’s a structure problem.

In this post, I’m going to make the case for strong FinOps structures that actively engage Data, AI/ML, and the broader cloud stack—not as a “cost police” function, but as an operating model for technology value. We’ll look at why the scope of FinOps has expanded, what makes Data and AI spend uniquely tricky, and what “strong” actually looks like when it’s working.

Continue reading “FinOps for the Data + AI Era: Strong Structures Beat Strong Opinions”

Six SemPy_labs Functions I Wish More Fabric Teams Used

There’s a moment in most Fabric projects when you realize the hard part isn’t the data model, the lakehouse design, or even the DAX.

It’s the manual work: clicking around to confirm what’s deployed, what depends on what, what’s actually used, and what’s quietly broken.

That’s where Semantic Link Labs (the sempy_labs package) starts to feel like a superpower. Not because it does “magic”—but because it turns Fabric into something you can interrogate and automate with the same discipline you bring to code.

In this post, I’m going to do two things:

  • Give you a quick orientation to SemPy_labs in Fabric and the patterns that make it useful.
  • Walk through a handful of my favorite underused functions—ones that help you extractvalidate, and move assets with less guesswork.

If you’re building in Microsoft Fabric and your work touches #PowerBI, this is one of those toolkits that quietly changes what “fast” looks like.

What SemPy_labs is (and why it’s different)

Semantic link is the Fabric feature that connects Power BI semantic models with the Fabric notebook experience—bridging the gap between Power BI and Synapse Data Science in Fabric.

SemPy_labs (Semantic Link Labs) builds on that foundation and focuses on practical “day two” tasks: inspecting item definitions, working with report metadata, checking semantic model health, and wrapping Fabric REST endpoints into functions that feel notebook-native.

It also pairs naturally with sempy.fabric, which provides a REST client for Fabric endpoints (useful when you want to list or enumerate across workspaces/items).

The two patterns that make SemPy_labs click

SemPy_labs is at its best when you lean into two simple patterns:

A. Pull metadata into a DataFrame, then filter like an analyst.
Many functions return pandas DataFrames directly (or can). That means you can slice, group, and join results before you act.

B. Treat Fabric artifacts like “definitions,” not UI objects.
Instead of “the report I click,” it becomes “the report definition I can export, diff, and reason about.” That one mental shift is a gateway to DataOps thinking in Fabric.

Quick setup in a Fabric notebook

If you don’t already have the package available in your environment, install it and import what you need:

%pip install semantic-link-labs
import sempy_labs as labs
import sempy.fabric as fabric
from sempy_labs.report import ReportWrapper

This is the basic import pattern you’ll see in most examples and walkthroughs.

My favorite underused SemPy_labs functions

Rather than a “top 10 list,” I think about these as verbs—small moves that unlock bigger workflows.

Extract: get_item_definition

If you only adopt one habit from this post, make it this one: export item definitions early and often.

get_item_definition() retrieves a Fabric item’s definition and can decode the payload for you. It can return a dictionary or a DataFrame.

Why it’s underused: teams still treat definitions as something “inside Fabric,” not something they can inspect and version.

workspace = "Contoso Analytics"
item_name = "Sales Lakehouse"
definition = labs.get_item_definition(
item=item_name,
type="Lakehouse",
workspace=workspace,
decode=True,
return_dataframe=False
)
# definition is a dict containing the definition payload/files

Where this pays off:

  • Building repeatable “backup/export” notebooks
  • Creating lightweight diff checks between dev/test/prod
  • Debugging “what changed?” without relying on memory or screenshots

Interrogate: ReportWrapper(...).list_semantic_model_objects()

The ReportWrapper class connects to a Power BI report, retrieves its definition, and exposes a set of report-inspection functions. The key detail: ReportWrapper requires the report to be in PBIR format.

The underused function inside this wrapper is list_semantic_model_objects(), especially with extended=True, because it lets you see which fields are used and whether they still exist in the underlying model.

rpt = ReportWrapper(report="Executive Sales", workspace=workspace)
field_usage = rpt.list_semantic_model_objects(extended=True)
visuals = rpt.list_visuals()
pages = rpt.list_pages()

Why this is suddenly more important: Microsoft has signaled that PBIR is becoming the default report format for new reports in the Power BI service starting in January 2026 (rollout through Feb 2026). That means these PBIR-based inspection workflows become more broadly applicable over time.

If you’ve ever tried to answer “where is this measure used?” by hand… this is the notebook-native alternative.

Count: list_semantic_model_object_report_usage

This one is a governance and refactoring cheat code.

list_semantic_model_object_report_usage() shows semantic model objects and how many times they’re referenced across all reports that rely on the model. It also notes the requirement: reports must be in PBIR format.

usage = labs.list_semantic_model_object_report_usage(
dataset="Sales Semantic Model",
workspace=workspace,
include_dependencies=True,
extended=True
)
# Now you can filter down to "never used" or "rarely used"

Why it’s underused: teams often do model cleanup by intuition (“I don’t think anyone uses that measure”). This function gives you evidence.

A practical use: before you rename or remove anything, generate a usage snapshot and save it to your lakehouse. That’s cheap insurance.

Map: list_item_connections

Connections are one of those areas where “everything is fine” until it really isn’t.

list_item_connections() returns the list of connections that a specified item is connected to.

connections = labs.list_item_connections(
item="Executive Sales",
type="Report",
workspace=workspace
)

Why it’s underused: connection sprawl happens slowly, and the UI encourages a per-item mindset. In a notebook, you can inventory connections across a workspace, detect drift, and flag surprises (like a prod report quietly pointed at a dev connection).

This is one of those functions that supports better hygiene without requiring tenant-admin superpowers.

Move: copy_item

There are a lot of ways to promote artifacts in Fabric. copy_item() is my favorite “clean and direct” option when I want to copy an item with its definition from one location to another.

Two parameters that don’t get enough attention:

  • overwrite (obvious, but easy to forget)
  • keep_existing_bindings (quietly important for reports)
labs.copy_item(
item="Executive Sales",
type="Report",
source_workspace="Contoso - Dev",
target_workspace="Contoso - Test",
overwrite=True,
keep_existing_bindings=True
)

Why it’s underused: many teams default to manual copy steps or heavyweight pipelines even when a simple controlled copy is what they need.

Use it for:

  • “Clone to troubleshooting workspace”
  • “Promote a known-good report definition”
  • “Rebuild an environment quickly after re-orgs”

Score: run_model_bpa

Model Best Practice Analyzer (BPA) tends to get framed as “nice to have.” In reality, it’s one of the easiest ways to systematically improve semantic model maintainability.

run_model_bpa() can display an HTML visualization of BPA results. It can also return a DataFrame, export results to a delta table, and run an extended mode that gathers Vertipaq Analyzer statistics for deeper analysis.

bpa_results = labs.run_model_bpa(
dataset="Sales Semantic Model",
workspace=workspace,
extended=True,
return_dataframe=True
)
# Filter down to high-impact rule violations

Why it’s underused: teams run it once during a crisis, then forget it. The better move is to treat BPA results like test output—something you can trend over time.

This is one of the cleanest “make it measurable” moves you can make in #SemanticLink workflows.

Two honorable mentions (because they unlock automation)

I won’t go deep on these, but they’re worth calling out because they make the rest of the toolkit easier to operationalize.

get_connection_string

get_connection_string() returns the SQL connection string for a Lakehouse, Warehouse, or SQL endpoint.

This is useful when your notebook needs to hand off connection details to downstream libraries or scripts (carefully, and with the right security posture).

service_principal_authentication

If you’re building repeatable admin or governance notebooks, service principal patterns matter.

service_principal_authentication() establishes authentication via a service principal using secrets stored in Azure Key Vault.

That’s the kind of building block that turns “I ran this once” into “we can schedule this.”

Closing thought

The point of SemPy_labs isn’t to replace the Fabric UI. The point is to give you a second interface—one that’s composable, testable, and easy to repeat.

In this post, I introduced SemPy_labs in the broader Semantic Link ecosystem, then walked through a handful of underused functions that cover the full lifecycle: exporting definitions, interrogating PBIR reports, measuring real usage, mapping dependencies, copying artifacts safely, and scoring model health.

If you’re building in Fabric, pick one of these functions and add it to your default notebook template. The compounding value comes from repetition.