# Decision Evidence Dossier: Investment Required Before AI Becomes a Major Consumer of Enterprise Data

**Research snapshot: October 3, 2026**

**Decision in one sentence:** An organization that already has a warehouse/lakehouse, BI estate, and data team should **not** fund a broad “agent-ready data platform” by default. The most defensible first investment is a **bounded AI-facing access pattern over the existing platform**: deterministic authorization, a curated domain boundary, explicit definitions for the business concepts the AI must answer about, visible freshness/quality state, traceable execution, and a regression evaluation set. Investment should move upstream into the core platform only when observed failures show that those controls cannot be supplied reliably at the access layer. This is consistent with production reports from PAR Technology and OpenAI, and with current Snowflake and Databricks designs, all of which add substantial context, control, and evaluation around existing data systems rather than demonstrating that warehouse replacement is inherently necessary. [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)

The critical distinction is therefore not **“AI-ready versus not AI-ready.”** It is:

> **Which AI consumer, doing which job, over which data, with what failure consequence, requires which additional controls?**

The evidence does **not** support the proposition that agents require perfect enterprise-wide metadata, an ontology, a knowledge graph, a new catalog, a universal semantic layer, or a redesigned lakehouse before useful experimentation. Conversely, real enterprise text-to-SQL remains materially harder than benchmark demonstrations: Spider 2.0 was constructed from 632 enterprise workflow problems involving large schemas, multiple SQL dialects, metadata, documentation and code context; leading systems performed dramatically worse than on earlier simplified text-to-SQL benchmarks. [2](https://arxiv.org/abs/2411.07763)

**Evidence labels used below**

- **Empirical:** experimental or benchmark evidence.

- **Production:** evidence from a deployed system; where company/provider-published, it is explicitly treated as self-reported rather than independently audited.

- **Provider design:** documentation showing how a commercial system is designed; evidence of an engineering pattern, not proof of ROI.

- **Normative:** standards, regulation, or formal risk-management guidance.

- **Mechanism:** a causal proposition that is technically plausible but not directly quantified.

- **Speculative:** potential value for which convincing production or controlled evidence was not found in the primary sources reviewed.

## Leadership decision frame

### The leadership decision map

**Deliverable — Leadership decision map**

The first leadership decision is the **risk and use-case envelope**, not the technology layer.

<table header-row="true">
	<tr>
		<td>Leadership choice</td>
		<td>Appropriate when</td>
		<td>What it buys</td>
		<td>What it does **not** solve</td>
		<td>Reversibility</td>
	</tr>
	<tr>
		<td>Expose existing warehouse directly</td>
		<td>Expert internal users; sandbox/non-sensitive data; exploration where users can inspect SQL</td>
		<td>Maximum flexibility, minimum interface engineering</td>
		<td>Ambiguous metrics, bad joins, inappropriate tables, model-generated access mistakes</td>
		<td>High</td>
	</tr>
	<tr>
		<td>Curated warehouse role/views</td>
		<td>A bounded domain can be represented through a limited set of trustworthy tables/views</td>
		<td>Harder data boundary, smaller schema/search space, existing SQL ecosystem</td>
		<td>Full business semantics or workflow actions</td>
		<td>**Very high; strong default experiment**</td>
	</tr>
	<tr>
		<td>Governed metrics / metric API</td>
		<td>Repeated KPI questions where consistency matters more than arbitrary exploration</td>
		<td>Canonical calculations, time/filter semantics, reusable answers</td>
		<td>Open-ended analysis outside modeled metrics</td>
		<td>High–medium</td>
	</tr>
	<tr>
		<td>Richer documentation/metadata</td>
		<td>Correct tables exist but users/agents cannot reliably discover or interpret them</td>
		<td>Better table selection, grain/join/context understanding</td>
		<td>Incorrect upstream data or ambiguous business policy</td>
		<td>High</td>
	</tr>
	<tr>
		<td>Formal semantic layer</td>
		<td>Many users/tools repeatedly need the same entities, joins, dimensions, and metrics</td>
		<td>Central reusable semantic logic</td>
		<td>Bad source data; permissions; action safety</td>
		<td>Medium</td>
	</tr>
	<tr>
		<td>Data contracts / stronger quality</td>
		<td>Agent failures arise from unstable schemas, freshness, or upstream changes</td>
		<td>Earlier detection/prevention of data breakage</td>
		<td>Business-meaning ambiguity</td>
		<td>High</td>
	</tr>
	<tr>
		<td>Domain-specific agent tools/API</td>
		<td>Customer-facing or workflow use case has a narrow set of supported operations</td>
		<td>Strong policy boundary, auditability, validation</td>
		<td>Arbitrary analysis</td>
		<td>High</td>
	</tr>
	<tr>
		<td>AI-specific access layer</td>
		<td>Different AI consumers need context retrieval, policy enforcement, tool routing or observability not supplied by the warehouse interface</td>
		<td>Decouples models/agents from raw platform</td>
		<td>Structural problems inside core data products</td>
		<td>Medium–high</td>
	</tr>
	<tr>
		<td>Keep AI read-only</td>
		<td>Analytical benefit exists but action errors have meaningful downside</td>
		<td>Major reduction in blast radius</td>
		<td>Wrong answers and disclosure risks</td>
		<td>**Very high**</td>
	</tr>
	<tr>
		<td>Delay access</td>
		<td>Deterministic authorization, trustworthy source data, or basic ownership cannot be established even for the chosen domain</td>
		<td>Avoids scaling an uncontrolled failure mode</td>
		<td>Does not itself remediate debt</td>
		<td>N/A</td>
	</tr>

</table>

The evidence behind the preference for constraining access rather than trusting prompts is unusually concrete. PAR Technology reports that its first production direction was direct natural-language-to-SQL over Databricks. It regarded that version as analytically promising but unsuitable for a multi-tenant production setting, then moved authentication, semantic validation and row isolation outside the model. Its resulting architecture exposes only a preauthorized data sandbox to the LLM. PAR reports more than 50,000 production queries with zero cross-tenant exposure incidents; that figure is a **self-reported production result, not an independent security audit**. [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)

OpenAI describes a different but complementary pattern for its internal data agent: it retained existing data permissions, put the agent in an interface layer, passed through the user's existing table entitlements, and supplied additional context from metadata, lineage, human annotations, pipeline code, institutional knowledge, memory, and live data inspection. Its published architecture therefore shows that substantial AI enablement can occur **without making the AI access layer the system of record or replacing the underlying data platform**. [3](https://openai.com/index/inside-our-in-house-data-agent/)

**Decision recommendation:** treat “replace/redesign the platform” as an **escalation**, not the opening assumption.

### What AI changes versus what it merely exposes

**Deliverable — What AI changes versus what it merely exposes**

A useful distinction is between pre-existing data debt and genuinely new operating requirements.

<table header-row="true">
	<tr>
		<td>Weakness</td>
		<td>Human analyst today</td>
		<td>AI consumer</td>
		<td>Classification</td>
	</tr>
	<tr>
		<td>Undocumented metric definition</td>
		<td>Analyst asks a colleague or recognizes dashboard convention</td>
		<td>Agent may produce a plausible but different calculation</td>
		<td>Mostly **exposed debt**, amplified</td>
	</tr>
	<tr>
		<td>Tribal join knowledge</td>
		<td>Analyst learns which many-to-many join is dangerous</td>
		<td>Agent needs this information supplied or must discover it experimentally</td>
		<td>Exposed debt + machine-context requirement</td>
	</tr>
	<tr>
		<td>Undocumented grain</td>
		<td>Analyst inspects rows or knows the model</td>
		<td>Incorrect aggregation may look perfectly plausible</td>
		<td>Exposed debt, higher propagation risk</td>
	</tr>
	<tr>
		<td>Exceptions/business rules</td>
		<td>Experienced analyst remembers them</td>
		<td>Agent cannot infer company-specific exceptions reliably from generic model knowledge</td>
		<td>Exposed debt</td>
	</tr>
	<tr>
		<td>Stale pipeline/dashboard</td>
		<td>Human may know “Monday data is late”</td>
		<td>Agent needs machine-observable freshness or may confidently reuse stale data</td>
		<td>Exposed debt + new signaling requirement</td>
	</tr>
	<tr>
		<td>Conflicting definitions</td>
		<td>Humans negotiate which one to use</td>
		<td>Automated consumers can scale inconsistency across many interactions</td>
		<td>Exposed debt amplified by scale</td>
	</tr>
	<tr>
		<td>Inconsistent ownership</td>
		<td>Humans find “who knows this table” informally</td>
		<td>Agent cannot reliably escalate or repair governance ambiguity</td>
		<td>Exposed debt</td>
	</tr>
	<tr>
		<td>Stochastic query generation</td>
		<td>Not applicable to conventional SQL/report</td>
		<td>Equivalent questions can produce different generated SQL/results</td>
		<td>**AI-specific operational requirement**</td>
	</tr>
	<tr>
		<td>Need for evaluation set</td>
		<td>Dashboard query is deterministic and testable directly</td>
		<td>Natural language→reasoning→SQL requires task-level regression tests</td>
		<td>**AI-specific**</td>
	</tr>
	<tr>
		<td>Prompt injection / malicious natural language</td>
		<td>Not a normal BI query interface</td>
		<td>Language is both user interface and potential attack surface</td>
		<td>**AI-specific**</td>
	</tr>
	<tr>
		<td>Delegated identity across tools</td>
		<td>Often a single BI session</td>
		<td>Agent may call multiple services “on behalf of” a user</td>
		<td>**AI-specific**</td>
	</tr>
	<tr>
		<td>Safe ambiguity handling</td>
		<td>Analyst asks a clarification</td>
		<td>Agent needs explicit clarify/abstain behavior</td>
		<td>**AI-specific**</td>
	</tr>
	<tr>
		<td>Tool/action blast radius</td>
		<td>Human manually moves from insight to action</td>
		<td>Agent can potentially chain analysis into execution</td>
		<td>**AI-specific**</td>
	</tr>

</table>

OpenAI's engineering report is unusually illustrative of the first half of the table: it cites similar-looking tables, many-to-many joins, missing filters, null handling, table lineage, pipeline logic, freshness and company-specific calculations as challenges that already exist in analytics; it then supplies those contexts explicitly to the agent. [3](https://openai.com/index/inside-our-in-house-data-agent/)

The second half is genuinely different. Snowflake's current evaluation tooling explicitly reruns natural-language questions against verified SQL/result sets and warns that repeated generations can differ even when the evaluation judge is pinned; its documentation recommends repeated evaluation to understand normal score variation. That is an operational requirement conventional BI queries do not have in the same form. [4](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst-evaluations)

Likewise, authorization cannot become another piece of prompt context. PAR's production architecture deliberately puts data isolation outside the LLM because probabilistic generation is not considered a deterministic policy enforcement mechanism. NIST Zero Trust guidance independently recommends granular resource-level authorization and policy enforcement rather than implicit trust. [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)

**Bottom line:** AI does not magically make poor data poor. It makes **implicit knowledge, nondeterminism, and automated propagation** much more economically relevant.

## Value and use-case evidence

### Value and use-case map

**Deliverable — Value / use-case map**

There is a major evidence gap worth making explicit: the primary sources reviewed do **not** provide robust, independent evidence that investing in an enterprise semantic layer, catalog, ontology, or “agent-ready platform” produces a universal percentage improvement in business performance. The strongest direct evidence today consists of deployed data-agent reports, text-to-SQL benchmarks and provider engineering practices. Therefore, platform investment should be justified by a named use case and measured against that use case, not by generic claims about “unlocking AI.”

<table header-row="true">
	<tr>
		<td>Potential value</td>
		<td>Evidence status</td>
		<td>Evidence / interpretation</td>
	</tr>
	<tr>
		<td>Broader analytical self-service</td>
		<td>**Production evidence, provider/self-published**</td>
		<td>OpenAI reports use across Engineering, Data Science, GTM, Finance and Research and describes employees moving from questions to insights much faster; no controlled ROI estimate is provided. [3](https://openai.com/index/inside-our-in-house-data-agent/)</td>
	</tr>
	<tr>
		<td>Natural-language analytics for external users</td>
		<td>**Production evidence, provider/customer-published**</td>
		<td>PAR reports a deployed multi-tenant text-to-SQL system and &gt;50,000 queries. This proves feasibility under a constrained architecture, not universal economics. [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)</td>
	</tr>
	<tr>
		<td>Reduced manual context gathering</td>
		<td>**Production mechanism**</td>
		<td>OpenAI explicitly retrieves schema, lineage, historical query patterns, annotations, code-derived context and institutional knowledge so the human does not gather all of it manually. [3](https://openai.com/index/inside-our-in-house-data-agent/)</td>
	</tr>
	<tr>
		<td>More capable internal assistants</td>
		<td>**Production + mechanism**</td>
		<td>OpenAI's internal agent performs discovery, SQL generation and multi-step exploration over its data environment; Databricks likewise documents multi-query agent mode. [3](https://openai.com/index/inside-our-in-house-data-agent/)</td>
	</tr>
	<tr>
		<td>Faster operational decisions</td>
		<td>**Plausible; weak direct causal evidence**</td>
		<td>Faster analytical retrieval can shorten decision latency, but the reviewed primary sources do not establish a general business-outcome effect size.</td>
	</tr>
	<tr>
		<td>AI-assisted data engineering</td>
		<td>**Adjacent empirical evidence**</td>
		<td>A 2026 randomized study across Microsoft, Accenture and a Fortune 100 company covering 4,867 software developers found a pooled 26.08% increase in completed tasks from an AI coding assistant. This is strong productivity evidence for software development, but **not a measured effect of making enterprise data agent-ready**. [5](https://pubsonline.informs.org/doi/abs/10.1287/mnsc.2025.00535)</td>
	</tr>
	<tr>
		<td>Reusable organizational context</td>
		<td>**Production mechanism**</td>
		<td>OpenAI reports reusing annotations, code-derived meaning, institutional knowledge and saved corrections across future analyses. [3](https://openai.com/index/inside-our-in-house-data-agent/)</td>
	</tr>
	<tr>
		<td>Agentic business workflows</td>
		<td>**Plausible / case-dependent**</td>
		<td>Data access is a prerequisite for many workflows; the business outcome comes from the workflow, not the access layer itself.</td>
	</tr>
	<tr>
		<td>Autonomous operational decisions</td>
		<td>**Speculative for generic enterprise use**</td>
		<td>The risk and control requirements change materially once the system can change state; analytics evidence should not be used to justify autonomous execution.</td>
	</tr>

</table>

A particularly important counterweight to optimistic text-to-SQL demos is Spider 2.0. Its enterprise tasks involve databases that can contain more than a thousand columns and require schema understanding, metadata, dialect documentation, project code and often complex multi-query SQL. The benchmark's sharp performance drop relative to older text-to-SQL benchmarks is evidence that “the LLM knows SQL” is not equivalent to “the LLM understands the enterprise.” [2](https://arxiv.org/abs/2411.07763)

### Different consumers require different readiness

**Deliverable — Use-case differentiation**

<table header-row="true">
	<tr>
		<td>AI consumer</td>
		<td>Primary job</td>
		<td>Semantic requirement</td>
		<td>Access requirement</td>
		<td>Evaluation requirement</td>
		<td>Recommended default boundary</td>
	</tr>
	<tr>
		<td>**Internal Q&A**</td>
		<td>Find factual answers</td>
		<td>Low–medium; definitions for important terms</td>
		<td>User-level read access</td>
		<td>Citation/source correctness</td>
		<td>Curated search/data tools</td>
	</tr>
	<tr>
		<td>**Conversational analytics**</td>
		<td>Answer KPI and slice/dice questions</td>
		<td>**High for KPIs, joins and time logic**</td>
		<td>Read-only curated analytical scope</td>
		<td>Golden questions + expected results</td>
		<td>Curated views + semantic definitions</td>
	</tr>
	<tr>
		<td>**AI analyst**</td>
		<td>Explore hypotheses, run multiple queries</td>
		<td>Medium–high but needs more flexibility</td>
		<td>Wider read-only domain</td>
		<td>Multi-step correctness, provenance, cost</td>
		<td>Read-only analytical workspace</td>
	</tr>
	<tr>
		<td>**Coding/data-engineering assistant**</td>
		<td>Understand/create pipelines and code</td>
		<td>Code, schema, lineage more important than KPI layer</td>
		<td>Repo + dev/test data; production tightly controlled</td>
		<td>Code/test/build evaluation</td>
		<td>Dev tools and non-prod environments</td>
	</tr>
	<tr>
		<td>**Customer-facing assistant**</td>
		<td>Answer a customer's data questions</td>
		<td>Narrow but extremely precise</td>
		<td>**Hard tenant/user isolation**</td>
		<td>Disclosure tests + answer correctness</td>
		<td>Domain API or strongly isolated views</td>
	</tr>
	<tr>
		<td>**Workflow agent**</td>
		<td>Use data to prepare/propose business work</td>
		<td>Domain-specific business state semantics</td>
		<td>Read plus constrained tools</td>
		<td>End-to-end workflow tests</td>
		<td>Typed APIs/tools</td>
	</tr>
	<tr>
		<td>**Autonomous operational agent**</td>
		<td>Change business state</td>
		<td>Very high for decision inputs and action semantics</td>
		<td>Least-privilege write capabilities</td>
		<td>Safety, rollback, policy, outcome monitoring</td>
		<td>Transactional tools, never arbitrary warehouse write by default</td>
	</tr>

</table>

Databricks' documented analytical agent design is read-only even while it performs multi-step reasoning and multiple SQL queries. PAR similarly restricts model visibility to prefiltered analytical data. These are design signals that **analytical autonomy and write autonomy need not—and should not automatically—be coupled**. [6](https://docs.databricks.com/aws/en/genie-agents/concepts)

**Can one platform design safely support all seven?** Shared primitives can: identity, authorization policy, audit logs, metadata, data products, freshness signals and evaluation infrastructure. The **same interface and permission envelope should not**. Customer-facing multi-tenant analytics and autonomous operational actions have materially different failure consequences from an internal analyst's read-only exploratory session. PAR's architecture demonstrates the former distinction; OAuth and Zero Trust standards likewise favor resource- and action-specific privileges rather than broad ambient authority. [7](https://www.rfc-editor.org/rfc/rfc9700.html)

## Foundation, semantics, quality and metadata

### The minimum platform foundation

**Deliverable — Minimum platform foundation**

For a **bounded read-only AI analytics use case**, the genuinely necessary foundation is smaller than “enterprise data maturity”:

- **An identifiable trustworthy source set.** The agent must know which tables/views/data products it may use, their grain and enough relationship information to avoid obvious analytical errors. Spider 2.0 and OpenAI's production report both show that schema alone is frequently insufficient in real enterprise analysis. [2](https://arxiv.org/abs/2411.07763)

- **Deterministic authorization.** Access must be enforced by the database/API/policy layer rather than requested from the model in natural language. PAR's production design is direct evidence for this pattern; NIST Zero Trust is aligned with resource-specific policy enforcement. [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)

- **Definitions for the concepts that the use case actually asks about.** Not every enterprise term needs modeling. Critical metrics, dimensions, time semantics, exceptional filters and permissible joins do.

- **Visible freshness and known failure state.** The AI should be able to distinguish “current and healthy” from “late, incomplete or unknown.” OpenAI specifically incorporates refresh/update information and can inspect live runtime state when stored context is stale. [3](https://openai.com/index/inside-our-in-house-data-agent/)

- **A named owner/escalation path.** Someone must be able to decide whether an ambiguous definition or bad answer represents a data defect, semantic defect or agent defect.

- **Traceability.** The user/operator should be able to recover the source, generated query/tool calls and result underlying a material answer. OpenAI's internal implementation links analyses to underlying results for verification. [3](https://openai.com/index/inside-our-in-house-data-agent/)

- **A known-case evaluation set.** Both Snowflake and OpenAI describe question-to-expected-query/result evaluation as an ongoing regression control rather than a one-off launch test. [4](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst-evaluations)

That is deliberately **not** a requirement for perfect enterprise-wide lineage, documentation of every table, a company ontology, 100% metadata coverage, or a single canonical definition for every disputed concept. Those may become justified later; requiring them before a contained pilot would make the experiment incapable of telling leadership which missing foundations actually matter.

### Semantic-investment options

**Deliverable — Semantic-investment options**

Semantic investment should be matched to the type of ambiguity being removed.

<table header-row="true">
	<tr>
		<td>Investment</td>
		<td>Agent problem it solves</td>
		<td>Ongoing maintenance</td>
		<td>Strong trigger to invest</td>
		<td>Weak justification</td>
	</tr>
	<tr>
		<td>**Business glossary**</td>
		<td>“What does ARR/churn/active/etc. mean?”</td>
		<td>Low–medium</td>
		<td>Terminology itself is disputed or opaque</td>
		<td>Agent mostly uses technical operational fields</td>
	</tr>
	<tr>
		<td>**Metric definitions / metric store**</td>
		<td>Consistent numerator, denominator, filters, time windows</td>
		<td>Medium</td>
		<td>Repeated KPI questions across BI + AI consumers</td>
		<td>Mostly open-ended detailed analysis</td>
	</tr>
	<tr>
		<td>**Semantic layer**</td>
		<td>Reusable entities, relationships, measures, dimensions, joins</td>
		<td>Medium–high</td>
		<td>Many questions repeatedly fail due to the same joins/metric logic</td>
		<td>One narrow domain with a handful of stable SQL queries</td>
	</tr>
	<tr>
		<td>**Curated data products/views**</td>
		<td>Reduces raw schema search space and encodes grain/business logic</td>
		<td>Medium</td>
		<td>Existing analytics models are already trustworthy</td>
		<td>Assumption that agents need a new abstraction simply because they are agents</td>
	</tr>
	<tr>
		<td>**Ontology**</td>
		<td>Formal vocabulary, entity types and relationships across heterogeneous domains</td>
		<td>High</td>
		<td>Cross-domain reasoning depends on explicit conceptual relationships</td>
		<td>Basic KPI analytics</td>
	</tr>
	<tr>
		<td>**Knowledge graph**</td>
		<td>Traverse explicit entity relationships and attach heterogeneous context</td>
		<td>High</td>
		<td>Graph relations are themselves central to the use case</td>
		<td>Conventional dimensional warehouse questions</td>
	</tr>

</table>

Current product engineering supports the narrower interpretation of semantic value. Snowflake's semantic-view evaluation explicitly uses natural-language questions paired with verified SQL as ground truth and measures generated results against them. Databricks documents the use of names, descriptions, relationships, SQL expressions, examples and verified/trusted query logic to improve analytical interpretation. These are **provider-design evidence that explicit semantics are useful inputs**, not evidence that every organization should purchase a separate semantic product. [4](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst-evaluations)

A semantic layer earns its maintenance cost when the organization is repeatedly paying the same semantic tax: multiple agents, BI tools and analysts independently reconstruct identical metrics, joins and business rules. The reverse also holds. For twenty stable questions over five curated views, a semantic platform can easily be more machinery than the problem warrants.

A useful decision test is:

> **How many recurring agent failures would disappear if this semantic asset existed, and how many human-hours will it take every month to keep that asset correct?**

Do not count theoretical reuse. Count observed failure classes.

### Data quality and freshness investment

**Deliverable — Data-quality / freshness investments**

AI changes the **exposure** side of data-quality economics more reliably than it changes the underlying probability that source data is wrong.

A useful model is:

**Expected defect cost ≈ defect probability × probability the AI consumes it × number of affected AI-mediated decisions/answers × consequence per affected use**

An assistant that makes data accessible to ten times as many people or runs unattended analyses can increase the third term. It does not automatically make the source defect more likely. Therefore, “AI means we need to test every table” is poor economics; “AI increases the value of testing the small set of products it repeatedly consumes” is much more defensible.

<table header-row="true">
	<tr>
		<td>Investment</td>
		<td>AI-specific business case</td>
		<td>Priority</td>
	</tr>
	<tr>
		<td>**Freshness monitoring**</td>
		<td>Lets the agent distinguish healthy current data from late pipelines before presenting an answer</td>
		<td>**High for time-sensitive use cases**</td>
	</tr>
	<tr>
		<td>**Automated quality tests**</td>
		<td>Prevent known structural/logic defects from silently propagating through repeated automated consumption</td>
		<td>High on exposed critical data</td>
	</tr>
	<tr>
		<td>**Schema/data contracts**</td>
		<td>Prevent upstream changes from invalidating machine assumptions without notice</td>
		<td>High when many producers change independently</td>
	</tr>
	<tr>
		<td>**Anomaly detection**</td>
		<td>Helps with unknown data shifts, but false positives and triage create operational cost</td>
		<td>Selective</td>
	</tr>
	<tr>
		<td>**Ownership**</td>
		<td>Makes detected failures resolvable rather than merely observable</td>
		<td>**Foundational**</td>
	</tr>
	<tr>
		<td>**Enterprise-wide blanket testing**</td>
		<td>Adds cost regardless of whether AI consumes the asset</td>
		<td>Low unless justified for other reasons</td>
	</tr>

</table>

OpenAI's internal system retrieves pipeline-derived information including update behavior, grain and construction logic, while Snowflake's evaluation tooling treats regressions as something to detect continuously rather than assuming once-correct behavior remains correct. These support targeted observability around AI-consumed data, not blanket testing of the entire estate. [3](https://openai.com/index/inside-our-in-house-data-agent/)

### Metadata and catalog investment

**Deliverable — Metadata / catalog investment**

The highest-value metadata for an analytical agent is not necessarily the metadata that makes a catalog look complete.

**Tier A — directly answer-affecting**

<table header-row="true">
	<tr>
		<td>Metadata</td>
		<td>Why an agent needs it</td>
	</tr>
	<tr>
		<td>Grain / uniqueness</td>
		<td>Prevents duplicate counts and aggregation mistakes</td>
	</tr>
	<tr>
		<td>Business meaning of table/field</td>
		<td>Distinguishes technically similar datasets</td>
	</tr>
	<tr>
		<td>Allowed/normal relationships and join keys</td>
		<td>Reduces invalid joins</td>
	</tr>
	<tr>
		<td>Metric formulas, filters and time semantics</td>
		<td>Resolves business ambiguity</td>
	</tr>
	<tr>
		<td>Caveats/exceptions</td>
		<td>Prevents generic interpretation from overriding company-specific logic</td>
	</tr>
	<tr>
		<td>Freshness/update state</td>
		<td>Allows stale-data detection</td>
	</tr>
	<tr>
		<td>Sensitivity/access classification</td>
		<td>Helps route to the appropriate tool/data boundary</td>
	</tr>

</table>

**Tier B — discovery/debugging**

<table header-row="true">
	<tr>
		<td>Metadata</td>
		<td>Primary value</td>
	</tr>
	<tr>
		<td>Lineage</td>
		<td>Explain construction; diagnose changes and downstream impact</td>
	</tr>
	<tr>
		<td>Ownership</td>
		<td>Escalation and maintenance</td>
	</tr>
	<tr>
		<td>Usage/query history</td>
		<td>Shows which tables and joins practitioners actually use</td>
	</tr>
	<tr>
		<td>Examples / verified queries</td>
		<td>Gives concrete interpretation of business questions</td>
	</tr>
	<tr>
		<td>Pipeline/code links</td>
		<td>Reveals transformations and assumptions not visible in schema</td>
	</tr>

</table>

OpenAI's deployed internal design uses almost exactly this mixture: schemas and lineage, query history, human descriptions and caveats, code-derived table meaning, refresh/granularity context, institutional knowledge and saved corrections. It explicitly states that schema/history alone do not capture all table meaning. [3](https://openai.com/index/inside-our-in-house-data-agent/)

The significant caveat is **metadata accuracy**. A beautiful description that is six months wrong can be worse for an agent than no description because it creates machine-readable false confidence. Consequently, the economic unit should not be “percentage of columns documented.” Prefer measurements such as:

**agent-exposed assets with current grain + owner + freshness + critical semantic definition**, and<br>
**high-frequency questions covered by verified semantics/examples**.

In the primary evidence reviewed, there is no convincing controlled enterprise study assigning a universal ROI to descriptions versus lineage versus tags versus usage history individually. Treat vendor claims of broad “metadata intelligence” as a hypothesis until your pilot attributes failures to missing metadata.

## Access architecture, permissions and actions

### AI access architecture options

**Deliverable — AI access architecture options**

The following ratings are decision guidance, not vendor performance measurements.

<table header-row="true">
	<tr>
		<td>Access model</td>
		<td>Flexibility</td>
		<td>Governance / security</td>
		<td>Implementation</td>
		<td>Maintenance</td>
		<td>Auditability</td>
		<td>Best fit</td>
	</tr>
	<tr>
		<td>**Unrestricted warehouse query**</td>
		<td>Very high</td>
		<td>Low</td>
		<td>Low</td>
		<td>Low initially</td>
		<td>Medium</td>
		<td>Expert sandbox</td>
	</tr>
	<tr>
		<td>**Curated warehouse role/views**</td>
		<td>High</td>
		<td>High</td>
		<td>Low–medium</td>
		<td>Low–medium</td>
		<td>High</td>
		<td>**Internal analytics default**</td>
	</tr>
	<tr>
		<td>**Semantic API**</td>
		<td>Medium</td>
		<td>High</td>
		<td>Medium</td>
		<td>Medium–high</td>
		<td>High</td>
		<td>Repeated KPI/conversational analytics</td>
	</tr>
	<tr>
		<td>**Domain-specific tools/API**</td>
		<td>Low–medium</td>
		<td>**Very high**</td>
		<td>Medium–high</td>
		<td>Medium</td>
		<td>**Very high**</td>
		<td>Customer-facing/workflow/action</td>
	</tr>
	<tr>
		<td>**Preapproved queries/templates**</td>
		<td>Low</td>
		<td>**Very high**</td>
		<td>Low</td>
		<td>Low</td>
		<td>Very high</td>
		<td>Small stable question set</td>
	</tr>
	<tr>
		<td>**Read-only data product**</td>
		<td>Medium–high</td>
		<td>High</td>
		<td>Medium</td>
		<td>Medium</td>
		<td>High</td>
		<td>Domain analytics / portable boundary</td>
	</tr>

</table>

The choice is fundamentally between letting the model decide **more of the query surface** and moving more decisions into deterministic software.

PAR is instructive: the LLM does not see raw underlying tenant tables. Server-side code first constructs the user's authorized sandbox; the model sees only the resulting schema and generates analytical SQL within that boundary. Ambiguous questions are rejected or clarified before SQL generation. [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)

Databricks illustrates another viable point in the design space: multi-step analytical behavior can still generate only read-only SQL. [6](https://docs.databricks.com/aws/en/genie-agents/concepts)

This suggests a useful architecture principle:

> **Give the model freedom inside a boundary; do not ask the model to define the boundary.**

### Core platform versus AI access layer

**Deliverable — Core platform versus AI access layer**

**Prefer an AI-facing layer over the existing core when:**

- the warehouse/lakehouse already contains sufficiently reliable domain data;

- existing IAM or row/object policies are enforceable programmatically;

- most observed gaps are discovery, context, semantics, interface shape or AI evaluation;

- only one or a few domains are being exposed;

- the organization wants to retain BI and analyst workflows unchanged.

OpenAI describes its agent explicitly as an interface layer inheriting existing data permissions, while enriching context around the underlying platform. [3](https://openai.com/index/inside-our-in-house-data-agent/)

**Fix the core platform when:**

- no trustworthy representation of business grain exists;

- the same KPI has irreconcilable implementations and nobody owns the resolution;

- source identifiers cannot support safe joins;

- permissions cannot deterministically express who may see which rows/entities;

- freshness/quality failure is widespread upstream rather than agent-specific;

- multi-tenant/customer isolation cannot be guaranteed without rebuilding data boundaries;

- every AI application must independently recreate identical correction logic.

That distinction prevents an architectural anti-pattern: hiding fundamentally broken data behind an increasingly elaborate agent layer.

A useful test is:

> Remove the LLM. Would this defect still harm a new analyst, dashboard, API or downstream data product?

If yes, it is probably core data-platform debt. Fixing it only in the AI adapter creates another semantic silo.

### Permission and governance model

**Deliverable — Permission / governance model**

Existing IAM can be sufficient—but only when the AI layer can **faithfully propagate and enforce it**.

OpenAI reports pass-through behavior in which users may query only tables they were already entitled to query; PAR demonstrates the harder multi-tenant case, where application identity is translated into deterministic row-level isolation before the model sees the data. These examples show two architectures rather than one universal IAM answer. [3](https://openai.com/index/inside-our-in-house-data-agent/)

**For user-initiated assistants:** prefer delegated identity—“agent X acting on behalf of user Y”—over a shared highly privileged service principal wherever the underlying systems support it. OAuth 2.0 is specifically designed for limited delegated access, and RFC 8693 defines token-exchange semantics that can represent both the primary subject and the delegated actor. [8](https://www.rfc-editor.org/info/rfc6749/)

**For unattended agents:** use a separately identifiable workload/agent identity with purpose-specific privileges. Current OAuth security best practice recommends restricting tokens to the minimum privileges required and, where possible, to particular resource servers, resources and actions. [9](https://www.rfc-editor.org/rfc/rfc9700.html)

For audit purposes, the useful event is therefore not merely:

`service-account queried customer_table`

but conceptually:

`human/workload subject → AI actor → tool → operation → resource → authorization decision → result`

MCP can standardize the tool connection and schemas around tools, but it does **not eliminate the need for authorization policy or business semantics**. Its specification treats arbitrary data access/tool execution as requiring explicit security, consent and privacy consideration, and its architecture separates hosts, clients and servers to preserve security boundaries. [10](https://modelcontextprotocol.io/specification/draft)

For sensitive categories, the access decision should tighten:

<table header-row="true">
	<tr>
		<td>Data class</td>
		<td>Additional question before exposure</td>
	</tr>
	<tr>
		<td>Employee data</td>
		<td>Is every exposed field necessary for this use and permitted for this user/purpose?</td>
	</tr>
	<tr>
		<td>Customer personal data</td>
		<td>Is the purpose defined, minimization applied, retention understood, and output itself protected?</td>
	</tr>
	<tr>
		<td>Financial data</td>
		<td>Are definitions, close/status timing, approval boundaries and materiality known?</td>
	</tr>
	<tr>
		<td>Confidential commercial data</td>
		<td>Can sharing boundaries be expressed deterministically, including subsidiaries/teams/partners?</td>
	</tr>
	<tr>
		<td>Multi-tenant/client data</td>
		<td>Can another tenant's rows be made **structurally unavailable**, not merely discouraged by instructions?</td>
	</tr>

</table>

For organizations subject to GDPR, those choices interact with statutory principles including purpose limitation, data minimization and accuracy, and with data-protection-by-design and security obligations; introducing an AI interface does not waive those requirements. [11](https://eur-lex.europa.eu/eli/reg/2016/679/oj/eng)

The EU AI Act should not be treated as though every internal analytics assistant is automatically a “high-risk AI system.” Where a use case **does** fall into the Act's high-risk regime, the current consolidated text includes requirements around logging and human oversight and obligations for deployers. The Regulation was amended in 2026, so decisions should use the consolidated July 27, 2026 text rather than relying on the original 2024 text alone. [12](https://eur-lex.europa.eu/eli/reg/2024/1689/2026-07-27/eng)

### The read-versus-action boundary

**Deliverable — Read versus action boundary**

Leadership should treat these as four different products:

<table header-row="true">
	<tr>
		<td>Stage</td>
		<td>Meaning</td>
		<td>Additional controls required before advancing</td>
	</tr>
	<tr>
		<td>**Read**</td>
		<td>Fetch/analyze information</td>
		<td>Data authorization, source trace, freshness, query/tool audit</td>
	</tr>
	<tr>
		<td>**Recommend**</td>
		<td>Interpret data and advise a person</td>
		<td>Evidence, assumptions, uncertainty/ambiguity handling, human judgment</td>
	</tr>
	<tr>
		<td>**Propose action**</td>
		<td>Form a concrete change but do not execute it</td>
		<td>Policy validation, target/delta preview, dry run, approver context</td>
	</tr>
	<tr>
		<td>**Execute action**</td>
		<td>Change business state</td>
		<td>Action authorization, constrained transactional tool, approval/policy gate, idempotency, limits, recovery/compensation, kill switch, complete audit</td>
	</tr>

</table>

The jump from read to execute is **not an incremental version of conversational analytics**. It changes the loss function.

For execution, the agent should normally receive a specific capability such as:

`issue_refund(customer, transaction, amount &lt;= authorized_limit)`

rather than:

`run arbitrary SQL UPDATE`

That makes resource, action and scope explicit and aligns with IETF guidance to restrict delegated access by resource and action. [13](https://www.rfc-editor.org/rfc/rfc9700.html)

Before autonomous execution, leadership should demand answers to five operational questions:

**Authorization:** Who—not merely which model—is authorized to cause this exact change?

**Approval:** Which actions need a second human or deterministic policy decision?

**Auditability:** Can the organization reconstruct identity, evidence, model/tool request, policy decision and resulting state?

**Recovery:** Is the operation reversible, compensatable or safely retryable?

**Blast radius:** What caps the number/value/scope/rate of changes when the agent is wrong?

NIST's AI RMF and Generative AI Profile emphasize lifecycle risk management and evaluation rather than treating deployment as an endpoint; NIST's current metrology resources likewise frame field pilots, post-deployment feedback and continuous testing as part of trustworthy AI operation. [14](https://www.nist.gov/publications/artificial-intelligence-risk-management-framework-generative-artificial-intelligence)

## Operating model, portability and lifecycle economics

### Organizational ownership

**Deliverable — Ownership / operating model**

Most responsibilities are extensions of existing roles. Two responsibilities become materially more prominent: **agent/tool evaluation** and **AI-interface reliability**.

<table header-row="true">
	<tr>
		<td>Asset/control</td>
		<td>Accountable owner</td>
		<td>Key collaborators</td>
	</tr>
	<tr>
		<td>Business metric definition</td>
		<td>Business/domain owner</td>
		<td>Analytics/data</td>
	</tr>
	<tr>
		<td>Curated domain data product</td>
		<td>Data/domain product owner</td>
		<td>Data engineering</td>
	</tr>
	<tr>
		<td>Data quality/freshness</td>
		<td>Data-product owner</td>
		<td>Producer teams/platform</td>
	</tr>
	<tr>
		<td>Metadata/lineage infrastructure</td>
		<td>Data platform</td>
		<td>Domain owners</td>
	</tr>
	<tr>
		<td>AI-facing descriptions/examples</td>
		<td>Domain analytics/data product team</td>
		<td>AI team</td>
	</tr>
	<tr>
		<td>Authorization primitives</td>
		<td>Security/IAM</td>
		<td>Data platform</td>
	</tr>
	<tr>
		<td>Data access policies</td>
		<td>Business/data owner + security/privacy</td>
		<td>Platform</td>
	</tr>
	<tr>
		<td>Agent tools/APIs</td>
		<td>Application/AI engineering</td>
		<td>Domain system owners</td>
	</tr>
	<tr>
		<td>Golden evaluation cases</td>
		<td>Domain expert + AI/data team</td>
		<td>Business users</td>
	</tr>
	<tr>
		<td>Agent regression/monitoring</td>
		<td>AI/application team</td>
		<td>Data platform</td>
	</tr>
	<tr>
		<td>Privacy/regulatory constraints</td>
		<td>Privacy/legal/risk</td>
		<td>Security/data/business</td>
	</tr>
	<tr>
		<td>Incident response</td>
		<td>Existing operational owner, extended to AI</td>
		<td>AI + data + security</td>
	</tr>

</table>

The bad operating model is to appoint an “AI data owner” who somehow becomes responsible for definitions that the actual business domain refuses to own. AI does not resolve organizational ambiguity; it can automate its consequences.

A useful separation is:

- **Domain owns meaning.**

- **Data platform owns reliable representation and common infrastructure.**

- **Security owns enforceable authorization mechanisms.**

- **AI/application team owns agent behavior, tool selection and evaluations.**

- **Operational system owner owns write-side invariants.**

OpenAI's case reinforces the cross-functional nature of this problem: its agent consumes human annotations, platform metadata, code, institutional knowledge and permissions rather than creating a parallel authoritative definition system solely inside the model. [3](https://openai.com/index/inside-our-in-house-data-agent/)

### Lock-in and portability

**Deliverable — Lock-in and portability**

Not all “agent-ready” investment has equal portability.

<table header-row="true">
	<tr>
		<td>Asset</td>
		<td>Portability</td>
		<td>Reason</td>
	</tr>
	<tr>
		<td>Business definitions in plain specification/code</td>
		<td>**High**</td>
		<td>Meaning can be re-expressed across systems</td>
	</tr>
	<tr>
		<td>SQL transformations/views</td>
		<td>High–medium</td>
		<td>Widely understood, but dialect/platform behavior varies</td>
	</tr>
	<tr>
		<td>Golden questions + expected results</td>
		<td>**High**</td>
		<td>Can evaluate replacement models/platforms</td>
	</tr>
	<tr>
		<td>Data-quality rules</td>
		<td>Medium–high</td>
		<td>Logic portable; syntax/integration may not be</td>
	</tr>
	<tr>
		<td>OAuth identity/delegation model</td>
		<td>**High**</td>
		<td>IETF-standardized authorization framework. [8](https://www.rfc-editor.org/info/rfc6749/)</td>
	</tr>
	<tr>
		<td>MCP tool boundary</td>
		<td>Medium–high</td>
		<td>Open protocol reduces agent-framework coupling, but protocol compatibility/versioning still exists. [15](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)</td>
	</tr>
	<tr>
		<td>Vendor-specific semantic DSL</td>
		<td>Medium–low</td>
		<td>Business logic is recoverable but representation/runtime is proprietary</td>
	</tr>
	<tr>
		<td>Vendor catalog IDs/tags/lineage conventions</td>
		<td>Medium–low</td>
		<td>Migration requires remapping</td>
	</tr>
	<tr>
		<td>Vendor-specific trusted-query/memory constructs</td>
		<td>Low–medium</td>
		<td>Closely tied to runtime implementation</td>
	</tr>
	<tr>
		<td>Raw prompts describing business rules</td>
		<td>**Low**</td>
		<td>Hard to test, govern and migrate reliably</td>
	</tr>

</table>

The most important portability move is therefore architectural rather than contractual:

> **Keep canonical meaning and authorization policy upstream of the agent-specific adapter.**

For example, “net revenue excludes refunds after settlement and uses invoice date” should not exist **only** in a proprietary agent prompt or vendor memory store. The vendor adapter may translate that rule into its semantic representation, but the company should retain an authoritative, testable version elsewhere.

MCP deserves similar restraint. It is useful because it standardizes how AI clients discover/use external tools and context, but it is not a portable enterprise semantic layer and it does not automatically make authorization portable. Those are separate problems. [10](https://modelcontextprotocol.io/specification/draft)

### Lifecycle cost

**Deliverable — Lifecycle cost**

The correct economic comparison is not:

> AI platform license versus no AI platform license.

It is:

> **Incremental lifetime cost of the controls required for the target use case versus measured lifetime value of enabling that use case.**

A lifecycle cost model should include:

<table header-row="true">
	<tr>
		<td>Cost bucket</td>
		<td>Typical driver</td>
	</tr>
	<tr>
		<td>Platform/software</td>
		<td>Catalog, semantic, agent, observability or API products</td>
	</tr>
	<tr>
		<td>Engineering</td>
		<td>Integration, context retrieval, policy enforcement, tooling</td>
	</tr>
	<tr>
		<td>Semantic modeling</td>
		<td>Number of governed entities/metrics/relationships and rate of change</td>
	</tr>
	<tr>
		<td>Metadata maintenance</td>
		<td>Number of exposed assets × change frequency × required human curation</td>
	</tr>
	<tr>
		<td>Catalog maintenance</td>
		<td>Scanning, ownership, lineage mapping, taxonomy/classification</td>
	</tr>
	<tr>
		<td>Data quality</td>
		<td>Tests, monitors, triage and defect remediation</td>
	</tr>
	<tr>
		<td>IAM</td>
		<td>Identity propagation, role/policy engineering, access reviews</td>
	</tr>
	<tr>
		<td>API/tool layer</td>
		<td>Tool contracts, validation, versioning, transactional safety</td>
	</tr>
	<tr>
		<td>Evaluation</td>
		<td>Golden-set creation, adjudication, repeated model/query execution</td>
	</tr>
	<tr>
		<td>Monitoring</td>
		<td>Logs, anomaly detection, security, latency/cost tracking</td>
	</tr>
	<tr>
		<td>Support</td>
		<td>User questions, bad-answer triage, domain-owner time</td>
	</tr>
	<tr>
		<td>Compute/model usage</td>
		<td>LLM/tool calls, warehouse scans, retries and evaluations</td>
	</tr>

</table>

Evaluation is a real recurring workload, not free hygiene. Snowflake's current documentation notes that semantic evaluation incurs warehouse execution, judge-inference and storage costs and that nondeterministic SQL generation makes repeated runs useful for interpreting score variation. [4](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst-evaluations)

The semantic-maintenance cost is likewise easy to underestimate. A definition is an operational dependency once an AI answer relies on it: changes to business rules, product taxonomy, account hierarchy or fiscal logic must make their way into both data and agent context.

Leadership should require unit economics such as:

**Cost per successful trusted task**

[
\\frac{\\text{platform + compute + engineering + curation + evaluation + support}}{\\text{correct useful AI-mediated tasks}}
]

**Maintenance intensity**

[
\\frac{\\text{human hours spent maintaining semantics/metadata/evals}}{\\text{active domain or governed metrics}}
]

**Avoided labor**

[
(\\text{baseline analyst/user minutes} - \\text{AI-assisted minutes}) \\times \\text{successful task volume}
]

**Expected risk reduction**

[
(\\text{baseline defect/exposure probability} - \\text{controlled probability}) \\times \\text{loss exposure}
]

None of these should be assigned a universal multiplier. Measure them in the pilot.

## Observable readiness and bounded experimentation

### Readiness without a readiness score

**Deliverable — Observable readiness questions**

Do not average these into “73% AI-ready.” A security failure and a missing column description are not commensurable.

**Data and semantics**

- Can we name the authoritative data assets for this use case?

- Is their grain known?

- Are critical join relationships known?

- Are the key metrics and dimensions defined?

- Are materially different definitions surfaced rather than silently collapsed?

- Are exceptions and exclusion rules explicit?

- Can the agent determine the relevant time zone, business calendar and time window?

- Is current freshness visible?

- Can the system recognize a failed or degraded data source?

**Permissions**

- Is authorization deterministic outside the model?

- Can the agent obtain no more data than its human/workload subject is entitled to?

- For customer/multi-tenant data, can another tenant's data be structurally excluded?

- Is the actor and represented user/workload separately auditable?

- Can privileges be revoked without changing prompts or redeploying a model?

- Are tokens/credentials constrained by resource and action where technically feasible? Current OAuth security guidance recommends minimum necessary privilege and audience/resource restrictions. [13](https://www.rfc-editor.org/rfc/rfc9700.html)

**Correctness and behavior**

- Can a correct answer be traced to the executed query/tool result?

- Does the agent clarify materially ambiguous questions?

- Does it abstain or redirect unsupported questions?

- Can it identify when the requested concept has no governed definition?

- Does it distinguish “no rows” from “no access”?

- Are known questions represented as regression cases?

- Are generated results tested against known outcomes rather than only checking SQL syntax?

- Are tests repeated enough to expose nondeterministic regressions? Snowflake and OpenAI both use curated expected queries/results as regression evidence. [4](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst-evaluations)

**Operations**

- Is there an owner for each exposed data product?

- Is there an owner for each critical business definition?

- Can a user report a bad answer and can the organization triage whether it was a data, semantic, access or agent failure?

- Are model/tool/version changes evaluated before broad deployment?

- Is query/model cost attributable to a use case?

- Is there an incident path for inappropriate disclosure?

**Actions, where relevant**

- Is every write action exposed through an explicitly authorized operation?

- Can the system preview the exact state change?

- Is the operation idempotent or safely retryable?

- Is recovery/compensation defined?

- Is there a hard limit on value, count, scope or rate?

- Can action capability be disabled immediately?

### Bounded pilot design

**Deliverable — Pilot design**

A good first experiment is **one domain, one AI consumer, read-only**.

**Example:** internal sales conversational analytics.

**Scope**

Use the existing warehouse/lakehouse. Expose only a curated sales role/data product comprising the small set of customer/account/opportunity/order facts needed for the experiment. Add explicit definitions only for the metrics the pilot asks about. Do not build enterprise ontology, replace the catalog or remodel unrelated domains.

**Consumer**

A defined internal sales/revenue-operations user group asking natural-language analytical questions.

**Interface**

Read-only queries through the existing warehouse, curated role/views or existing semantic interface. Preserve user identity where feasible. Log source selection, generated SQL/tool calls, results and answer.

**Suggested evaluation corpus**

This is a proposed test design, not an industry standard:

<table header-row="true">
	<tr>
		<td>Test family</td>
		<td>Example</td>
	</tr>
	<tr>
		<td>Known questions</td>
		<td>“What was EMEA new ARR last quarter?”</td>
	</tr>
	<tr>
		<td>Multi-step questions</td>
		<td>“Which segments drove the change, and which accounts explain most of it?”</td>
	</tr>
	<tr>
		<td>Ambiguous questions</td>
		<td>“How is revenue doing?”</td>
	</tr>
	<tr>
		<td>Conflicting definitions</td>
		<td>“Customers” where account/customer/company have different meanings</td>
	</tr>
	<tr>
		<td>Invalid questions</td>
		<td>Request a metric the domain does not contain</td>
	</tr>
	<tr>
		<td>Join traps</td>
		<td>Fact-to-fact or historical dimension edge case</td>
	</tr>
	<tr>
		<td>Stale data</td>
		<td>Sales snapshot deliberately delayed</td>
	</tr>
	<tr>
		<td>Pipeline degradation</td>
		<td>Critical source marked failed</td>
	</tr>
	<tr>
		<td>Permission denial</td>
		<td>User asks for restricted compensation/customer-level field</td>
	</tr>
	<tr>
		<td>Revoked permission</td>
		<td>Access removed after previous successful use</td>
	</tr>
	<tr>
		<td>Changed definition</td>
		<td>Modify an approved KPI rule and test propagation</td>
	</tr>
	<tr>
		<td>Prompt attack</td>
		<td>Ask the agent to ignore access policy or reveal hidden schema</td>
	</tr>
	<tr>
		<td>Empty result</td>
		<td>Distinguish genuine zero from an error/access denial</td>
	</tr>

</table>

PAR's system explicitly clarifies ambiguous/unsupported metrics before SQL generation; Snowflake and OpenAI both maintain curated question/expected-result evaluations. These production/provider patterns strongly support including ambiguity and regression cases rather than evaluating only happy-path SQL generation. [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)

**Pilot outcome measures**

Do not lead with “users liked it.” Track:

- **result correctness** against trusted outputs;

- **clarification accuracy** for ambiguous questions;

- **appropriate refusal/abstention** for unsupported questions;

- **authorization test pass rate**, with any unauthorized disclosure treated as a release-blocking incident;

- **stale/degraded-data recognition**;

- **traceability completeness**;

- **human task-completion time**, measured against the actual current workflow;

- **number of analyst escalations avoided versus generated**;

- **warehouse/model cost per successful task**;

- **maintenance hours** spent adding definitions, examples and corrections;

- **failure attribution**: data, semantic, metadata, access, model reasoning, tool, or UX.

The most valuable pilot artifact is not the chatbot. It is the **failure distribution**.

If 60% of wrong answers come from five undefined metrics, invest in semantics.<br>
If they come from stale source tables, invest in quality/freshness.<br>
If they come from schema search across 10,000 irrelevant objects, improve metadata/retrieval or reduce scope.<br>
If permissions cannot be represented safely, redesign access.<br>
If users mostly ask ten fixed questions, stop engineering a general AI analyst.

### Scale, redesign and stop conditions

**Deliverable — Scale / redesign / stop conditions**

**Scale the current design when:**

- a bounded user group repeatedly completes valuable tasks;

- known-question correctness is stable enough for the consequence of the use case;

- ambiguity is handled through clarification/abstention rather than silent invention;

- authorization tests show deterministic boundary enforcement;

- new questions mostly require adding ordinary domain knowledge, not architectural exceptions;

- maintenance/support cost stays below measured user/business value;

- a second domain can adopt the pattern primarily through configuration and domain modeling rather than a bespoke rewrite.

**Invest further in semantics when:**

- the same metric/join/business-definition failures recur across users and AI tools;

- corrections are duplicated in prompts, dashboards and agents;

- domain owners repeatedly adjudicate definitions at query time;

- verified questions demonstrate that explicit semantic modeling fixes a substantial share of failures.

**Invest further in metadata/catalog when:**

- the system frequently selects the wrong existing asset;

- users/agents cannot distinguish similarly shaped datasets;

- failures are attributable to unknown grain, lineage, ownership or freshness;

- discovery cost dominates analytical reasoning.

**Redesign upstream/core data products when:**

- contradictions exist before the AI layer;

- identifiers/grain/relationships are structurally unreliable;

- freshness and data quality cannot be monitored at source;

- authorization cannot be enforced without reproducing data into ad hoc AI silos;

- multiple non-AI consumers exhibit the same failures.

**Redesign the access architecture when:**

- customer/tenant boundaries rely on model obedience;

- agent credentials are broader than user/workload purpose;

- audit cannot reconstruct who accessed what;

- a customer-facing agent exposes raw warehouse discoverability that has no product reason to exist.

**Stop—or replace AI with conventional software—when:**

- users mostly ask a small stable set of questions;

- a dashboard, search interface or parameterized query gives faster and more trustworthy results;

- task frequency is too low to pay for semantic/evaluation/support overhead;

- the agent creates as many analyst escalations as it removes;

- the business cannot specify what a correct answer means;

- write-side recovery or blast-radius controls cannot be made proportionate to the value of autonomous execution.

## Executive diligence questions and decision reversals

### Questions a CTO or Head of Data should answer before material investment

**Deliverable — Questions a CTO / Head of Data should answer**

**The business decision**

- What user task becomes materially better if AI consumes company data directly?

- What is the current cost/time/error rate of that task?

- Is the desired capability retrieval, analytics, recommendation, or execution?

- What is the consequence of a wrong answer, unauthorized answer or stale answer?

- What evidence would cause us to decide that ordinary BI/search/software is better?

**Scope**

- Which domain is actually required?

- How many datasets and metrics account for most expected usage?

- Do users need arbitrary SQL flexibility or a bounded set of business operations?

- Is this internal, employee-facing, customer-facing or multi-tenant?

- Does the system need individual row-level data, or would aggregates suffice?

**Existing platform**

- Which failure modes already affect human analysts?

- Are the authoritative sources actually known?

- Are important joins, grain and exclusions encoded anywhere other than people's heads?

- Can the existing warehouse/lakehouse expose a safe curated role or view?

- Can current IAM be propagated into the AI request deterministically?

- Can we obtain freshness/health state without building a new catalog?

**Semantic investment**

- Which specific questions fail today because a metric or relationship is ambiguous?

- Would governed SQL/views or a small metric definition set solve those failures before we buy/build a universal semantic layer?

- How frequently do definitions change, and who will maintain them?

- Is cross-domain entity reasoning actually required strongly enough to justify ontology/knowledge-graph maintenance?

**Security and governance**

- Is policy enforced outside the model?

- Can the agent be identified separately from the person/workload it represents?

- Can access be revoked immediately?

- Can we guarantee client/tenant isolation structurally?

- What data reaches the model provider or agent runtime?

- What logs exist for source access, generated query, tool calls and actions?

**Operations**

- Who decides that an AI answer is wrong?

- How do they determine whether the cause is data, semantics, permissions or model behavior?

- What regression set protects the important questions?

- How much domain-expert time per month will semantics and evaluation consume?

**Economics**

- What use-case value must be achieved for the incremental platform expense to pay back?

- What is cost per successful trusted task?

- Which proposed platform components remain useful even if this particular model or agent product is replaced?

- What is the cheapest reversible experiment that can falsify our assumptions?

**Actions**

- Why does the agent need write permission at all?

- Can recommendation/proposal capture most of the value?

- What exact operations would be exposed as tools?

- What is the largest possible erroneous transaction/batch/change?

- Can it be recovered?

- Who carries liability when the system acts correctly according to its tool permissions but the business outcome is wrong?

### Decision reversals

**Deliverable — Decision reversals: when the simpler conventional platform plus narrow AI interface wins**

These cases should actively reverse a proposal for broad “agent-ready” transformation.

<table header-row="true">
	<tr>
		<td>Situation</td>
		<td>Prefer</td>
		<td>Why</td>
	</tr>
	<tr>
		<td>Users ask twenty stable KPI questions</td>
		<td>Existing warehouse + governed queries/metric endpoint + thin NL interface</td>
		<td>General-purpose semantic discovery adds little value</td>
	</tr>
	<tr>
		<td>Strong curated marts already exist</td>
		<td>Read-only AI over those marts</td>
		<td>Do not recreate semantic logic simply because the consumer is an LLM</td>
	</tr>
	<tr>
		<td>Customer-facing multi-tenant analytics</td>
		<td>Domain API or isolated authorized views</td>
		<td>Control and tenant isolation dominate arbitrary flexibility; PAR's production design follows this principle. [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)</td>
	</tr>
	<tr>
		<td>High-risk financial/HR decision support</td>
		<td>Narrow data products + recommend/propose mode</td>
		<td>Preserves human decision boundary and limits data/action surface</td>
	</tr>
	<tr>
		<td>Sparse usage</td>
		<td>Manual analyst support or conventional BI</td>
		<td>Ongoing semantic/eval infrastructure may cost more than saved labor</td>
	</tr>
	<tr>
		<td>Data definitions are politically unresolved</td>
		<td>Fix ownership/definition first</td>
		<td>No semantic technology can determine which disputed business policy leadership intends</td>
	</tr>
	<tr>
		<td>Most failures are stale/broken pipelines</td>
		<td>Invest in core quality/freshness</td>
		<td>AI-facing metadata cannot make incorrect source data correct</td>
	</tr>
	<tr>
		<td>Data is reliable but discovery is poor</td>
		<td>Improve focused descriptions/retrieval</td>
		<td>Core warehouse redesign is unnecessary</td>
	</tr>
	<tr>
		<td>Definitions are stable but access is sensitive</td>
		<td>Curated roles/views + delegated identity</td>
		<td>IAM boundary has higher marginal value than semantic richness</td>
	</tr>
	<tr>
		<td>Agent only needs three business actions</td>
		<td>Typed domain tools</td>
		<td>A general warehouse interface increases unnecessary attack and error surface</td>
	</tr>
	<tr>
		<td>Existing BI already answers the job well</td>
		<td>Keep BI; add AI only for explanation/navigation if useful</td>
		<td>“Conversational” is not intrinsically higher value than a deterministic dashboard</td>
	</tr>
	<tr>
		<td>Organization cannot operate regression tests or investigate bad answers</td>
		<td>Delay broad exposure</td>
		<td>AI consumption creates a system whose behavior cannot otherwise be reliably governed; current production designs emphasize continuous evaluations. [4](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst-evaluations)</td>
	</tr>

</table>

The general reversal rule is:

> **Use the narrowest interface that preserves the business value. Expand flexibility only when users demonstrably need it.**

That principle is supported both by PAR's progression from unconstrained text-to-SQL toward constrained data sandboxes and by OpenAI's report that excessive tool overlap confused its internal agent, leading it to consolidate and restrict tools. [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)

## Primary-source evidence register

### Claim-to-primary-source table

**Deliverable — Claim-to-primary-source table**

<table header-row="true">
	<tr>
		<td>Decision-relevant claim</td>
		<td>Primary source</td>
		<td>Evidence class</td>
		<td>What it establishes</td>
		<td>Important limitation</td>
	</tr>
	<tr>
		<td>Real enterprise text-to-SQL is substantially harder than simplified benchmarks</td>
		<td>**Spider 2.0**, Lei et al. [2](https://arxiv.org/abs/2411.07763)</td>
		<td>Empirical benchmark</td>
		<td>Enterprise workflows require large-schema navigation, metadata/docs/code context and complex SQL</td>
		<td>Benchmark ≠ business production outcome</td>
	</tr>
	<tr>
		<td>A direct LLM→warehouse design can be analytically promising yet unacceptable for multi-tenant security</td>
		<td>**PAR Technology / AWS engineering report** [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)</td>
		<td>Production, self-reported</td>
		<td>PAR replaced its initial model-only access approach with deterministic layered controls</td>
		<td>Vendor-hosted case study, not independent audit</td>
	</tr>
	<tr>
		<td>Deterministic data boundaries can be placed outside the LLM</td>
		<td>PAR/AWS [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)</td>
		<td>Production architecture</td>
		<td>User identity creates a prefiltered sandbox before model-generated analytics</td>
		<td>Specific to PAR's architecture</td>
	</tr>
	<tr>
		<td>PAR reports &gt;50,000 production queries with zero cross-tenant exposure incidents</td>
		<td>PAR/AWS [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)</td>
		<td>Production metric, self-reported</td>
		<td>Evidence that constrained architecture can operate at meaningful volume</td>
		<td>“Zero incidents” is company-reported</td>
	</tr>
	<tr>
		<td>A data agent can be an interface layer over an existing platform/security model</td>
		<td>**OpenAI internal data-agent engineering report** [3](https://openai.com/index/inside-our-in-house-data-agent/)</td>
		<td>Production, self-reported</td>
		<td>Pass-through permissions and existing platform can be retained</td>
		<td>OpenAI's environment may not generalize</td>
	</tr>
	<tr>
		<td>Rich context used in production extends beyond schema descriptions</td>
		<td>OpenAI [3](https://openai.com/index/inside-our-in-house-data-agent/)</td>
		<td>Production design</td>
		<td>Lineage, query history, annotations, code, institutional knowledge, memory and runtime state are used</td>
		<td>Does not causally quantify each field's marginal effect</td>
	</tr>
	<tr>
		<td>AI analytical systems benefit from curated regression questions/results</td>
		<td>OpenAI [3](https://openai.com/index/inside-our-in-house-data-agent/)</td>
		<td>Production design</td>
		<td>Expected SQL/results are continuously tested</td>
		<td>No public external performance dataset</td>
	</tr>
	<tr>
		<td>Semantic views can be evaluated against verified natural-language/SQL pairs</td>
		<td>**Snowflake documentation** [4](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst-evaluations)</td>
		<td>Provider design</td>
		<td>Explicit ground truth and regression tracking are built into production tooling</td>
		<td>Product documentation, not neutral outcome evidence</td>
	</tr>
	<tr>
		<td>Natural-language→SQL generation remains nondeterministic under repeated evaluation</td>
		<td>Snowflake documentation [4](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst-evaluations)</td>
		<td>Provider design</td>
		<td>Same evaluation can generate different SQL; repeated tests are advised</td>
		<td>Product-specific implementation</td>
	</tr>
	<tr>
		<td>Complex analytical agents can remain read-only</td>
		<td>**Databricks Genie documentation** [6](https://docs.databricks.com/aws/en/genie-agents/concepts)</td>
		<td>Provider design</td>
		<td>Multi-step analytical reasoning does not require writes</td>
		<td>Does not prove read-only is sufficient for every use case</td>
	</tr>
	<tr>
		<td>Model prompts should not be treated as the authorization boundary</td>
		<td>PAR/AWS + NIST Zero Trust [1](https://aws.amazon.com/blogs/machine-learning/multi-tenant-llm-analytics-with-row-level-security-how-we-built-a-secure-agent-on-aws/)</td>
		<td>Production + normative</td>
		<td>Deterministic policy enforcement should surround model behavior</td>
		<td>Exact implementation remains organization-specific</td>
	</tr>
	<tr>
		<td>OAuth supports limited delegated access on behalf of a resource owner</td>
		<td>**RFC 6749** [8](https://www.rfc-editor.org/info/rfc6749/)</td>
		<td>Standards</td>
		<td>Standards-based delegated authorization model</td>
		<td>Application authorization logic still required</td>
	</tr>
	<tr>
		<td>Subject and delegated actor can be represented separately in token exchange</td>
		<td>**RFC 8693** [16](https://www.rfc-editor.org/rfc/rfc8693)</td>
		<td>Standards</td>
		<td>Technical basis for user/agent identity propagation</td>
		<td>Support varies by IAM stack</td>
	</tr>
	<tr>
		<td>Access tokens should be restricted to minimum necessary privilege/resources/actions</td>
		<td>**RFC 9700** [13](https://www.rfc-editor.org/rfc/rfc9700.html)</td>
		<td>Best Current Practice</td>
		<td>Supports purpose-limited agent credentials</td>
		<td>HTTP/OAuth scope; does not define enterprise data semantics</td>
	</tr>
	<tr>
		<td>MCP standardizes connections/tools but has explicit security and consent concerns</td>
		<td>**MCP specification** [10](https://modelcontextprotocol.io/specification/draft)</td>
		<td>Protocol specification</td>
		<td>Useful portable tool/interface boundary</td>
		<td>Does not standardize business semantics or solve IAM</td>
	</tr>
	<tr>
		<td>GDPR principles remain relevant to AI-mediated personal-data access</td>
		<td>**Regulation EU 2016/679** [11](https://eur-lex.europa.eu/eli/reg/2016/679/oj/eng)</td>
		<td>Law</td>
		<td>Purpose/minimization/security obligations remain attached to processing</td>
		<td>Applicability depends on processing context</td>
	</tr>
	<tr>
		<td>High-risk AI systems under EU law have logging/human-oversight/deployer obligations</td>
		<td>**Consolidated EU AI Act, July 27 2026** [12](https://eur-lex.europa.eu/eli/reg/2024/1689/2026-07-27/eng)</td>
		<td>Law</td>
		<td>Risk class matters for system governance</td>
		<td>Most ordinary analytics assistants are not automatically high-risk</td>
	</tr>
	<tr>
		<td>AI coding assistance can generate measurable productivity gains, but effects are task/context specific</td>
		<td>**Demirer et al., Management Science, 2026** [5](https://pubsonline.informs.org/doi/abs/10.1287/mnsc.2025.00535)</td>
		<td>Randomized field experiments</td>
		<td>4,867 developers; pooled 26.08% increase in completed tasks</td>
		<td>Adjacent software-engineering evidence, not agent-ready-data ROI</td>
	</tr>
	<tr>
		<td>AI risk should be evaluated throughout use/deployment, not only before launch</td>
		<td>**NIST AI RMF / GenAI Profile** [14](https://www.nist.gov/publications/artificial-intelligence-risk-management-framework-generative-artificial-intelligence)</td>
		<td>Normative</td>
		<td>Lifecycle evaluation and risk management are expected practices</td>
		<td>Voluntary framework, not performance evidence</td>
	</tr>

</table>

### Evidence-based decision synthesis

The evidence supports five relatively strong conclusions.

**First: do not turn data-platform modernization into a prerequisite for experimentation.** Production examples show that useful AI analytics can be layered on top of existing warehouses and security systems. [3](https://openai.com/index/inside-our-in-house-data-agent/)

**Second: do not equate that with “just give the LLM warehouse credentials.”** Real enterprise analytics requires context that humans currently supply implicitly, and sensitive access requires deterministic boundaries outside the model. [2](https://arxiv.org/abs/2411.07763)

**Third: semantic investment should follow observed semantic failure.** Governed metrics, semantic layers and curated products have a clear mechanism for improving repeated KPI and join interpretation, and current provider systems explicitly use such information. The evidence reviewed does not justify an enterprise ontology or universal semantic platform simply because agents exist. [4](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst-evaluations)

**Fourth: evaluation becomes part of the data interface.** When natural language and model reasoning sit between the user and SQL/tools, correctness is no longer characterized only by pipeline tests. Known business questions, ambiguity cases, access denial and regression behavior need to be tested at the agent level. [3](https://openai.com/index/inside-our-in-house-data-agent/)

**Fifth: the read/action boundary is more consequential than the model choice.** Analytical agents can remain read-only while performing sophisticated multi-step analysis; execution introduces authorization, recovery and blast-radius requirements that belong to operational systems and security architecture, not to prompt engineering. [6](https://docs.databricks.com/aws/en/genie-agents/concepts)

The resulting investment rule is intentionally conservative:

> **Fund the smallest set of improvements that makes one valuable AI consumer trustworthy in one domain. Instrument the failures. Then invest in the layer where those failures originate.**

That can legitimately result in a new semantic layer, stronger contracts, better metadata, an AI access service, or core-platform redesign. It can equally legitimately result in **none of them**—because a curated warehouse role, five governed metrics and a narrow read-only tool may be all the use case actually needs.