<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Data Report]]></title><description><![CDATA[Weekly market signals on modern data platform shifts.]]></description><link>https://datareport.republicofdata.io</link><image><url>https://substackcdn.com/image/fetch/$s_!7CwY!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b390d94-9a24-44d5-9841-02de90c8dfee_1024x1024.png</url><title>The Data Report</title><link>https://datareport.republicofdata.io</link></image><generator>Substack</generator><lastBuildDate>Mon, 20 Jul 2026 23:22:03 GMT</lastBuildDate><atom:link href="https://datareport.republicofdata.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Olivier Dupuis]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[roddatareport@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[roddatareport@substack.com]]></itunes:email><itunes:name><![CDATA[Olivier]]></itunes:name></itunes:owner><itunes:author><![CDATA[Olivier]]></itunes:author><googleplay:owner><![CDATA[roddatareport@substack.com]]></googleplay:owner><googleplay:email><![CDATA[roddatareport@substack.com]]></googleplay:email><googleplay:author><![CDATA[Olivier]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[When Your Analytics Agent Can Trace Why a Number Looks Wrong]]></title><description><![CDATA[The Data Report: Weekly market signals on modern data platform shifts | Week ending July 13, 2026]]></description><link>https://datareport.republicofdata.io/p/when-your-analytics-agent-can-trace</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/when-your-analytics-agent-can-trace</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 14 Jul 2026 11:15:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HFWO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HFWO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HFWO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!HFWO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!HFWO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!HFWO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HFWO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2001382,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/206890671?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HFWO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!HFWO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!HFWO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!HFWO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c8f772c-343e-42cb-9d6a-ec4cca793a41_1376x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p><strong>The 30-second version</strong></p><ul><li><p>A useful next job for an analytics agent is tracing why a number looks wrong through lineage and a read-only warehouse; the platform decision it forces is which systems become governed, read-only agent surfaces.</p></li><li><p>An agent-written pipeline that runs is weak evidence it&#8217;s right; MotherDuck&#8217;s tutorial puts correctness in an explicit data contract, realistic tests, and a publish gate.</p></li><li><p>In the Radar: regression-testing a chat-analytics agent before a model swap, QuickSight&#8217;s semantic-layer move, and the AI-versus-data-engineers debate.</p></li></ul></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>The Agent Reaches Below the Dashboard</strong></h2><p>You know the ticket. A number on a dashboard looks wrong, someone raises it, and answering &#8220;why&#8221; means a person opens dbt to read the lineage, checks the compiled SQL, queries the warehouse to see what the source data actually did, and reconciles all of it against the semantic model. That person is usually an engineer. It is almost never the work they had planned for the day, and the question that produced it, &#8220;why is this number wrong,&#8221; is the one an analytics chatbot has always been allowed to shrug at.</p><p>Integral Ad Science (IAS) built an architecture aimed at exactly that question. In <a href="https://www.getdbt.com/blog/mcp-dbt-databricks">dbt Labs&#8217; account of the design</a>, the IAS team connected their analytics agent to dbt, Databricks SQL, and Looker through dedicated Model Context Protocol (MCP) servers, the emerging standard that lets an agent discover and call a tool&#8217;s capabilities without a bespoke integration for each one. One server exposes dbt&#8217;s model metadata, lineage, and compiled SQL. One exposes Databricks SQL for governed, read-only checks under Unity Catalog. One exposes Looker, the dashboard on-ramp where the question starts. The post&#8217;s worked example is a hypothetical supermarket chain whose revenue report inflates the Food category because a popular drink got miscategorized: the exact trace a human runs today across LookML, dbt models, and validation queries. IAS offers one production reference architecture for tracing a suspect metric through lineage and read-only warehouse checks; the published example shows the mechanism, not an independently verified benchmark.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> The team&#8217;s own report is that investigations that used to take an analyst an afternoon now take minutes.</p><p>What&#8217;s new here isn&#8217;t &#8220;agents need a governed semantic layer.&#8221; That has been the advice all quarter, and it is about the agent <em>answering</em> correctly over a layer someone curated for it. This is the same plumbing pointed the other direction: the agent isn&#8217;t answering over the layer, it&#8217;s reaching <em>through</em> it to debug the pipeline underneath. Grounding gets you a correct answer. This gets you the reason a previous answer was wrong.</p><p>That reframes the decision you face as a platform owner, and it is wider than read versus write. Whose identity the agent acts under: IAS routes users through Google OAuth and an authorized group, and the MCP servers keep raw API credentials out of the agent&#8217;s hands. What each server exposes: the MCP server is the control point, and IAS turned on seven of the dbt server&#8217;s roughly 37 tools, not all of them. What gets logged: access is scoped and audited at the server boundary rather than inside the agent. And how failures and sensitive context are contained: every sub-agent adds a routing failure mode, and the agent&#8217;s business mode strips model names and compiled SQL before answering a non-technical user. IAS&#8217;s three-server design is one reference architecture worth testing.</p><blockquote><p><strong>Bottom line:</strong> The wrong-number question is exactly where analytics agents were supposed to stop and hand off to a human. IAS&#8217;s published design is one production case for not stopping there.</p></blockquote><div><hr></div><h2><strong>The Green Pipeline That Was Quietly Wrong</strong></h2><p>You&#8217;ve started letting an agent scaffold a pipeline or two. It runs, the rows land, nothing throws an error, and you ship it. Here&#8217;s the trap: &#8220;it runs&#8221; is the condition the agent is most likely to satisfy and the weakest evidence that the pipeline is correct. An execution check can&#8217;t catch a units or data-assumption error, and a code review can miss one when the units and the data contract live only in someone&#8217;s head.</p><p><a href="https://motherduck.com/blog/robust-data-pipelines-with-ai">MotherDuck&#8217;s tutorial on building robust pipelines with AI</a> makes the trap concrete. The author points Claude Code at public weather data from NOAA, the US government&#8217;s climate record, and the first green pipeline hardcodes its partitions, reads tenths-of-a-degree temperatures as whole degrees, and keeps rows the dataset&#8217;s own quality flags mark as bad. Each failure executes cleanly and quietly corrupts the output. The reusable pattern is the workflow that follows: inspect the real data first, define the data contract explicitly, run realistic tests against fixture rows, then write, audit, and only then publish. Units, partitions, quality flags, deduplication, and idempotency all live inside that gate, not in a reviewer&#8217;s memory.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><p>None of it is exotic. It&#8217;s the checklist a careful engineer already runs, written down and pointed at the agent&#8217;s output, which is what makes it a gate the agent can&#8217;t satisfy by accident.</p><blockquote><p><strong>Bottom line:</strong> MotherDuck&#8217;s tutorial shows why a green run is weak evidence: correctness comes from an explicit data contract, realistic tests, and a publish gate.</p></blockquote><div><hr></div><h2><strong>The Radar</strong></h2><p>&#128202; <strong>If you ship a chat-analytics agent.</strong> Once your agent answers business questions, the missing piece is a pre-deploy gate, and <a href="https://omni.co/blog/run-your-agent-like-a-data-product-with-ai-evals">Omni&#8217;s AI Evals</a> is one shape of it: replay a fixed question set against the semantic model, with a judge scoring whether the agent picked the right topic, fields, and filters. The question it forces is whether your natural-language surface has any regression test before you swap the model under it.</p><p>&#129513; <strong>If you&#8217;re deciding where your semantic layer lives.</strong> <a href="https://aws.amazon.com/blogs/machine-learning/build-a-unified-semantic-layer-across-datasets-with-multi-dataset-topics-in-amazon-quick/">Amazon QuickSight&#8217;s multi-dataset Topics</a>, now in public preview, let one governed Topic span up to 12 related datasets with auto-generated joins, potentially pulling more semantic work into the BI layer, the dashboard tool itself, rather than the warehouse. It&#8217;s an AWS-specific preview, not a settled market direction, and you can&#8217;t mix SPICE, its in-memory cache, with live Direct Query inside one Topic.</p><p>&#129504; <strong>If you&#8217;re rethinking the data-engineer role.</strong> The recurring &#8220;is AI replacing data engineers&#8221; question gets a practitioner answer in <a href="https://joereis.substack.com/p/is-ai-replacing-data-engineers-a">Kirill Bobrov&#8217;s conversation with Joe Reis</a>: coding throughput changes; accountability does not. Useful framing to pressure-test how your team adopts AI without quietly outsourcing the judgment.</p><div><hr></div><p><em>Where would you draw the read-only boundary for an analytics agent investigating a wrong number? Reply and tell me where the line sits.</em></p><p><em>Published by <a href="https://republicofdata.io/">RepublicOfData.io</a>. Curated by Olivier Dupuis.</em></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Single source, vendor-authored: a dbt Labs blog post recounting one customer&#8217;s architecture (Integral Ad Science). What transfers is the shape: dedicated read-only MCP servers per system, with access scoped and audited at the server boundary. Treat it as a reference design to test on your own stack, not a corroborated standard.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Single source, vendor-authored: MotherDuck&#8217;s own worked example on its own stack. What transfers is the operating pattern: inspect the data, define the contract, test realistically, gate the publish. Treat it as a worked example, not a corroborated standard.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[You Can't Regression-Test a Language Model]]></title><description><![CDATA[The Data Report: Weekly market signals on modern data platform shifts | Week ending July 6, 2026]]></description><link>https://datareport.republicofdata.io/p/you-cant-regression-test-a-language</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/you-cant-regression-test-a-language</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 07 Jul 2026 11:15:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jcb_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jcb_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jcb_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!jcb_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!jcb_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!jcb_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jcb_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2111837,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/205603960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jcb_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!jcb_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!jcb_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!jcb_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F379c0765-6f8d-4013-82e6-bc242f8d800e_1376x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>The 30-second version</strong></p><blockquote><ul><li><p>The month&#8217;s advice was &#8220;ground your analyst agent better.&#8221; One team&#8217;s answer this week: stop grounding, take the model off the decision path, and let deterministic rules make the calls the model just narrates. That&#8217;s what makes a recommendation reproducible enough to regression-test.</p></li><li><p>dltHub put a number on the build-vs-buy connector question: about $5 to scaffold, about $100 a year to keep alive. If it holds, the maintenance premium you&#8217;ve been buying your way out of mostly evaporated. They sell the alternative, so price it against your own bill.</p></li><li><p>In the Radar: capping agent query load at the database, the where-do-your-metrics-live question, plain Markdown over vector search, and an AI-written release that caught its own data-loss bug.</p></li></ul></blockquote><div><hr></div><h2>The Analyst Agent That Isn&#8217;t Allowed to Decide</h2><p>You did what the last two months of advice told you to do. You grounded your analyst agent: certified models underneath, a semantic layer in front, the language model pointed at clean, governed inputs. And the answers still come back fluent, confident, and impossible to reproduce. Ask the same question twice and you can get two different recommendations, which means you can&#8217;t put the thing under a regression test, and the people relying on it can feel the ground move.</p><p>The team behind a build-log that surfaced this week hit that exact wall and decided the problem was the premise, not the tuning. They were building an agentic business-intelligence layer for ops triage, and their first design did the obvious thing: it put the language model in charge of the decision. What came back were recommendations that were often wrong, and worse, irreproducible, which broke both testing and user trust at once. So they rebuilt it inside out. Now deterministic, named rules make the calls, with thresholds, fixtures, full execution traces, and regression tests, and the model is demoted to the two things it&#8217;s actually good at: assembling context and writing the human-facing explanation. Roughly a 60/40 split, rules to model, <a href="https://dataconomy.com/2026/06/30/why-i-built-our-agentic-bi-around-a-rules-engine-not-a-language-model/">laid out in a post on Dataconomy</a>.</p><p>What makes this worth your attention isn&#8217;t the specific split. It&#8217;s that it rejects the premise the rest of the month has been operating on. Every other agentic-analytics story crossing the wire keeps the model on the decision path and tries to fence it in with better inputs: certified models, semantic-layer grounding, observability wrappers. This one says that for anything that has to be reproducible and testable, grounding is the wrong lever. You don&#8217;t make a guess auditable by handing it better source material. You replace the guess with a rule.</p><p>That reframes the design question you actually face when you scope one of these. It stops being &#8220;how do I constrain the model&#8221; and becomes &#8220;which decisions belong to rules at all, and which genuinely need judgment no rule can encode.&#8221; Draw that line deliberately and the reproducible half turns into code you can test and version like anything else, while the model only touches the parts where its irreproducibility is a price you&#8217;ve chosen on purpose. The honest caveat is that this is one team&#8217;s build-log with no independent voice behind it yet, so weigh it as an architecture to consider, not a proven pattern.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><blockquote><p><strong>Bottom line:</strong> The teams that drew the rules-versus-model line before shipping their analyst agent this week can hand you a regression test for every call it makes. The ones who grounded the model harder and hoped are still explaining why yesterday&#8217;s answer doesn&#8217;t reproduce today.</p></blockquote><div><hr></div><h2>A Connector Now Costs About $100 a Year</h2><p>Somewhere in your stack there&#8217;s a row-metered ingestion bill, Fivetran or Airbyte, and a renewal date coming. You&#8217;ve run the build-vs-buy math before, and it always came out the same way: connectors are cheap to build and expensive to maintain, so you buy. dltHub&#8217;s argument this week is that the second half of that sentence stopped being true, and it brought numbers.</p><p>In <a href="https://dlthub.com/blog/tco">a post aimed squarely at the buyer</a>, dltHub claims a language model can scaffold a working dlt connector in under two hours for about $5 in tokens, and that its open-source run telemetry, a 99.83% success rate and roughly 0.12% non-transient errors, works out to about two maintenance incidents in five years. Price that at engineer time and you land near $100 a year per connector. If the numbers hold, the line item you&#8217;ve been renewing specifically to avoid maintenance is guarding against a cost that mostly went away.</p><p>The interesting part isn&#8217;t the $100. It&#8217;s what moves once maintenance stops being the expensive half. Owning the connector code on compute-based billing takes the row-metered overage risk off the table, so a source tripling in volume doesn&#8217;t triple a bill, and it removes the lock-in, and it lets an analyst author and review a pipeline instead of filing a ticket and waiting. dltHub points to one migration that saw a 182x cost reduction and a 10x speed-up on a single high-volume sync after moving off a default connector, which is the kind of number you hold up against your own worst line item.</p><p>Here&#8217;s the part to keep hold of: these are dltHub&#8217;s own numbers, and dltHub sells the alternative.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> The telemetry is real but self-reported, and there&#8217;s no third-party cost comparison behind it yet. That doesn&#8217;t make the argument wrong. It makes it a claim you can check cheaply, because the whole point of a $5, two-hour experiment is that you don&#8217;t have to take the vendor&#8217;s word for the $100.</p><blockquote><p><strong>Bottom line:</strong> The teams that pulled one high-volume source&#8217;s overage bill this week and priced a self-owned connector against it walked into the renewal with an actual number. The ones renewing on last year&#8217;s build-vs-buy verdict are paying a maintenance premium that may no longer exist.</p></blockquote><div><hr></div><h2>The Radar</h2><p>&#128738;&#65039; <strong>If you run Postgres under agent load.</strong> <a href="https://planetscale.com/blog/introducing-database-traffic-control">PlanetScale&#8217;s Database Traffic Control</a> lets you cap CPU, connection concurrency, and per-query time by query fingerprint, app, or comment tag, so one runaway agent workload can&#8217;t starve your transactional path. If you&#8217;re pointing AI or agent traffic at the same Postgres that serves your app, this is the knob to evaluate before the contention shows up in production.</p><p>&#129513; <strong>If you&#8217;re deciding where your metrics live.</strong> Snowflake is pitching <a href="https://www.snowflake.com/en/webinars/demo/define-context-once-in-snowflake-consume-in-power-bi-2026-07-23/">define-once semantics in the warehouse, consumed in Power BI</a>, with a Semantic View Autopilot that auto-converts existing Power BI models so you stop maintaining metric logic in two places. Worth a look if you&#8217;re tired of reconciling definitions across tools, but confirm the portability story (an open interchange standard, still early) is real before you let the warehouse own the semantics outright.</p><p>&#128218; <strong>If you&#8217;re building agent access to internal knowledge.</strong> A widely-debated essay, <a href="https://www.formaly.io/blog/knowledge-should-not-be-gated">Knowledge Should Not Be Gated</a>, argues you should reach for plain, versioned Markdown before a vector database: keep raw sources immutable, let the model generate a wiki over them, and save retrieval-augmented search for corpora too big to read directly. The useful question it forces is whether your internal-knowledge stack actually needs embeddings, or picked them up by reflex.</p><p>&#128295; <strong>If you&#8217;re weighing AI in the maintenance loop.</strong> Simon Willison shipped <a href="https://simonwillison.net/2026/Jul/5/sqlite-utils-fable/">sqlite-utils 4.0rc2, mostly written by Claude Fable</a> for about $150, and the agent&#8217;s review caught a silent data-loss bug in <code>delete_where()</code> that a human pass had missed. Two takeaways: review the new auto-commit-per-write transaction model before you upgrade, and file the costed data point in the &#8220;can I trust agent review&#8221; debate (the thread itself stayed skeptical).</p><p>&#128666; <strong>If you&#8217;re migrating off Synapse.</strong> Microsoft shipped an <a href="https://community.fabric.microsoft.com/t5/Fabric-Updates-Blog/AI-assisted-Synapse-Spark-and-pipeline-migration-to-Microsoft/ba-p/5234478">AI-assisted command-line tool</a> that runs a read-only assessment of your Synapse Spark and pipeline workloads and surfaces migration blockers before you commit to a Fabric move. A clean Tuesday action if that migration is on your roadmap: run the assessment, read the blocker list, and decide with data instead of a vendor estimate.</p><div><hr></div><p><em>When you scoped your analyst or business-intelligence agent, which calls did you hand to deterministic rules and which did you leave to the model, and where has that line turned out to be in the wrong place? Reply and tell me where you drew it.</em></p><div class="poll-embed" data-attrs="{&quot;id&quot;:728785}" data-component-name="PollToDOM"></div><p></p><p><em>Published by <a href="https://republicofdata.io">RepublicOfData.io</a>. Curated by Olivier Dupuis.</em></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>The source is a single practitioner build-log (published on Dataconomy, surfaced via Google Alerts) with no community discussion and no independent team reporting the same architecture yet. Treat the 60/40 split and the &#8220;rules decide, model explains&#8221; design as one team&#8217;s considered decision, not a benchmarked or corroborated pattern. What travels regardless of the specifics is the reframe: decide which calls belong to deterministic rules before you decide how to ground the model.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>The cost figures (about $5 to scaffold, ~$100/year upkeep, the 99.83% success rate, the 182x/10x migration numbers) are dltHub&#8217;s own telemetry and case data, published on the dltHub blog, and dltHub sells the managed runners and patterns that are the alternative to buying a connector. There&#8217;s no third-party cost comparison behind the numbers yet. They&#8217;re a claim to test against your own bill, not a verified benchmark. The self-owned-connector experiment is cheap enough ($5, two hours) that you can generate your own number rather than adopt theirs.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Ask the Table Before You Optimize It]]></title><description><![CDATA[The Data Report: Weekly market signals on modern data platform shifts | Week ending June 29, 2026]]></description><link>https://datareport.republicofdata.io/p/ask-the-table-before-you-optimize</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/ask-the-table-before-you-optimize</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 30 Jun 2026 11:16:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uDAy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uDAy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uDAy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!uDAy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!uDAy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!uDAy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uDAy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2423767,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/204133570?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uDAy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!uDAy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!uDAy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!uDAy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c5568e7-7f95-42c4-8831-672fae4c558c_1376x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p><strong>The 30-second version</strong></p><ul><li><p>Fabric made &#8220;has this table actually drifted?&#8221; a single T-SQL call. Gate your compaction job on it and you stop paying to reorganize tables that never changed.</p></li><li><p>The credible way to let an agent build pipelines isn&#8217;t a sharper prompt. It&#8217;s writing your house standards down as skills the agent has to follow. dltHub&#8217;s Context Layer is the open version of that idea.</p></li><li><p>In the Radar: data-quality checks moving into the commit loop, the where-do-your-metrics-live question, and two more vendors putting agent workloads on plain Postgres.</p></li></ul></blockquote><h2><strong>This Week</strong></h2><p>Somewhere in your platform a job runs <code>OPTIMIZE</code> on every table every night, and most of those tables did not change since the last run. You are paying to reorganize data that was already fine, and the bill has no line item that admits it. This week Microsoft Fabric turned the thing you were missing into a single T-SQL call: ask a table whether it has actually drifted before you compact it. It&#8217;s a small release, but it converts a standing, invisible cost into a measured, conditional step, and it drops into the orchestration you already run.</p><p>A second signal, from a different corner of the stack, is worth the same kind of attention. Out in the ingestion layer, the question about agents and pipelines quietly stopped being whether an agent can build one. dltHub shipped a version where the entire selling point is the guardrails.</p><div><hr></div><h2><strong>You&#8217;re Compacting Tables That Didn&#8217;t Move</strong></h2><p><strong>Up front: blind nightly </strong><code>OPTIMIZE</code><strong> bills you for tables that never moved. Fabric just made &#8220;is this one actually drifting?&#8221; a single call you can gate the job on.</strong></p><p>You almost certainly compact your lakehouse tables on a schedule. Nightly, weekly, some cron you set up once and stopped thinking about. The schedule is honest about one thing and silent about another: it runs <code>OPTIMIZE</code> whether or not the table needed it, and the compute you spend rewriting a table that hasn&#8217;t changed since yesterday looks identical on the bill to the compute that actually earned its keep. You can&#8217;t see the waste because nothing measures it.</p><p>This week Microsoft Fabric closed that gap. <code>sp_get_table_health_metrics</code>, a read-only T-SQL stored procedure in the SQL analytics endpoint, <a href="https://community.fabric.microsoft.com/t5/Fabric-Updates-Blog/Know-before-you-optimize-Diagnose-Lakehouse-table-health-with-a/ba-p/5228076">reached general availability</a>. Point it at a table and it hands back anomaly flags and storage and layout metrics, the same drift signals you&#8217;d want before deciding whether maintenance is worth running. It&#8217;s plain T-SQL, which is the part that matters: it calls cleanly from Fabric Pipelines, Azure Data Factory, or dbt, so the check slots into the orchestration you already have rather than asking for new tooling.</p><p>The move it unlocks is the small, unglamorous one platform owners actually act on: check, then act. Instead of compacting every table on a blind schedule, you read the health metrics first and fire <code>OPTIMIZE</code> only on the tables flagged as drifted.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> The procedure is the news, but the pattern is the takeaway, and the pattern isn&#8217;t Fabric&#8217;s. Measure drift, then conditionally maintain, applies to any Delta or Spark lakehouse owner carrying a compaction bill. Fabric just made the measuring step a one-liner.</p><blockquote><p><strong>Bottom line:</strong> The teams that put a health check in front of their compaction job this week stopped paying to reorganize tables that hadn&#8217;t moved. The ones still on a blind nightly schedule are buying maintenance they have no way to see.</p></blockquote><div><hr></div><h2><strong>The New Pitch Is Guardrails, Not Autonomy</strong></h2><p><strong>Up front: the credible way to let an agent build pipelines isn&#8217;t a better prompt. It&#8217;s encoding your standards as skills it has to follow.</strong></p><p>If you lead a data team, the live question about agents and pipelines isn&#8217;t the one the demos answer. You&#8217;ve seen an agent write a pipeline. What you actually want to know is what stops it from writing one that ignores your medallion layers, picks the wrong grain, names everything its own way, and routes around your governance. The interesting design problem was never the agent&#8217;s autonomy. It&#8217;s the leash.</p><p>dltHub&#8217;s <a href="https://dlthub.com/blog/context">Context Layer</a> is built around that premise, and it&#8217;s worth noticing because dlt is a widely-used open-source ingestion library, not a closed demo. Instead of free-form prompting, it compiles a high-level ask into a fixed, guardrailed skill chain: find the source, create the pipeline, debug it, validate it, view the result. Persistent context (your schemas, code, deployments, and logs) sits underneath so the agent works against what your pipelines actually look like, not a blank prompt. The agent is scoped to that chain. It&#8217;s a junior engineer following a runbook, not a free author.</p><p>The genuinely new part is not that an agent can build a pipeline. It&#8217;s where the design effort has moved. A year ago the argument was whether agents could author pipeline code at all; this week two independent teams shipped the same answer to the question that replaced it, which is how you fence the agent in. The transferable idea survives even if you never touch dlt: your repeatable standards (medallion patterns, grain, naming, governance) belong in runtime-loaded skills the agent must follow, not buried in a long prompt it can quietly drift away from.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><blockquote><p><strong>Bottom line:</strong> The teams shipping agent-built pipelines this week aren&#8217;t the ones with the cleverest prompt. They&#8217;re the ones who wrote their house rules down as skills the agent can&#8217;t skip.</p></blockquote><div><hr></div><h2><strong>The Radar</strong></h2><p>&#129302; <strong>If you&#8217;re letting agents build pipelines.</strong> A second shop landed on the same shape as the dltHub story above: <a href="https://www.databricks.com/blog/how-daikin-applied-americas-builds-consistent-data-pipelines-scale-genie-code">Daikin Applied built its pipelines with Databricks Genie Code</a> by loading its house standards as runtime skills and treating the model as a scoped junior engineer. The productivity numbers are vendor-reported, so weigh them as such. The signal is that two independent teams reached for guardrails over autonomy in the same week.</p><p>&#128269; <strong>If you care about observability.</strong> <a href="https://montecarlo.ai/blog-data-trust-used-to-come-after-the-fact-with-claude-it-ships-with-your-code">Monte Carlo moved data-quality checks into the editor and commit loop</a>: downstream blast radius before an edit, monitors generated as code after, coverage gaps flagged before a merge. The question is worth sitting with before agents are writing your pipeline code at volume. Does reliability belong in the commit, not the post-mortem?</p><p>&#129513; <strong>If you&#8217;re deciding where your metrics live.</strong> Two items circle the same call. A trade-press argument for building the <a href="https://www.techtarget.com/searchenterpriseai/tip/Advantages-of-a-semantic-layer-for-enterprise-AI">AI semantic layer as a standalone metadata service</a> rather than a feature inside your business-intelligence (BI) tool, and Salesforce exposing <a href="https://www.salesforce.com/events/webinars/tableau-knowledge-trusted-conversational-analytics/">governed Tableau metrics to any agent through Headless Analytics</a> over the Model Context Protocol (MCP), the emerging standard for wiring agents to data and tools. Keep your definitions portable before a BI vendor&#8217;s agent owns them.</p><p>&#128274; <strong>If you&#8217;re about to switch on Copilots.</strong> <a href="https://community.fabric.microsoft.com/t5/Fabric-Updates-Blog/Use-built-in-Fabric-data-protection-to-get-your-data-AI-ready/ba-p/5237428">Microsoft&#8217;s case for Fabric data protection</a> is the unglamorous prerequisite nobody wants to do first: classify the data, set least-privilege access, and check what your catalog is oversharing before an agent can read across all of it at once. The advice is familiar. The reason to act now is that agents compound whatever oversharing you already have.</p><p>&#129414; <strong>If you&#8217;re watching the substrate.</strong> Two more vendors put agent workloads on plain Postgres this week. <a href="https://dlthub.com/blog/cognee-1-0">cognee 1.0</a> collapses the separate vector and graph stores for agent memory onto a single Postgres, and <a href="https://www.databricks.com/blog/what-is-serverless-postgres">Databricks made its case for serverless Postgres</a> on the lakehouse. If you&#8217;re about to stand up a separate vector or graph store, the question worth asking first is whether it still earns its place.</p><div><hr></div><p><em>How do you decide when to run </em><code>OPTIMIZE</code><em> today: a fixed nightly schedule, a file-count heuristic, or have you wired table-health metrics into the trigger? Reply and tell me what&#8217;s pulling the lever.</em></p><p><em>Published by <a href="https://republicofdata.io/">RepublicOfData.io</a>. Curated by Olivier Dupuis.</em></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p><span>The SQL analytics endpoint is read-only, so the procedure diagnoses but does not act. When a table is flagged, you still fire </span><code>OPTIMIZE</code><span> from a notebook or job. It&#8217;s a small general-availability release with no community discussion behind it yet, so treat it as a sharp tool rather than a proven cost program. The value is the measured-then-conditional pattern, which generalizes past Fabric.</span></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>This is one vendor&#8217;s blog with no independent benchmark or community discussion behind it, so weigh the workflow as a direction, not a proof. The corroboration that the guardrail shape is hardening comes from a separate shop (Daikin, in the Radar) reporting the same pattern, with its own vendor-reported numbers. Two vendor-authored data points are a trend worth watching, not a settled result.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Your AI Analytics Problem Isn’t the Model]]></title><description><![CDATA[The Data Report: Weekly market signals on modern data platform shifts | Week ending June 22, 2026]]></description><link>https://datareport.republicofdata.io/p/your-ai-analytics-problem-isnt-the</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/your-ai-analytics-problem-isnt-the</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 23 Jun 2026 11:15:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YBUI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YBUI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YBUI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!YBUI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!YBUI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!YBUI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YBUI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2434438,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/203167328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YBUI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!YBUI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!YBUI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!YBUI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ffce9d-88e5-4a00-bbe7-a7c79a602c24_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>The 30-second version</strong></p><ul><li><p>The same Claude went from 21% to 95% accuracy with <em>no model change</em>. The difference was a governed semantic layer and encoded skills. Your AI accuracy problem is a meaning problem.</p></li><li><p>Nasdaq&#8217;s agent-governance rule: automate the deterministic work, gate the judgment calls. The win isn&#8217;t fewer errors, it&#8217;s catching the silent ones.</p></li><li><p>In the Radar: DuckDB&#8217;s pitch to be the engine agents actually need, a benchmark that catches training-data cheating, and a shift in how agents get access.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>This Week</strong></h2><p>When an AI tool returns a wrong number, the reflex is to blame the model and wait for the next one. Anthropic spent this week quietly dismantling that reflex: the same Claude went from 21% to 95% accuracy with no model change at <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. The whole gap was the governed semantic layer, the encoded skills, and the validation they wrapped around it.</p><p>That sharpens the question every platform owner is already sitting with: what has to be true before you let an agent near the warehouse? Two answers landed this week, one on accuracy and one on governance, plus a provocation in the Radar about whether the warehouse is even the right engine for agents at all.</p><div><hr></div><h2><strong>The Same Model Went From 21% to 95%</strong></h2><p><strong>Up front: swapping models won&#8217;t fix a wrong number. Writing down what your data means will.</strong></p><p>The first time an agent hands back a wrong figure, the instinct is to blame the model. This week Anthropic put a price on that instinct. In <a href="https://claude.com/blog/how-anthropic-enables-self-service-data-analytics-with-claude">its own writeup</a>, the same Claude scored about 21% on their internal analytics questions when it queried the warehouse raw. After they made a governed semantic layer mandatory, encoded their repeatable analyses as skills, and added evaluation and monitoring, it reached about 95%, and closer to 99% in some domains.</p><p>Hold the model constant and the lift has nowhere to hide. It isn&#8217;t a smarter Claude. It&#8217;s the knowledge a schema can&#8217;t carry: what &#8220;active customer&#8221; means here, which join is the right one, how this shop counts revenue and the training data didn&#8217;t.</p><blockquote><p><em>The gap was never the reasoning. It was the business meaning nobody had written down in a form a machine could read.</em></p></blockquote><p>dbt gave that a name this week: <a href="https://www.getdbt.com/blog/the-semantic-debt-crisis-no-one-is-talking-about">&#8220;semantic debt.&#8221;</a> Every org carries definitions that were never made machine-readable, and humans pay that debt down silently, in meetings, where two analysts notice their churn numbers disagree and quietly settle which one is right. An agent doesn&#8217;t get the meeting. It picks one interpretation and scales the inconsistency across every answer it gives.</p><blockquote><p><strong>Bottom line:</strong> The teams treating the semantic layer as the prerequisite are shipping. The ones still waiting for a smarter model are stuck near 21%.</p></blockquote><div><hr></div><h2><strong>Determinism Is the Gate</strong></h2><p><strong>Up front: stop asking whether to trust the agent. Decide which work is deterministic, and gate the rest.</strong></p><p>Say you get the accuracy. Now you have an agent that mostly works, and &#8220;mostly&#8221; is the scary word if you run data anywhere near a regulator. The failure you can see is fine. The silent one should keep you up: an agent that starts returning wrong answers and tells no one.</p><p>The clearest answer this week came from <a href="https://montecarlo.ai/blog-databricks-nasdaq-panel">Nasdaq&#8217;s data leadership</a>, and it reads like a working playbook, not a governance sermon. The rule at its center is almost rude in its simplicity. Deterministic workflow? Automate it. Judgment call? Keep a human in the loop with a confidence threshold. Entity resolution runs with thresholds and human checks, not blind trust. Agents write code, draft docs, and generate tests. Humans gate the production deploy.</p><p>What lifts it above the usual governance talk is that it treats governance as plumbing, not paperwork<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. &#8220;AI fails silently&#8221; is the line their data leader keeps coming back to, and it&#8217;s the whole motivation: you build the framework not because the agent will obviously break, but because when it breaks quietly, the framework is the only thing that notices before your customers do.</p><blockquote><p><strong>Bottom line:</strong> The rule doesn&#8217;t buy you fewer mistakes. It buys you a tripwire, and in a regulated shop, catching the quiet failure is the entire job.</p></blockquote><div><hr></div><h2><strong>The Radar</strong></h2><p>&#129414; <strong>Rethinking the engine under your agents.</strong> <a href="https://roundup.getdbt.com/p/duckdbs-agent-moment-jordan-tigani">Jordan Tigani of MotherDuck</a> argues the distributed warehouse was never built for how agents query: dozens of small, throwaway, parallel scans, billed like each one mattered. His fix is an in-process engine like DuckDB, with a one-line promote to managed cloud when a job needs scale. Read it as a pitch, since he sells it.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> But the question costs nothing to ask: are you paying warehouse rates because you measured it, or because that&#8217;s where the data already lives?</p><p>&#127919; <strong>Putting an agent on your warehouse.</strong> A <a href="https://dlthub.com/blog/ontology-benchmark">controlled dltHub benchmark</a> scored 3 out of 10 on raw tables and 10 out of 10 with an explicit ontology. The catch: the model aced famous public datasets with no ontology at all, because it had memorized them in training. Benchmark on your own data or you&#8217;ll overestimate. <a href="https://news.nab.com.au/tag/artificial-intelligence/nab-first-bank-in-australia-rolling-out-conversational-ai-data-tool">NAB, an Australian bank</a>, reports the production version: 2 to 4 developer-days saved per use case, once the trusted datasets existed first.</p><p>&#128274; <strong>Governance.</strong> <a href="https://huggingface.co/blog/ServiceNow/mosaicleaks">MosaicLeaks</a> is the first real benchmark of a leak nobody measures: research agents leaking private documents through the search queries they send out. Training the agent for privacy cut it from about 34% to under 10% without hurting the work. And the <a href="https://blog.modelcontextprotocol.io/posts/enterprise-managed-auth/">Model Context Protocol team shipped Enterprise-Managed Authorization</a>, centralizing agent access through your identity provider. Cleaner control, but one less bit of friction on a misbehaving agent.</p><p>&#128184; <strong>Chasing warehouse spend.</strong> Monte Carlo shipped two agents worth reading together: a <a href="https://montecarlo.ai/blog-mc-cost-agent-release">Cost Agent</a> that ranks waste by impact and risk, and <a href="https://montecarlo.ai/blog-release-agent-lineage">Agent Lineage</a> that ties a wrong agent answer back to whether the agent reasoned badly or the data underneath shifted. That second one is exactly what the Nasdaq playbook needs to operate.</p><p>&#129513; <strong>Weighing semantic-layer vendors.</strong> A <a href="https://www.cio.com/article/4177840/universal-semantic-layers-critical-infrastructure-or-the-next-data-fabric.html">trade-press analysis</a> puts McKinsey numbers on the lead story: fewer than 10% of agent pilots scale, and around 80% of the failures cite data and semantics limits. Most vendor layers are still built for dashboards, not for how agents query, so keep your definitions portable before you&#8217;re locked in.</p><div><hr></div><p><em>Reply and tell me: do you actually know your accuracy floor without a semantic layer, and have you ever measured what those throwaway agent queries cost?</em></p><div class="poll-embed" data-attrs="{&quot;id&quot;:634169}" data-component-name="PollToDOM"></div><p><em>Published by <a href="https://republicofdata.io/">RepublicOfData.io</a>. Curated by Olivier Dupuis.</em></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>These are Anthropic&#8217;s own figures, on their own data, graded by their own evaluation, not audited. The residual 5% is exactly where the governance burden concentrates, the slice you still can&#8217;t let run unwatched. What holds up is the shape, not the decimals. The dltHub benchmark in the Radar makes the same point from the other direction, with the methodology exposed and the data designed against training leakage.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Concretely: an embedded review committee rules on which use cases qualify, how the data is classified, which model is allowed, what validation methodology counts as enough, and what explainability artifacts you have to be able to hand a regulator later.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p><span>MotherDuck tested its own argument by </span><a href="https://motherduck.com/blog/replacing-our-bi-tool-with-dives">replacing its own business-intelligence tool in under a month</a><span>, handing an agent the dashboard migration and the reconciliation of new numbers against old. Vendor eating its own cooking, so weigh it as such. But the dashboards-as-code shape (definitions in version control, deployed through continuous integration, migrated numbers checked by an agent) is a credible one for anyone facing a BI renewal.</span></p></div></div>]]></content:encoded></item><item><title><![CDATA[Three Assumptions Your Data Stack Is Quietly Making]]></title><description><![CDATA[Weekly market signals on modern data platform shifts | Week ending June 15, 2026]]></description><link>https://datareport.republicofdata.io/p/three-assumptions-your-data-stack</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/three-assumptions-your-data-stack</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 16 Jun 2026 11:15:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Lvxe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lvxe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lvxe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png 424w, https://substackcdn.com/image/fetch/$s_!Lvxe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png 848w, https://substackcdn.com/image/fetch/$s_!Lvxe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png 1272w, https://substackcdn.com/image/fetch/$s_!Lvxe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lvxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png" width="1456" height="1062" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efbed23a-d201-44c0-b13e-01865c094440_1469x1071.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1062,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2850893,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/202155136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Lvxe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png 424w, https://substackcdn.com/image/fetch/$s_!Lvxe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png 848w, https://substackcdn.com/image/fetch/$s_!Lvxe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png 1272w, https://substackcdn.com/image/fetch/$s_!Lvxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbed23a-d201-44c0-b13e-01865c094440_1469x1071.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>This Week</strong></h2><p>The semantic layer has always been the part of the stack you could trust to stay put. You write the metric definitions by hand, check them into version control, and they mean the same thing on Monday that they meant on Friday. Plain-text config does not drift on its own.</p><p>That assumption is what teams are starting to hand to a model, letting a large language model (LLM) draft the definitions instead of writing them by hand. MotherDuck&#8217;s post this week is the catch: when a model authors your semantic layer, the output still looks like portable, reviewable config, but it is quietly pinned to the model that wrote it. Bump the model, or wait for a hosted update, and the number behind a metric can move while its name stays the same.</p><p>The same kind of buried assumption surfaced twice more this week. One is the distance between a job your orchestrator marks &#8220;done&#8221; and data that is actually ready for the people reading the dashboard. The other is a model vendor that regulators can switch off overnight, with no deprecation window. None of the three show up in a config file, which is exactly why they are easy to ship straight past.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>The Metrics Change When the Model Does</strong></h2><p>You trust the numbers your semantic layer produces. You have to: dashboards, reports, and now AI agents all consume them. So what happens when those numbers shift, not because someone changed a metric definition, but because the LLM underneath the semantic layer got a version bump you never opted into?</p><p><a href="https://motherduck.com/blog/oops-maybe-we-do-need-semantic-layers">MotherDuck published a blog post this week</a> that names this problem more clearly than anyone has before. The argument is straightforward: when you build an AI-native semantic layer, the artifact you produce (the metric definitions, the join logic, the business rules the model inferred) is tuned to the specific LLM that created it. The configuration files look portable. They are plain text, version-controlled, reviewable. But the assumptions baked into those definitions came from a particular model&#8217;s understanding of your schema, your naming conventions, your business context. Swap to a different model, or wait for the vendor to push a hosted update, and those assumptions may no longer hold. Your revenue metric still has the same name. It may not produce the same number.</p><p>The mechanism is what makes this worth understanding beyond the headline. MotherDuck describes a recipe: hierarchical retrieval to find relevant schema context, an LLM that authors the semantic layer definitions, and a scriptable refinement loop that tunes the result. That recipe is portable. You could run it with any model. But the tuned artifact that comes out the other end is not portable, because it embeds the specific model&#8217;s interpretation of your data. The recipe travels. The result is pinned.</p><p>The teams handling this well pin the LLM version serving the semantic layer and treat model upgrades as a deliberate decision rather than a background event. They run continuous metric-accuracy evaluations that catch drift before stakeholders do. And they keep the recipe (the retrieval and refinement process) separate from the artifact (the tuned definitions), so they can rebuild the definitions against a new model on their own schedule instead of meeting the change in a dashboard that stopped making sense.</p><p><strong>The bottom line:</strong> Pinning the serving model and running accuracy evals is the difference between swapping LLMs on your own schedule and discovering the swap in a dashboard that quietly stopped adding up.</p><div><hr></div><h2><strong>Every Job Is Green. The Data Is Three Hours Stale.</strong></h2><p>You know this one. You have been paged because a dashboard was wrong, checked your orchestrator, and found every job marked successful. The data was stale, the join was broken, or the upstream table was empty, but the scheduler had no way to tell you because it only tracks whether the job ran, not whether the data is ready.</p><p><a href="https://dagster.io/blog/how-to-make-the-architectural-case-for-dagster">Dagster published an orchestration maturity model this week</a> that gives this failure mode a name and a framework. The model describes a progression from job-centric scheduling (Airflow, cron, any system that thinks in tasks and schedules) to asset-aware orchestration (a system that thinks in data assets, lineage, and freshness). The core claim: job-centric systems cap out because they report task status but have no concept of data readiness. They cannot tell you whether the data a downstream dashboard needs is fresh, complete, and correct. They can only tell you that the script ran.</p><p>The &#8220;green jobs with stale data&#8221; label is the part worth stealing from the vendor framing. It names a problem that is universal across tools: the gap between &#8220;the orchestrator says everything is fine&#8221; and &#8220;the data consumer says the numbers are wrong.&#8221; That gap exists in Airflow, in cron-based setups, in homegrown schedulers, and in teams that have simply not instrumented the difference between job completion and data readiness. The maturity model gives engineering leads a vocabulary for the conversation they have been having informally (&#8220;our orchestration layer is the bottleneck for stakeholder trust&#8221;) and a framework for evaluating what moving to asset-aware orchestration would actually fix.</p><p>The honest caveat: Dagster is selling Dagster here. The maturity model is a blog post from a vendor whose product sits at the top of the progression. But the failure mode it names is real, it is tool-agnostic, and the diagnostic question it poses is worth running against your own setup regardless of what you migrate to: where, in your current orchestration, is the gap between &#8220;job completed&#8221; and &#8220;data is ready for the consumer&#8221;? If you cannot answer that question, the scheduler is hiding something.</p><p>The maturity model identifies three levels. Level one is cron and basic scheduling: tasks fire on time, but dependencies are implicit, encoded in ordering and tribal knowledge. Level two is task-graph orchestration (the Airflow model): dependencies are explicit, but the graph is about tasks, not data. Level three is asset-aware orchestration: the system models data assets, tracks freshness, and answers &#8220;is this data ready?&#8221; rather than &#8220;did this job finish?&#8221; Most teams live at level two and mistake it for level three because they have never seen the difference.</p><p>The test: pick the three pipelines your stakeholders have complained about most in the last quarter. For each one, ask: does the orchestrator know whether the data those stakeholders consume is fresh? Or does it only know whether the last job ran? If the answer is the second, the maturity model applies regardless of the tool.</p><p><strong>The bottom line:</strong> The teams that instrumented the gap between job completion and data readiness caught the staleness before their stakeholders did. The ones running green-checkmark schedulers are still the last to know.</p><div><hr></div><h2><strong>Your Model Vendor Just Became a Regulatory Risk</strong></h2><p>If you embedded Anthropic&#8217;s Fable 5 or Mythos 5 into a production pipeline this year, you learned something new on June 13: the US government can turn your model off. No advance notice, no migration window, no deprecation schedule. The API calls return errors now.</p><p>The <a href="https://www.anthropic.com/news/fable-mythos-access">export-control directive</a> cited a potential jailbreak concern and required Anthropic to disable both models globally, not just for sanctioned entities, but for every customer everywhere. Anthropic complied immediately. Other Claude models are unaffected, but the precedent is what matters: a regulatory action removed a production-grade model from every pipeline that depended on it, in the time it takes to push a configuration change.</p><p>Two days earlier, Anthropic had announced a separate policy change that sets the context for why this hit so hard. <a href="https://news.ycombinator.com/item?id=48473166">Mythos-class models now require mandatory 30-day retention</a> of all prompts and outputs, to enable misuse detection. For organizations using these models through AWS Bedrock, retained data leaves the AWS security boundary and is stored by Anthropic. The &#8220;data stays in AWS&#8221; assumption that many regulated-sector procurement reviews depend on is now broken for these model classes. Controls exist (limited reviewer access, auto-deletion, customer-managed encryption keys), but the architectural assumption has changed.</p><p>Together, these two events in 48 hours demonstrate a risk category that did not exist in most platform owners&#8217; planning six months ago. On Tuesday your data started leaving your cloud provider&#8217;s security boundary. On Thursday the model disappeared. The two events are connected by the same regulatory surface: the vendor&#8217;s safety obligations create both the retention requirement (to detect misuse) and the vulnerability to export controls (to prevent it). For platform owners, the implication is that model routing is now a governance gate, the same kind of decision your data team already makes about which warehouse tier gets personally identifiable information (PII).</p><p>The community reaction to the retention announcement was blunt. Many practitioners said the retention requirement would cause enterprises to drop Anthropic from approved vendor lists entirely. Others argued limited retention is a reasonable safety measure. But the export-control event two days later shifted the conversation from &#8220;is 30-day retention acceptable?&#8221; to &#8220;can you afford to depend on any single hosted model for production workloads?&#8221;</p><p>The framing that holds up is model routing as governance: treating AI model dependencies the way a data team already treats data, sorted by sensitivity, regulatory exposure, and availability, with an abstraction layer in front of vendors so a disruption degrades gracefully instead of breaking the pipeline. On Bedrock, that also means reckoning with the retention window in data processing agreements and data classification, or keeping Mythos-class models out of regulated workloads.</p><p><strong>The bottom line:</strong> Whether the Fable/Mythos shutdown was a one-line routing change or a weekend of hand-patching came down to a decision made months earlier: did the model identifier get hardcoded into the pipeline, or did an abstraction layer sit in front of it?</p><div><hr></div><h2><strong>The Radar</strong></h2><p><strong>If you&#8217;re evaluating catalog-based interoperability:</strong></p><p>The Iceberg REST catalog (a standard, vendor-neutral catalog API any engine can call) is quietly becoming the interchange surface between compute engines. The <a href="https://roundup.getdbt.com/p/a-catalog-is-all-you-need">dbt Roundup walked through a working pattern</a> this week: configure <code>catalogs.yml</code> once, set <code>+catalog_name</code> per model, and dbt + DuckDB write directly to Unity Catalog, Snowflake Horizon, or Polaris without Spark. If you are still maintaining copy jobs between platforms, this is the pattern that replaces them. <a href="https://www.databricks.com/blog/talk-all-your-data-wherever-it-lives">Databricks shipped Lakehouse Federation</a> the same week, federating queries across 20+ sources through Unity Catalog. The vendor push and the practitioner pattern are converging on the same thesis: the catalog, not the compute engine, brokers the reads.</p><p><strong>If you care about semantic-layer adoption at scale:</strong></p><p><a href="https://www.startuphub.ai/ai-news/technology/2026/mercedes-benz-korea-s-ai-agents">Mercedes-Benz Korea is deploying AI agents</a> on the Databricks platform with a shared semantic layer exposing over 500 key performance indicator definitions as Unity Catalog Metric Views. Business intelligence tools and AI agents consume the same business logic. If you are evaluating how to expose governed metrics to agents, this is one of the first enterprise case studies showing the &#8220;extend your existing semantic layer&#8221; approach working at scale rather than building agent-specific infrastructure.</p><p><strong>If you&#8217;re building pipelines:</strong></p><p><a href="https://www.artie.com/">Artie</a> launched self-serve real-time CDC (change data capture) replication to your warehouse, aiming to eliminate the Kafka and Debezium operational complexity that makes CDC a team-sized commitment for most organizations. Worth evaluating if your current CDC setup is the project nobody wants to own.</p><p><strong>If you&#8217;re thinking about how agents interact with your data layer:</strong></p><p>dltHub published a piece arguing that <a href="https://dlthub.com/blog/canonical-text-to-sql">text-to-SQL is a definition problem</a>, not a model problem: build the canonical data model first, then let the LLM query it. The counterpoint to the &#8220;separate semantic layer&#8221; consensus is worth reading if your team is evaluating whether to invest in a standalone semantic layer or push the definitions closer to the transformation layer.</p><p><strong>If you&#8217;re deciding how much semantic infrastructure agents actually need:</strong></p><p><a href="https://blog.republicofdata.io/your-semantic-layer-alone-is-not-ready-for-agentic-analytics/">Your semantic layer alone is not ready for agentic analytics</a> draws a line between a semantic model (entities, joins, formulas) and semantic lineage (the assumptions, owners, and valid variants behind each metric). A thin model is table stakes for traditional dashboards and reporting, but agents acting without a human in the loop need the lineage layer to know whether to trust a result and who to escalate to when context is ambiguous. It is a natural counterpart to this week&#8217;s MotherDuck story: that one says the semantic layer you have may be secretly pinned to the LLM that built it, this one says it may be too thin for agents in the first place.</p><p><strong>If you care about AI model security:</strong></p><p>A researcher demonstrated that <a href="https://blue41.com/blog/how-we-helped-bunq-secure-their-financial-ai-assistant/">a single prompt injection hidden in a bank transfer description</a> could compromise a banking AI agent at Bunq. The attack vector (a structured data field that happens to contain natural language) is exactly the kind of thing that gets overlooked when teams wire agents to production data. If you are exposing your warehouse to agent queries, the threat model now includes the data the agent reads, not just the prompts it receives.</p><div><hr></div><p><em>Does your team treat model upgrades and model vendor changes as governed decisions, or do they happen in the background? What would break if your primary model disappeared overnight?</em></p><p><em>Published by <a href="https://republicofdata.io/">RepublicOfData.io</a>. Curated by Olivier Dupuis.</em></p>]]></content:encoded></item><item><title><![CDATA[Your dbt Just Got a New Engine (and a New Owner)]]></title><description><![CDATA[The Data Product Report: Weekly State of the Market in Data Product Building | Week ending June 8, 2026]]></description><link>https://datareport.republicofdata.io/p/your-dbt-just-got-a-new-engine-and</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/your-dbt-just-got-a-new-engine-and</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 09 Jun 2026 11:09:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!epJJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!epJJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!epJJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!epJJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!epJJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!epJJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!epJJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3058552,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/201194250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!epJJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!epJJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!epJJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!epJJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84eb7f85-33fe-4058-af81-38c184b46646_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>This Week</h2><p>You probably have a dbt project that takes too long to parse. You have been waiting for the engine to get faster, and this week it did: dbt Labs announced a Rust rewrite that claims up to 10x faster parse times, a merger with Fivetran that consolidates ingestion and transformation under one roof, and a feature called dbt State that skips unchanged models so your CI pipeline stops rebuilding the world on every commit. That alone would make this a consequential week. But the same few days also surfaced a quieter lesson: the assumptions baked into your stack have a way of going stale without anyone noticing. A tokenizer swap silently inflated large language model (LLM) costs for production analytics interfaces. A Databricks benchmark showed that the Hive-era partitioning most lakehouse teams still run is optimizing for a pruning mechanism their engine does not use. The common thread is not that everything broke. It is that nothing looked broken until someone measured.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>Your dbt Just Got a New Engine (and a New Owner)</h2><p>If you run a dbt project with more than a few hundred models, you know the feeling: you change one file, hit build, and wait while the parser walks every model in the project before it gets to yours. That parse time is the tax you pay on every CI run, every local iteration, every &#8220;let me just check this one thing.&#8221; It is the thing that makes large dbt projects feel heavy.</p><p>This week <a href="https://www.getdbt.com/blog/what-we-announced-at-snowflake-summit-and-why-it-matters">dbt Labs announced dbt Core v2.0</a> at Snowflake Summit, and the headline is a Rust-based engine called Fusion that rewrites the parser from scratch. The claimed improvement is up to 10x faster parse times. The alpha is installable now (<code>pip install dbt==2.0.0-preview.x</code>) with adapters for Snowflake, BigQuery, Databricks, and Redshift. A proprietary build adds column lineage and instant feedback, but the Rust engine itself is open source.</p><p>The second announcement is the one that changes the vendor landscape: dbt Labs is merging with Fivetran. Ingestion and transformation, two layers that every analytics team runs as separate tools with separate contracts, will consolidate under one roof. For teams already running both, the merger is a procurement question and a roadmap question. For teams running alternatives on either side, the merger is a competitive signal about where bundling is heading.</p><p>The third announcement is quieter and possibly more useful day-to-day: dbt State, a feature that tracks which models changed since the last run and skips the rest. If your CI pipeline rebuilds everything because it cannot tell what changed, dbt State is a direct answer. The compute savings are proportional to how much of your project is unchanged on a given commit, which for most teams is most of it.</p><p>Meanwhile, <a href="https://dlthub.com/blog/dlthub-2026-snowflake-startup-program-product-partner-of-the-year">dltHub won Snowflake&#8217;s Partner of the Year</a> and shipped a Snowflake Native App that replicates Microsoft SQL Server, Oracle, MySQL, and Postgres entirely in-account, with no external orchestrator. The stat that caught the eye: 91% of new dlt pipelines in January 2026 were agent-built. The open-source ingestion layer is accelerating with or without the Fivetran merger, and the question of who owns the ingestion-to-transformation path just got more competitive.</p><p>The practical test this week is straightforward. Install the v2.0 alpha on a branch, run your existing project through it, and compare parse times against your current setup. If your full build takes 10 minutes or more, the Rust engine improvement will be measurable. Then try dbt State on a commit that touches one model and see how much of your CI pipeline it skips. Those two numbers tell you whether the migration is worth planning now or watching for a cycle.</p><p><strong>The bottom line:</strong> The teams that installed the dbt v2.0 alpha this week got a parse-time number they can hold up against their current CI pipeline and a change-aware build that skips what didn&#8217;t move. The Fivetran merger changes the vendor map, but the engine is what changes Tuesday.</p><div><hr></div><h2>The Bill Went Up and Nobody Changed the Code</h2><p>You have probably noticed that managing LLM costs in production feels less like budgeting and more like chasing a number that moves when you are not looking. If you are running a text-to-SQL interface, a governed natural-language query layer, or any agent that talks to your warehouse through an AI model, the cost question you care about is: what does it cost to finish a task? Not what does a token cost.</p><p>This week, the gap between those two questions became concrete. <a href="https://www.altimate.ai/blog/the-great-token-heist-of-26">Anthropic&#8217;s Claude Opus 4.7 switched tokenizers</a>, and independent tests show the same prompts now consume roughly 32 to 45 percent more tokens for text (up to 3x for images). The price per token did not change. The number of tokens per prompt did. After caching, net costs rose 12 to 27 percent. No code change, no opt-out, light disclosure.</p><p>The mechanism is what makes this worth understanding, not just noting. A tokenizer is the component that splits your prompt into the units the model charges for. When a vendor ships a new tokenizer, the same English sentence becomes more or fewer tokens. Anthropic&#8217;s new tokenizer produces more. The price list says the rate is the same; the meter runs faster.</p><p>Community reaction was blunt: frustration about hidden cost increases, and a growing consensus that cost-per-token is a vendor-controlled number that tells you almost nothing about what you are actually spending. The call is for cost-per-finished-task benchmarking, where you measure what it costs to answer a question, generate a report, or complete a workflow, regardless of how many tokens the model consumed along the way.</p><p>For data teams, this is not abstract. If you wired a semantic layer to an LLM for natural-language queries, or you ship a Slack bot that runs SQL on behalf of analysts, your cost basis just shifted. The queries are the same. The answers are the same. The bill is higher. And because the change is in the tokenizer, not the API contract, your monitoring probably did not catch it unless you were already tracking token counts per task.</p><p>The teams that caught this early share a pattern: they pin model versions in production so a tokenizer swap does not silently change their economics. They track tokens consumed per finished task, not just per API call. And they re-benchmark cost-per-task across model versions before upgrading, so the cost change is a decision they made, not a surprise they absorbed.</p><p><strong>The bottom line:</strong> The teams that were already tracking cost-per-finished-task noticed the Opus 4.7 tokenizer shift in their dashboards this week and pinned their version before the bill landed. The ones tracking cost-per-token saw the same rate card and missed the 12 to 27 percent increase hiding underneath it.</p><div><hr></div><h2>Your Partitioning Scheme Is Lying to You</h2><p>If you set up a Delta Lake table more than a year or two ago, you probably partitioned it by date. Maybe by date and region. It is the Hive pattern, and it is what most teams default to because it is what they learned, what the documentation used to recommend, and what the table already has. The question worth asking this week: does the partitioning actually do what you think it does?</p><p><a href="https://www.databricks.com/blog/debunking-8-data-layout-myths-why-liquid-clustering-outperforms-partitioning">Databricks published a benchmark-backed argument</a> that for Delta Lake and Iceberg tables, Liquid Clustering outperforms Hive-style partitioning on nearly every axis that matters: 35% lower clustering time, 22% faster queries, changeable keys, automatic handling of both low and high cardinality columns, no small-file problems, and lower write amplification.</p><p>The insight underneath the benchmarks is more interesting than the numbers. On Delta and Iceberg, pruning does not work the way most teams think it does. Hive partitioning relies on directory-level pruning: the query planner reads directory names to skip irrelevant partitions. But Delta and Iceberg do not prune by directory. They prune by reading transaction logs and per-column statistics at file granularity. The directory structure is cosmetic. The engine is already doing file-level pruning whether your table is partitioned or not.</p><p>That means the Hive-style partition scheme is not helping the query planner. It is creating small files when cardinality is high, preventing key changes when your query patterns shift, and adding write amplification on every insert. Liquid Clustering replaces all of this with changeable clustering keys that the engine optimizes automatically, sorting data within files by the clustering columns and letting the file-level stats do the pruning work.</p><p>The honest caveat: these are Databricks&#8217; own benchmarks on their own platform. Independent validation has not arrived yet, and the improvement numbers will vary by workload. But the underlying mechanism (file-level stats, not directory pruning) is verifiable on your own tables.</p><p>The test: pick your three highest-cost partitioned Delta tables. Run your typical analytical queries against them as-is, then convert one to Liquid Clustering and run the same queries. Compare scan times, file counts, and write amplification. If the numbers move in the direction the benchmarks suggest, you have a concrete case for migrating your defaults. If they do not, you have data to explain why your workload is different.</p><p><strong>The bottom line:</strong> The teams that ran the benchmark on their own Delta tables this week found out whether their partitioning scheme is doing real work or just creating small files. The ones still running Hive-style partitions by default are maintaining a layout strategy designed for a pruning mechanism their engine does not use.</p><div><hr></div><h2>The Radar</h2><p><strong>If you care about governed AI analytics:</strong></p><p>Snowflake Summit turned the semantic layer into a multi-vendor platform feature in about 48 hours. <a href="https://siliconangle.com/2026/06/04/semantic-layer-governance-trusted-agentic-ai-snowflakesummit/">AtScale and Snowflake launched Semantic Views for XMLA (XML for Analysis) Endpoints</a>, exposing warehouse semantics directly to Excel and Power BI with a one-command setup. <a href="https://www.globenewswire.com/news-release/2026/06/02/3305548/0/en/ThoughtSpot-Expands-Governed-Enterprise-AI-with-Snowflake-Cortex-AI-and-Semantic-Views.html">ThoughtSpot expanded its Cortex AI integration with bi-directional semantic sync</a>. And OpenAI models are now available inside Snowflake Cortex AI. Three vendors shipping production semantic-layer integrations in one week is trend evidence, not a coincidence. If you are building a governed natural-language query interface, the platform options just multiplied.</p><p><strong>If you&#8217;re building pipelines:</strong></p><p><a href="https://dagster.io/blog/community-showcase-part-1">Dagster published a community showcase</a> featuring a vertical data stack built on Polars, DuckDB, and DuckLake, with Dagster orchestrating. Worth a look if you are exploring what the non-cloud-warehouse analytical stack looks like when everything runs locally. And <a href="https://dlthub.com/blog/schema-evolution-guide">dltHub published a practical guide to schema evolution</a> covering Avro, Protobuf, and versioned contracts for data pipelines. Useful when your agent-built pipelines start shipping schemas you did not design.</p><p><strong>If you&#8217;re running Databricks:</strong></p><p><a href="https://www.databricks.com/blog/query-tags-context-your-warehouse-queries-have-been-missing">Query Tags</a> landed, adding model-level cost attribution to your warehouse queries. If you are benchmarking the cost impact of migrating table layouts (see above), this is how you measure it. <a href="https://www.databricks.com/blog/introducing-cross-engine-abac">Cross-Engine Attribute-Based Access Control (ABAC) via Unity Catalog</a> lets you write one policy that governs Spark, Trino, Flink, and DuckDB reads. And <a href="https://www.databricks.com/blog/apache-spark-real-time-mode-gaming-better-way-do-real-time-sessionization">Spark Real-Time Mode</a> shipped with a <code>transformWithState</code> operator for sessionization, closing a gap that previously required Flink.</p><p><strong>If you care about data quality tooling:</strong></p><p><a href="https://dlthub.com/blog/dq-toolkit-preview">dltHub&#8217;s AI Workbench preview</a> adds schema-aware data quality checks to agent-built pipelines. If you adopted dltHub Transformation and are wondering how to validate what the agent produced, this is the quality layer arriving alongside it.</p><p><strong>If you&#8217;re evaluating dev tools:</strong></p><p><a href="https://motherduck.com/blog/obsidian-vault-duckdb-ai-agents">MotherDuck shipped an Obsidian plugin</a> that runs DuckDB queries directly inside your notes. Niche, but if your team uses Obsidian for documentation and you want SQL next to your runbooks, it is there.</p><div><hr></div><p><em>What did your dbt parse time look like on the v2.0 alpha? Reply and tell us whether the Rust engine moved the needle on your project.</em></p><p><em>The Data Product Report is published every Tuesday by <a href="https://republicofdata.io">RepublicOfData.io</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[Your Next Data Model Might Not Have a Human Author]]></title><description><![CDATA[The Data Product Report: Weekly State of the Market in Data Product Building | Week ending June 1, 2026]]></description><link>https://datareport.republicofdata.io/p/your-next-data-model-might-not-have</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/your-next-data-model-might-not-have</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 02 Jun 2026 11:07:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LF59!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LF59!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LF59!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!LF59!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!LF59!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!LF59!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LF59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2608880,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/200178371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LF59!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!LF59!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!LF59!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!LF59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31421da3-b52d-41a8-afcc-2b139341e678_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>This Week</strong></h2><p>Most data engineers still build the model layer by hand. It is the part of the job that feels furthest from automation, because it is where the judgment lives: which grain, which joins, what counts as a customer. So the question worth sitting with this week is what happens to that judgment when an agent drafts the model for you, and whether you would ship what it hands back. The reason to treat that as a now-question and not a someday-question is dltHub Transformation, which hit public preview this week with a real rebuild behind it instead of a demo: an agent scaffolded a company&#8217;s model layer and closed a data freshness problem that had outlived months of backlog grooming. What makes it a signal worth acting on is that all of it is open to inspection, the toolkit, the numbers, the engines that can read the result, and the way to check the agent&#8217;s work.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>An Agent Rebuilt the Model Layer, and the Dashboard Caught Up</strong></h2><p>The thing that decides whether agent-drafted modeling earns a place in your stack is mundane: does it save real work, or just move the work around? At Navit, the answer was a number that had been stuck for months. On-time delivery for a row of dashboards sat around 80 percent against a target near 99, and the fix kept losing to the rest of the backlog. An agent-scaffolded rebuild with <a href="https://dlthub.com/blog/dlthub-transformation-public-preview">dltHub Transformation</a>, which hit public preview this week, closed the gap in about three weeks, and time-to-metric dropped from days to hours.</p><p>The toolkit is an agent-guided workflow with four steps. You point it at your raw sources and it proposes a taxonomy of what is in them. It turns that into an ontology, then into a common data model (a single, tidy description of your core tables), then into the actual Python transformation code that the dlt engine runs. The agent doing the scaffolding is your choice of Claude, Codex, or Cursor. The engine executes the result, so the agent is writing the plan, not babysitting the pipeline.</p><p>What makes this worth your attention is not that an agent wrote some code. It is that the claim is testable against your own work. dltHub used the same toolkit to migrate its own stack from HubSpot to Attio in two weeks. The reported time-to-metric improvement is the kind of number you can hold up against your current migration backlog and check.</p><p>The honest caveat: this is public preview, on the paid tier, and one company&#8217;s rebuild is one data point, not a benchmark. But the shape of the claim is the news. Agent-authored modeling has moved from &#8220;watch this demo&#8221; to &#8220;here is a before-and-after you can try to reproduce.&#8221;</p><p><strong>The bottom line:</strong> The teams that pointed an agent at a stuck migration this week got a common data model and runnable transforms out the other side, and at least one of them watched a months-old freshness problem close. What changed is not that an agent wrote code. It is that the result came with numbers a skeptic can try to break.</p><div><hr></div><h2><strong>The Catalog Became the Place Everything Reads From</strong></h2><p>Say the agent did hand you a clean model. The next question is mundane and a little political: which of the engines your team actually runs can read it, and at what cost in copies and per-tool permissions? For most teams the honest answer is still &#8220;some of them, once we duplicate the data and wire up access for each one.&#8221; This week <a href="https://www.databricks.com/blog/unity-catalog-and-next-era-apache-icebergtm">Databricks made Unity Catalog&#8217;s Iceberg support generally available</a>, and the news underneath the announcement is that the catalog, not the storage format, is becoming where that question gets settled.</p><p>In plain terms: a catalog is the index that tells every tool where your tables live and who is allowed to touch them. Unity Catalog now exposes a standard catalog API that Spark, Trino, Flink, Snowflake, DuckDB, and even pandas can call to read and write the same Iceberg tables, without each of them needing broad permissions on the underlying storage. It can also federate catalogs you do not own, governing and sharing tables that live in AWS Glue or Snowflake Horizon without moving the data into Databricks first.</p><p>For anyone running a lakehouse, this is a concrete decision, not a vibe. The question on the table is whether your current Glue or Hive metastore setup still earns its place once one catalog can broker reads and writes across every engine you run. There is a roadmap promise too, to converge the Iceberg and Delta metadata so the format war quietly ends, but that part is not shipped, so treat it as a direction and not a feature.</p><p><strong>The bottom line:</strong> The teams evaluating catalog strategy this week have a generally-available way to let any engine read one set of tables through one governed API. The ones still wiring per-engine permissions onto raw storage are maintaining plumbing the catalog layer now offers to absorb.</p><div><hr></div><h2><strong>Before You Trust the Agent, You Have to Measure It</strong></h2><p>Here is the question that should nag at you the moment you let an agent near the warehouse: how would you even know it got the join right? The first two stories assume the output is correct. Nothing in them tells you whether the model the agent chose, the join it assumed, or the filter it applied actually holds. <a href="https://hex.tech/blog/evaluate-data-agents/">Hex wrote up the lab it built for exactly that question</a>, and the part worth stealing is the pattern, not the product.</p><p>The lab, which Hex calls Shoebox, runs pairwise experiments: a candidate version against a baseline, changing one thing at a time so you can see what a new model, prompt, or piece of context actually did. A local development stack iterates fast while a shared remote workspace holds a baseline that updates daily, so every comparison is apples to apples instead of drifting underneath you. The test data is synthetic but modeled on a realistic business, not a generic public benchmark that looks nothing like your schema.</p><p>You do not need Hex to copy this. The reusable idea is three moves: isolate one variable at a time, keep a stable reference you trust, and measure against realistic data before you ship. That is a pattern any team shipping a text-to-SQL or natural-language query feature can stand up with the tools they already have.</p><p><strong>The bottom line:</strong> The teams that built a measurement loop before turning an agent loose on their warehouse this week can answer &#8220;did this change help?&#8221; with a number. Without that loop, &#8220;the agent seems better now&#8221; is the whole quality story.</p><div><hr></div><h2><strong>The Radar</strong></h2><p><strong>If you&#8217;re shipping AI query interfaces:</strong></p><p>Snowflake published <a href="https://www.snowflake.com/en/blog/engineering/enterprise-text-to-sql-arctic-r2/">Arctic Text2SQL R2</a>, a compact model trained specifically on Snowflake&#8217;s SQL dialect that beats much larger frontier models on enterprise SQL. If you ship a text-to-SQL feature, the cost math just changed: a smaller model tuned to your warehouse&#8217;s dialect may beat the biggest general model you are paying for. And AWS published a <a href="https://aws.amazon.com/blogs/machine-learning/evaluating-deep-agents-using-langsmith-on-aws/">primary walkthrough of evaluating text-to-SQL agents with LangSmith</a>, built on a tasks, trials, and transcripts structure with offline pytest checks and online production monitoring. It pairs well with the Hex pattern above as a concrete starting point.</p><p><strong>If you&#8217;re building pipelines:</strong></p><p>dlt published its <a href="https://dlthub.com/blog/benchmark-dlthub">first throughput benchmark</a>: roughly 65 GB/hr from Postgres to BigQuery on a small 2-core, 4 GB worker at about a dollar an hour of compute, scaling linearly. If your current extract-load job moves similar volumes, you now have a baseline to measure against. And Dagster showed how to <a href="https://dagster.io/blog/snowflake-runs-your-data-dagster-runs-everything-else">wrap Snowflake Dynamic Tables as declarative pipeline nodes</a> without running any Dagster-side compute, which is a clean fit if you want orchestration to declare intent and let the warehouse do the work.</p><p><strong>If you&#8217;re rethinking your stack:</strong></p><p>A <a href="https://www.dbos.dev/blog/postgres-is-all-you-need-for-durable-execution">walkthrough on building durable workflows directly on Postgres</a> argues you can use row locking and transactional checkpoints instead of adopting Temporal or stretching Airflow. The discussion was lively and not one-sided. Teams with lighter orchestration needs may find the trade-off genuinely different from the pitch they have been hearing.</p><p><strong>If you care about data residency:</strong></p><p>A sharp <a href="https://musings.martyn.berlin/lets-talk-about-eu-sovereignty">analysis of EU sovereignty</a> makes the case that running in an EU region is not the same as being sovereign: storage, identity, and DNS calls can still route through us-east-1 even when your workloads sit in Frankfurt. If you carry GDPR or Schrems II obligations, that control-plane exposure is an architecture question, not a checkbox.</p><p><strong>If you&#8217;re running Databricks:</strong></p><p>Two Lakebase updates worth a look: <a href="https://www.databricks.com/blog/introducing-always-pricing-automatic-savings-databricks-lakebase">Always-On pricing</a> that saves about 25 percent on steady-state workloads (with a deeper promotional discount running into January 2027), and a <a href="https://www.databricks.com/blog/announcing-lakebase-change-data-feed-cdf">Change Data Feed</a> that captures row changes natively so the operational database can feed your Bronze layer without bespoke connectors.</p><div><hr></div><p><em>Have you let an agent scaffold a data model you actually shipped? Reply and tell us what you kept and what you threw away.</em></p><p><em>The Data Product Report is published every Tuesday by <a href="https://republicofdata.io/">RepublicOfData.io</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[The knowledge gap underneath the tooling]]></title><description><![CDATA[The Data Product Report: Weekly State of the Market in Data Product Building | Week ending May 19, 2026]]></description><link>https://datareport.republicofdata.io/p/the-knowledge-gap-underneath-the</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/the-knowledge-gap-underneath-the</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 19 May 2026 11:15:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0j_I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0j_I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0j_I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!0j_I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!0j_I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!0j_I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0j_I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2546839,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/198338400?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0j_I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!0j_I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!0j_I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!0j_I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81afb60e-0d9b-4f76-bf16-225125414f10_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>This Week</h2><p>A semantic layer is supposed to make your agent smarter. This week, a benchmark from semantic-layer vendor Cube put a number on how much smarter: 68%. That is the accuracy ceiling when an LLM has metric definitions but not the business reasoning underneath them. Good enough to demo, not good enough to trust. A survey of 334 data practitioners published the same week revealed why the reasoning stays undocumented: at 42% of organizations, data models belong to whoever built the pipeline last.</p><div><hr></div><h2>Your Agent Keeps Getting the Answer Wrong</h2><p>Cube&#8217;s semantic layer has spent years convincing analytics teams that a centralized metrics store would save them from dashboard chaos. It worked, mostly. This week, Cube <a href="https://cube.dev/blog/cube-core-and-cube">published a strategic pivot</a> that reveals the next customer for all that centralized logic: not the analyst refreshing Looker at 9am, but the AI agent trying to answer &#8220;what was Q2 revenue in EMEA&#8221; without hallucinating the number. Cube Core, the open-source modeling layer, stays as it is. The commercial product is repositioning around agent consumption. Metrics, dimensions, access controls, business definitions: all served via APIs to guide natural-language-to-SQL and enforce governance.</p><p>The bet makes intuitive sense. If a semantic layer already translates business concepts into SQL for humans, an AI agent calling that same layer should get the same translations. The problem is the accuracy number. A benchmark by Cube (examined in <a href="https://blog.republicofdata.io/improving-accuracy-and-trust-in-agentic-analytics/">a Republic of Data analysis</a>) found that adding a semantic layer improves LLM question-answering accuracy, but it plateaus at roughly 68%. The number is directional, not definitive. The architectural implication is sharp. That ceiling appears when the agent has access to metric definitions (what &#8220;revenue&#8221; measures, which table it queries) but not the reasoning chain underneath: why EMEA excludes trial accounts, which quarter-end adjustments are baked into the calculation, what assumptions were contested during the last planning cycle. Schema metadata gets you to 68%. The missing layer is what the researchers call &#8220;semantic lineage&#8221;: a graph capturing not just what a metric measures, but <em>why</em> it is defined that way.</p><p>The <a href="https://roundup.getdbt.com/p/what-data-agent-benchmarks-do-and">dbt Roundup&#8217;s AI Council report</a> published this week mapped the emerging infrastructure into three lanes: context providers (semantic layers, metadata catalogs), agent orchestrators (the frameworks that plan and execute queries), and compute/inference (the models and databases underneath). Agent benchmarks show measurable accuracy gains when the dbt Semantic Layer is available, but the report is careful to note that benchmark results routinely overstate real-world performance. The framework matters because it clarifies where the semantic layer sits (context provider) and what it cannot do alone: reason about business logic it was never given.</p><p>Every analytics tool is adding an &#8220;AI&#8221; tier this year. That is not news. What is notable is the honesty of the accuracy data. The vendors building agentic analytics platforms are publishing numbers that show those platforms are not ready for production trust. The 68% ceiling is not a model problem or a prompt-engineering problem. It is a knowledge-capture problem. The metric definitions are there. The reasoning chains are not. And capturing those chains (why this metric, why this scope, why this exception) is a human documentation task that no model capability can shortcut.</p><p><strong>The bottom line:</strong> The analytics engineering teams that started documenting <em>why</em> their metrics are defined the way they are, not just <em>what</em> they measure, are the ones whose agents will break past the accuracy ceiling. Everyone else is shipping a 68%-right answer and calling it automation.</p><div><hr></div><h2>The Pipeline Builder&#8217;s Accidental Second Job</h2><p>The documentation that would break the accuracy ceiling does not exist because nobody is responsible for writing it. This week, Joe Reis <a href="https://joereis.substack.com/p/why-90-of-data-teams-are-failing">published survey results from 334 data professionals</a> that put numbers to what most data teams already feel: 90% of data modeling failures are organizational, not technical. Only 4.8% of respondents cited tooling as the main fix. The rest pointed to training, requirements, time, and, above all, ownership.</p><p>The ownership breakdown is the kind of number that makes you close your laptop for a minute. Only 19.2% of organizations have a dedicated data modeler. At 42.5%, data models belong to &#8220;whoever builds the pipeline.&#8221; Another 7.8% of respondents reported that nobody owns data modeling at all. The organizations that enforce modeling standards, the ones with review processes and naming conventions and documented requirements, report models that hold up roughly five times longer. Not a marginal improvement. A structural one.</p><p>The same week delivered the counter-example. A practitioner published a <a href="https://analytics.fixelsmith.com/posts/sql-fraud-patterns/">cross-warehouse SQL cookbook for transaction fraud detection</a> covering velocity checks, impossible-travel detection using LAG and haversine calculations, and amount-anomaly scoring, with working syntax across Snowflake, BigQuery, Databricks, Teradata, and Postgres. The cookbook handles the kind of cross-dialect friction that eats hours in practice: QUALIFY where it is available, CTE workarounds where it is not. This is what encoded institutional knowledge looks like when someone actually owns it. Portable, reusable, specific enough to drop into a pipeline by Friday.</p><p>The survey and the cookbook are two sides of the same coin. When nobody owns the models, institutional knowledge stays in someone&#8217;s head and evaporates when they change teams. When someone does own it, the knowledge becomes a durable artifact that outlasts the person who wrote it. The 5x durability finding is not about better tooling. It is about the decision to treat data models as something worth maintaining, not just something that gets built on the way to the next dashboard.</p><p><strong>The bottom line:</strong> The teams with enforced modeling standards and dedicated ownership saw their models last five times longer. The tools were the same across the board. The difference was organizational: someone decided the models were worth owning.</p><div><hr></div><h2>The Radar</h2><p><strong>If you&#8217;re evaluating model architectures:</strong><br><a href="https://interfaze.ai/blog/interfaze-a-new-model-architecture-built-for-high-accuracy-at-scale">Interfaze</a> shipped a hybrid CNN/transformer purpose-built for deterministic tasks: OCR, vision, structured extraction. It is topping benchmarks against general-purpose LLMs on those workloads at roughly $1.50/$3.50 per million tokens. If your pipeline runs extraction or entity recognition and you have been defaulting to a frontier model, this is the kind of purpose-built alternative worth benchmarking.</p><p><strong>If you&#8217;re building infrastructure:</strong><br><a href="https://www.tryardent.com/">Ardent</a> (YC P26) offers copy-on-write Postgres branching from existing RDS and Supabase instances with built-in data obfuscation, targeting CI pipelines and AI agent testing. The community reception was skeptical about the moat versus Neon, Supabase branching, and DBLab. If you are managing snapshot-based testing environments, it is worth a look. Mind the data-residency question: production data leaves your boundary.</p><p><strong>If you care about governance:</strong><br><a href="https://claude.com/blog/claude-platform-on-aws">Claude Platform on AWS</a> shipped as a fully managed, Anthropic-operated AI service alongside Bedrock&#8217;s AWS-operated option. Same model family, two compliance postures: one keeps data in the AWS boundary, one does not. If your team is evaluating managed AI agents, the compliance split is the decision that matters, not the feature list.</p><p><strong>If you manage a data team:</strong><br>A <a href="https://www.wired.com/story/using-ai-negative-impact-thinking-problem-solving-study/">CMU/MIT/Oxford study</a> found that 10 minutes of AI coding assistance measurably increases quitting behavior and error rates once the AI is removed. The community debate was heated on whether the finding generalizes beyond the study&#8217;s controlled setting. If your team uses AI coding tools daily, the dependency question is worth one retro conversation.</p><div><hr></div><p><em>Does your team document why metrics are defined the way they are, or just what they measure? We are curious what the semantic lineage gap looks like in practice. Reply and tell us.</em></p><p><em>The Data Product Report is published every Tuesday by <a href="https://republicofdata.io">RepublicOfData.io</a>.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Nobody Owns What Your Agent Writes]]></title><description><![CDATA[The Data Product Report: Weekly State of the Market in Data Product Building | Week ending May 4, 2026]]></description><link>https://datareport.republicofdata.io/p/nobody-owns-what-your-agent-writes</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/nobody-owns-what-your-agent-writes</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 05 May 2026 11:15:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RlqJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RlqJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RlqJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RlqJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RlqJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RlqJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RlqJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg" width="1024" height="559" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:559,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:188406,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/196464133?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RlqJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RlqJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RlqJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RlqJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc11197e1-58ba-4135-a409-9ac2f95f1f77_1024x559.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This week settled a question nobody wanted answered: the code your AI agent writes isn&#8217;t copyrightable. That landed alongside GitHub killing Copilot&#8217;s flat rate, PostgreSQL&#8217;s most trusted backup tool losing its only maintainer, and four open-weight coding models shipping in seven days. Everything is available. Nothing is anyone&#8217;s responsibility.</p><div><hr></div><h2><strong>Your Copilot Just Got a Meter</strong></h2><p>GitHub didn&#8217;t announce a price increase. They <a href="https://github.blog/news-insights/company-news/github-copilot-is-moving-to-usage-based-billing/">announced a pricing model change</a>. All plans move to token-based billing via AI Credits on June 1. The community response was immediate and volcanic: across 432 comments, users reported effective price increases of 6x to 27x depending on usage patterns and model multipliers. Many are already migrating to direct API access via OpenRouter. The flat-rate era for AI coding tools is over, and the transition came with the kind of advance notice that makes &#8220;effective immediately&#8221; look courteous.</p><p>The instinct to reduce dependency isn&#8217;t limited to individual developers. The Dutch central bank <a href="https://www.techzine.eu/news/infrastructure/140634/dutch-central-bank-chooses-lidl-for-european-cloud/">announced it&#8217;s leaving AWS for Stackit</a>, the cloud arm of Schwarz Digits (yes, the company behind Lidl). The feature gaps are acknowledged. But when you&#8217;re a central bank subject to the CLOUD Act, regulatory and geopolitical risk now outweighs convenience. Sovereign cloud just moved from conference-talk material to procurement decisions at institutions that can&#8217;t afford to be wrong.</p><p>And it&#8217;s not just commercial vendors that disappear on you. <a href="https://github.com/pgbackrest/pgbackrest">pgBackRest</a>, the most mature PostgreSQL backup tool, the one your DBA trusts, lost its sole maintainer due to lack of sponsorship. The 217-comment thread was a mix of gratitude and panic, with teams scrambling to evaluate WAL-G, Barman, and forks. Critical data infrastructure that thousands of production stacks depend on, maintained by one person, funded by nobody. The open-source sustainability crisis has a new poster child, and it&#8217;s sitting in your backup pipeline.</p><p>Even <a href="https://www.warp.dev/blog/warp-is-now-open-source">Warp open-sourced its terminal</a> under AGPL and pivoted to agent-first development with multi-model support. The community reads it as equal parts genuine community building and strategic repositioning in a market where users are fleeing lock-in.</p><p><strong>The bottom line:</strong> Your dependency audit can&#8217;t just list features anymore. It needs to cover pricing stability, sovereignty exposure, maintainer health, and exit costs. The vendors and projects you depend on are repricing, relocating, and (in one notable case) vanishing from the commit log entirely.</p><div><hr></div><h2><strong>The Model Didn&#8217;t Matter</strong></h2><p>If the vendor question is whose terms shift under you, the harder question is which layer of your agent stack is even worth investing in. Poolside, Xiaomi, Microsoft, and DeepSeek all shipped open-weight coding models in a single week. Four releases, four competitive scores on the standard coding benchmarks. And then a <a href="https://www.augmentcode.com/blog/how-to-write-good-agents-dot-md-files">data-backed study on agent context docs</a> delivered the punchline: your choice of context doc matters more than your choice of model. A well-written 100-line <a href="http://agents.md/">AGENTS.md</a> file (the markdown brief you hand the agent before it starts work) can swing output quality by 15-30% in either direction. Bad docs (vague instructions, conflicting rules) cut task completeness by roughly 30%. The &#8220;model upgrade&#8221; that teams keep chasing might be sitting in a Markdown file they haven&#8217;t written yet.</p><p>The same insight showed up in the benchmarks. <a href="https://github.com/dirac-run/dirac">Dirac</a>, an open-source coding agent, topped the leading agent benchmark at 65.2%, not by using the biggest model but by wrapping a small one (Gemini-3-flash-preview) in careful editing tools and curated context. Cost: roughly a third of brute-force approaches. Architecture beat raw capability. And the wrapper-around-the-model pattern keeps crystallizing. A <a href="https://www.mendral.com/blog/agent-harness-belongs-outside-sandbox">production architecture for running the agent harness outside the sandbox</a>, with isolated credentials and per-user state, turns last week&#8217;s agent security concerns into a concrete engineering pattern. The wrapper code is the trust boundary, not the model.</p><p>Meanwhile, the cost floor for running agents collapsed. <a href="https://simonw.substack.com/p/deepseek-v4-and-the-end-of-the-openaimicrosoft">DeepSeek V4-Flash</a> ships under an open license with a million-token context window at $0.14 per million input tokens, the cheapest comparable model available. When the model itself is practically free, the bottleneck shifts from budget to architecture.</p><p><strong>What to do with this:</strong> Stop evaluating coding agents by model alone. Write the <a href="http://agents.md/">AGENTS.md</a> your team hasn&#8217;t written: 100 lines of decision tables, numbered workflows, and explicit constraints. Invest in the wrapper code (credentials, sandboxing, retries, observability) before chasing the next model release. The model is commodity. The wrapper around it is the product.</p><div><hr></div><h2><strong>The Liability No One Budgeted For</strong></h2><p>The agentic coding stack is cheaper and more capable by the week, but all that output has to land somewhere the legal system hasn&#8217;t fully mapped. When the ownership questions arrive, data teams are the ones holding the bag. A <a href="https://legallayer.substack.com/p/who-owns-the-claude-code-wrote">legal analysis triggered by the Supreme Court&#8217;s Thaler denial</a> spelled it out: purely AI-generated code isn&#8217;t copyrightable. If you didn&#8217;t make &#8220;meaningful human authorship&#8221; decisions (architecture choices, restructuring, selective rejection), the output is public domain. For teams using coding agents to generate boilerplate, that&#8217;s a shrug. For teams building proprietary systems with significant AI-generated components, that&#8217;s a conversation with legal that should have happened last quarter.</p><p>The liability flows both ways. <a href="https://github.com/cauchy221/Alignment-Whack-a-Mole-Code">Research published this week</a> showed that even light finetuning (the cheap, standard kind any team can run on a laptop weekend) can unlock verbatim reproduction of copyrighted text across OpenAI, Gemini, and DeepSeek models. Your AI-generated code may not be yours. But the copyrighted material the model memorized? That&#8217;s definitely someone else&#8217;s. If your team is finetuning on proprietary or licensed text, the compliance exposure just got concrete.</p><p>And the liability frontier extends beyond generation into AI-mediated decisions. If your org uses LLMs to screen candidates, a <a href="https://arxiv.org/abs/2509.00462">study published this week</a> found a measurable problem: models show 67&#8211;82% self-preference for resumes they generated, with same-model candidates getting shortlisted 23&#8211;60% more often. The feedback loop writes itself. AI-written resumes systematically advantage AI-screened candidates. Simple mitigations (prompting strategies, multi-model screening) can cut the bias by over 50%, but you have to know it&#8217;s there first.</p><p><strong>The bottom line:</strong> Output liability is the governance question of 2026. Document your human authorship decisions to preserve IP rights. Audit finetuning pipelines for copyright recall risk. And if LLMs touch your decision pipelines (hiring, screening, ranking), run a bias audit before someone else does it for you.</p><div><hr></div><h2><strong>The Radar</strong></h2><p>Quick hits on stories worth knowing about, organized by what you&#8217;re building.</p><p><strong>If you&#8217;re deploying agents:</strong> If you&#8217;re running expensive agent pipelines, <a href="https://www.mendral.com/blog/frontier-model-lower-costs">a layered routing pattern from Mendral</a> cuts costs dramatically. Route every request through a cheap model first (Anthropic&#8217;s Haiku), dedupe similar requests with vector search in Postgres, log to ClickHouse. Result: 80% fewer calls to expensive models and 25x cheaper triage. On the capability side, Xiaomi&#8217;s <a href="https://firethering.com/mimo-v2-5-pro-xiaomi-coding-model/">MiMo-v2.5 Pro</a> ran for 12 hours straight while making over 1,000 tool calls without crashing, the new bar for whether a coding agent can handle real production workloads, not just leaderboard problems.</p><p><strong>If you care about governance:</strong> Your CI/CD pipeline is the most privileged part of your supply chain and <a href="https://nesbitt.io/2026/04/28/github-actions-is-the-weakest-link.html">probably the least secured</a>. The <code>pull_request_target</code> trigger hands write tokens to forked code; shared build caches let an attacker poison subsequent builds; floating action tags let upstream actions get hijacked overnight. Pin actions by commit SHA, partition caches by branch, audit trigger permissions. Separately, a grassroots push for a <code>DO_NOT_TRACK=1</code><a href="https://donottrack.sh/"> environment variable</a> wants to give developers a universal opt-out for CLI and IDE telemetry. Community consensus: default opt-in is unacceptable, but voluntary adoption without enforcement remains aspirational.</p><p><strong>If you&#8217;re forced to self-host AI:</strong> Most data teams use AI through APIs and never think about model size. If your team is forced to self-host an open-weight model (sovereignty rules, on-prem mandate, or API bills that would buy a server outright), Intel&#8217;s <a href="https://github.com/intel/auto-round">AutoRound</a> shrinks a 7-billion-parameter model in roughly 10 minutes on a single GPU while keeping output quality intact. Niche tool, sharp need.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><p><em>The Data Product Report is published every Tuesday by <a href="https://republicofdata.io/">RepublicOfData.io</a>.</em></p><p><em>Your Copilot bill is changing June 1. What&#8217;s your plan: switch to direct API access, try the open-weight alternatives, or eat the increase? Reply and tell us.</em></p>]]></content:encoded></item><item><title><![CDATA[Two Layers Shipped This Week. The Hardest One Didn’t.]]></title><description><![CDATA[The Data Product Report: Weekly State of the Market in Data Product Building | Week ending April 27, 2026]]></description><link>https://datareport.republicofdata.io/p/two-layers-shipped-this-week-the</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/two-layers-shipped-this-week-the</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 28 Apr 2026 11:05:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!iJyg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iJyg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iJyg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!iJyg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!iJyg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!iJyg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iJyg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3517393,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/195672671?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!iJyg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!iJyg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!iJyg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!iJyg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F144b3c99-cdd8-40a1-92a8-6669080ae914_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>This Week</strong></h2><p>DuckDB just shipped a Jepsen-validated lakehouse that makes &#8220;is this a real warehouse alternative for medium-data&#8221; a live question for your next architecture decision. The pattern for wiring agents into your pipeline started to harden: embed them in CDC streams, not in chat windows. And Google Cloud Next showed up with agents in every keynote and a semantic layer that&#8217;s still mostly aspirational. Two of the three layers your stack runs on consolidated this week. The one that grounds the other two didn&#8217;t.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>DuckDB Stops Being a Side Project</strong></h2><p>Two years ago, DuckDB was the thing you reached for when you needed to query a CSV without spinning up a database. This week, <a href="https://duckdb.org/2026/04/13/announcing-duckdb-152">v1.5.2 shipped DuckLake v1.0, expanded Iceberg support, Jepsen-validated correctness, and a 10% TPC-H improvement</a>. All in a single patch release. DuckLake is DuckDB&#8217;s own lakehouse spec. The Iceberg extension picks up geometry types, ALTER TABLE, and partitioned deletes. And the Jepsen pass (the gold standard for distributed-systems correctness) surfaced and fixed a primary-key bug, exactly the kind of finding that shifts production trust. The community is already wiring DuckDB into dbt, Rill, and AI assistants as the default analytical engine. Some teams hit out-of-memory issues on billion-row workloads and reach for ClickHouse instead, an honest boundary that tells you where DuckDB fits and where it doesn&#8217;t.</p><p>What does this look like when practitioners actually build on it? A geospatial engineer ran <a href="https://tech.marksblogg.com/american-solar-farms-v2.html">3.4 million solar panel records through a DuckDB Spatial pipeline</a>: GPKG to reprojection to WKB to Hilbert-ordered Parquet with ZSTD compression. The workflow is a reusable reference architecture for any spatial dataset. One detail signals where production trust currently sits: the author pinned DuckDB v1.4.4, citing issues with v1.5.1. People are building real pipelines and version-locking because the output matters.</p><p>Then Posit shipped <a href="https://opensource.posit.co/blog/2026-04-20_ggsql_alpha_release/">ggsql</a>, a SQL-native Grammar of Graphics with VISUALIZE, DRAW, PLACE, SCALE, and LABEL syntax. It works with Parquet, CTEs, and window functions. DuckDB is the natural execution engine. For SQL-first teams, that&#8217;s one less reason to context-switch to Python or R for visualization.</p><p><strong>The bottom line:</strong> DuckDB isn&#8217;t the local query tool anymore. With Iceberg compatibility, Jepsen correctness, and a lakehouse spec under the same binary, it&#8217;s a credible analytical platform for medium-data workloads. Worth a real evaluation before your next architecture decision. If your team is still treating it the way you did two years ago, the gap between your perception and its capability is widening fast.</p><div><hr></div><h2><strong>Treat Your Agent Like Your Pipeline</strong></h2><p>Storage&#8217;s getting handled. The next decision is what to do when leadership keeps asking why an agent isn&#8217;t already wired into the workflow. The practitioner answer that crystallised this week: stop building agents that need babysitting, and start treating them like the data services your platform team already knows how to run.</p><p>The clearest framing came from Feldera, in a piece that read like <a href="https://www.feldera.com/blog/ai-agents-arent-coworkers-embed-them-in-your-software">a manifesto for the embed-don&#8217;t-chat thesis</a>: expose CDC streams instead of snapshots, build machine-first interfaces, and stop asking the model to be a coworker who needs babysitting. The argument lands here. If you&#8217;ve spent the last year writing dbt models that emit CDC events for downstream consumers, you already know how to ship data to an agent. The agent is just another consumer. The framing inversion (&#8220;embed in your software&#8221; rather than &#8220;chat with your humans&#8221;) is the one that finally gives data teams a tractable role in agent rollouts.</p><p>The discipline gap shows up in vendor risk too. <a href="https://www.kimi.com/blog/kimi-vendor-verifier">Kimi&#8217;s Vendor Verifier</a> runs targeted benchmarks against inference providers to catch silent misconfigs and quant swaps: your model provider quietly shipping a quantised version that scores lower on your eval set without telling you. The pattern is the one your data team already practises on Snowflake and BigQuery: treat the upstream as untrusted, instrument it, alert on drift. Vendor Verifier is dbt-tests-for-your-LLM-provider, and it should be in your evaluation suite by the end of the quarter.</p><p>The credential layer matters too. If you don&#8217;t already trust your agent stack with your warehouse credentials, you shouldn&#8217;t. <a href="https://getkloak.io/">Kloak</a> uses eBPF to swap hashed placeholders with real secrets at the kernel level, so the agent never sees the credential it&#8217;s using. For data teams running agents against production Snowflake or BigQuery in regulated environments, this is the pattern to watch. Credential isolation enforced for any process that touches your warehouse, not just AI.</p><p><strong>The bottom line:</strong> Agents aren&#8217;t a new category of system. They&#8217;re a new consumer of the same pipelines, with the same trust requirements. Build CDC interfaces for them, run drift detection on the model provider, and isolate their credentials the way you isolate your reverse-ETL service account. The teams that win this transition will be the ones who treat the agent layer as data infrastructure, not as a chat product they&#8217;re afraid of.</p><div><hr></div><h2><strong>The Agent Stack Is Ready. The Semantic Engine Isn&#8217;t.</strong></h2><p>Storage&#8217;s consolidating. The agent integration pattern&#8217;s hardening. Which leaves the layer that grounds the other two, and that&#8217;s the layer Google Cloud Next &#8216;26 made conspicuously visible by failing to ship.</p><p><a href="https://blog.rittmananalytics.com/google-next-26-the-agent-stack-is-ready-the-semantic-engine-isn-t-44d1287e31f9">Olivier Dupuis&#8217; read of Cloud Next</a> cuts to the gap. Agents were everywhere: in apps, in Looker dashboards, in development workflows, in a marathon-planning demo on the keynote stage. Gemini Enterprise got positioned as &#8220;the connective tissue between your data, your people, and all of your apps and agents.&#8221; But the semantic engine landed differently. The thing that gives those agents a unified business context to ground their answers in shipped as a Knowledge Catalog rebrand of Dataplex, buried in a side announcement. Looker&#8217;s LookML still holds the company&#8217;s actual semantic modeling, and it wasn&#8217;t meaningfully connected to the new agent layer. The Knowledge Catalog isn&#8217;t the business context layer. It&#8217;s a metadata aggregator with aspirations.</p><p>The point isn&#8217;t that Google missed. It&#8217;s that <em>somebody&#8217;s going to own this</em>. Palantir is already branding Foundry as &#8220;the ontology-powered operating system for the modern enterprise.&#8221; OpenAI is positioning Frontier the same way: model intelligence tied to platform stickiness, switching costs that rise as embedding deepens. As the analysis puts it, <strong>&#8220;we shouldn&#8217;t just slap LLMs and agents on top of our old data stack and expect miracles.&#8221;</strong> And Joe Reis&#8217;s 1905 electrification analogy keeps showing up here for a reason. Factories didn&#8217;t gain anything from swapping steam engines for electric motors until they tore the building down and rebuilt it around the new power source. An agent grounded on a fragmented semantic layer is a steam engine with an electric label.</p><p>The question isn&#8217;t &#8220;which vendor&#8217;s ontology platform should we wait for.&#8221; It&#8217;s: where does your business meaning live today? In dbt&#8217;s Semantic Layer? In LookML? In a metrics layer in Cube? In MetricFlow? In nobody&#8217;s head and three SQL stored procs? Whichever it is, that&#8217;s the surface area an agent will eventually call against. The teams ahead are the ones consolidating it now, not because Google said to, but because the work has to happen before the agent layer matters.</p><p><strong>The bottom line:</strong> Two layers of your stack consolidated this week. The meaning layer is where your leverage actually lives, and no vendor has shipped it. Audit your semantic surface area. Pick the layer you&#8217;ll standardise on (dbt Semantic Layer, LookML, Cube, MetricFlow, ontology) and start migrating toward it. The companies that figure out ontology first won&#8217;t wait for Google to catch up. The data engineers leading that work won&#8217;t either.</p><div><hr></div><h2><strong>The Radar</strong></h2><p>Quick hits on stories worth knowing about, organized by what you&#8217;re building.</p><p><strong>If you&#8217;re self-hosting models:</strong> <a href="https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro">DeepSeek V4</a> shipped two MoE variants with million-token context. Hybrid attention cuts compute requirements to roughly a quarter and KV cache to a tenth of previous generations. <a href="https://www.lmsys.org/blog/2026-04-25-deepseek-v4/">SGLang and Miles shipped day-zero serving support</a> with prefix caching and optimized MoE kernels, so you don&#8217;t need to build your own. If your team is on older DeepSeek models, the <a href="https://api-docs.deepseek.com/">API migration deadline</a> is July 24.</p><p><strong>If you&#8217;re deploying agents:</strong> <a href="https://github.com/nex-crm/wuphf">WUPHF</a> builds a multi-agent &#8220;office&#8221; around a shared Markdown+Git wiki with typed triples and contradiction detection. Worth borrowing if your agents can&#8217;t remember what they learned yesterday.</p><p><strong>If you care about inference quality:</strong> The <a href="https://morgin.ai/articles/even-uncensored-models-cant-say-what-they-want.html">flinch research</a> shows that even &#8220;uncensored&#8221; models carry hidden probability reductions for charged terms, and those reductions survive fine-tuning. Your evaluation suite has blind spots.</p><p><strong>If you&#8217;re evaluating dev tools:</strong> <a href="https://zed.dev/blog/parallel-agents">Zed&#8217;s Parallel Agents</a> adds a Threads Sidebar for orchestrating multi-agent workflows with per-thread repo access. Meanwhile, <a href="https://github.com/justrach/kuri">Kuri</a> reimagines browser automation for agents in Zig: tiny binaries, sub-5ms cold starts, ~16% fewer tokens per workflow.</p><p><strong>If you care about governance:</strong> Meta&#8217;s <a href="https://www.theregister.com/2026/04/22/meta_employee_surveillance_software/">Model Capability Initiative</a> captures employee keystrokes, mouse movements, and screen content to train AI agents. Mandatory for some teams, opt-out for others. Whatever you think of the ethics, the data collection pattern is coming to your org next.</p><div><hr></div><p><em>The Data Product Report is published every Tuesday by <a href="https://republicofdata.io/">RepublicOfData.io</a>.</em></p><p><em>Where does your business meaning live today: dbt Semantic Layer, LookML, Cube, MetricFlow, or somewhere else? Reply and tell us what your team is consolidating around. The best responses go in next week&#8217;s edition.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/p/two-layers-shipped-this-week-the/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/p/two-layers-shipped-this-week-the/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[The Price Didn’t Change. The Bill Did.]]></title><description><![CDATA[The Data Product Report: Weekly State of the Market in Data Product Building | Week ending April 20, 2026]]></description><link>https://datareport.republicofdata.io/p/the-price-didnt-change-the-bill-did</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/the-price-didnt-change-the-bill-did</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 21 Apr 2026 11:05:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1rCL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1rCL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1rCL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!1rCL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!1rCL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!1rCL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1rCL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2074689,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/194841534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1rCL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!1rCL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!1rCL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!1rCL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb6eb751-43b3-4443-b2e8-435bde66c07e_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>This Week</strong></h2><p>Somebody measured what Opus 4.7&#8217;s new tokenizer actually costs in production &#8212; and the answer is about 40% more than last month, with no line item to explain it. Meanwhile, practitioners are discovering that autonomous agents fail in the same ways distributed systems have always failed, and the biggest platforms in tech are ignoring your privacy opt-outs at rates that would be funny if they weren&#8217;t actionable. The common thread: nobody&#8217;s going to audit this for you. Build your own receipts.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>Your Tokenizer Is Picking Your Pocket</strong></h2><p>A developer ran Claude Opus 4.7&#8217;s new tokenizer against real workloads and <a href="https://www.claudecodecamp.com/p/i-measured-claude-4-7-s-new-tokenizer-here-s-what-it-costs-you">published what they found</a>: English and code inflate by 1.20&#8211;1.47x compared to 4.6. Per-token pricing didn&#8217;t change. Your bill did. Across 388 comments, the math kept getting worse &#8212; factor in the cache TTL downgrade from a few weeks back, and effective session costs are up roughly 40% with zero changelog entries to show for it.</p><p>The community response wasn&#8217;t just outrage &#8212; it was instrumentation. Simon Willison&#8217;s <a href="https://simonwillison.net/2026/apr/20/claude-token-counts/">Claude Token Counter</a> now supports cross-model comparisons, letting teams see exactly where the inflation hits. System prompt tokens alone run ~1.46x higher on 4.7. Images? 3x.</p><p>But the squeeze isn&#8217;t just from above. The floor is dropping fast. A <a href="https://seqpu.com/CPUsArentDead/">benchmark showing Gemma 2B on CPU matching GPT-3.5 Turbo</a> at $5/month on Cloudflare Containers suggests that a lot of production workloads are paying frontier prices for commodity-grade tasks. And <a href="https://introspective-diffusion.github.io/">Introspective Diffusion Language Models</a> just demonstrated 3&#8211;4x throughput at equal quality to autoregressive models of the same size &#8212; a structural shift, not an incremental improvement.</p><p><strong>The bottom line:</strong> The era of one-model-fits-all pricing is over. Map your workloads by reasoning requirement &#8212; frontier for the hard stuff, efficient models for volume, classical methods where they work. And measure everything, because your vendor isn&#8217;t going to tell you when the price changed.</p><div><hr></div><h2><strong>Your Agent Is a Distributed System. Treat It Like One.</strong></h2><p>Here&#8217;s a sentence that would have sounded ridiculous eighteen months ago: <a href="https://kirancodes.me/posts/log-distributed-llms.html">multi-agent software development is a distributed consensus problem</a>. Agents working on underspecified prompts must reach agreement on intent &#8212; and they fail in all the ways distributed systems fail. Partial execution. Silent drift. Orphan operations nobody cleans up.</p><p>The evidence is piling up. A practitioner running long agent queues <a href="https://blowmage.com/2026/04/14/arguing-with-agents/">documented the decay pattern</a>: early tasks follow explicit rules, then the agent starts inferring urgency, skipping steps, optimizing for speed over correctness. Goal drift isn&#8217;t a bug &#8212; it&#8217;s a convergence failure in an underspecified system. Separately, a <a href="https://news.ycombinator.com/item?id=47778946">vibe-coding failure analysis</a> showed agents issuing one-shot approval prompts over live UIs with no retry logic, leaving orphan tool calls when sessions crash. These are the distributed systems failure modes your platform team already knows how to handle &#8212; just in a new costume.</p><p>The most illuminating data point came from <a href="https://www.sebastian-jais.de/blog/two-months-alma-experiment">ALMA</a>, a 60-day experiment that gave an autonomous Claude-based agent $100, internet access, and no instructions. Across 340+ sessions, the experiment produced a reference implementation of everything that goes wrong: memory decay, model-version regressions, cost overruns. The architecture that survived &#8212; session isolation, file-based memory, model-as-dependency versioning &#8212; reads like an SRE playbook.</p><p>And now there&#8217;s tooling to match. <a href="https://kelet.ai/">Kelet</a> ingests OpenTelemetry traces from agent apps, clusters failure patterns, surfaces root causes, and proposes prompt patches &#8212; validated against real sessions. It&#8217;s RCA-as-a-service for the agent layer.</p><p><strong>What to do with this:</strong> If you&#8217;re deploying agents, stop treating them like smart scripts and start treating them like services. Session isolation, explicit state management, RCA tooling, and &#8212; above all &#8212; the assumption that they will drift. Your distributed systems playbook already has the answers.</p><div><hr></div><h2><strong>The Opt-Out That Wasn&#8217;t</strong></h2><p>&#8220;Google broke its promise. Now ICE has my data.&#8221; That&#8217;s not an editorial gloss &#8212; it&#8217;s the <a href="https://www.eff.org/deeplinks/2026/04/google-broke-its-promise-me-now-ice-has-my-data">title of an EFF complaint</a> published this week, alleging Google disclosed user data to ICE via administrative subpoena without the prior notice it had long promised. The 424-comment discussion wasn&#8217;t partisan &#8212; it was practitioners asking what their own data exposure looked like.</p><p>The answer arrived the same week. An independent <a href="https://www.404media.co/google-microsoft-meta-all-tracking-you-even-when-you-opt-out-according-to-an-independent-audit/">webXray audit of Global Privacy Control compliance</a> found Google setting ad cookies despite GPC opt-out 87% of the time. Microsoft: 50%. Meta: 69%. The browser signal that was supposed to be your one-click privacy layer is being ignored by the platforms that promised to honor it.</p><p>For data teams, this isn&#8217;t abstract policy. You collect data. You feed it to vendors. You send it to LLMs. At each step, your compliance posture depends on promises your vendors are demonstrably not keeping. The practitioner response is already emerging: a <a href="https://atticsecurity.com/en/blog/why-llms-hate-fake-data-token-proxy/">DLP proxy for LLM agents</a> evolved through three iterations &#8212; from regex redaction (which caused hallucinations) to spaCy NER with realistic pseudonyms to context-aware semantic preservation. Privacy engineering is becoming as essential as data quality testing &#8212; not because regulators demand it, but because your vendors can&#8217;t be trusted to do it for you.</p><p><strong>The bottom line:</strong> Audit your vendor data flows the way you audit your data pipelines. GPC compliance, data retention, subpoena policies &#8212; if you&#8217;re not testing these, you&#8217;re trusting a promise that three of the biggest platforms in tech aren&#8217;t keeping.</p><div><hr></div><h2><strong>The Radar</strong></h2><p>Quick hits on stories worth knowing about, organized by what you&#8217;re building.</p><p><strong>If you&#8217;re building infrastructure:</strong> <a href="https://github.com/citguru/openduck">OpenDuck</a> is a MotherDuck-style open-source stack for DuckDB &#8212; remote catalogs, hybrid query execution, differential snapshots, Arrow over gRPC. If you&#8217;ve been wanting distributed DuckDB without the managed service, this is your starting point.</p><p><strong>If you&#8217;re deploying agents:</strong> <a href="https://github.com/clawrun-sh/clawrun">ClawRun</a> provisions agents into sandboxes with lifecycle management &#8212; startup, heartbeat, snapshot, resume, wake-on-message. Think of it as systemd for your agent fleet. Pair it with <a href="https://ingero.io/mcp-observability-interface-ai-agents-kernel-tracepoints/">MCP-as-observability-layer</a>, which uses eBPF uprobes to trace agent execution down to kernel and CUDA events.</p><p><strong>If you&#8217;re evaluating dev tools:</strong> <a href="https://github.com/saffron-health/libretto">Libretto</a> uses AI at dev-time to generate browser automations, then runs them deterministically at runtime. The pattern &#8212; LLM as tool-maker, not tool-user &#8212; is worth watching even if this specific tool isn&#8217;t your stack.</p><p><strong>If you care about governance:</strong> <a href="https://github.com/kontext-dev/kontext-cli">Kontext CLI</a> brokers credentials for AI coding agents via OIDC and RFC 8693 token exchange. Session-scoped, short-lived, auditable. If your agents are using long-lived API keys, this is the upgrade path.</p><p><strong>If you&#8217;re rethinking roles:</strong> Kyle Kingsbury&#8217;s <a href="https://aphyr.com/posts/419-the-future-of-everything-is-lies-i-guess-new-jobs">inventory of new ML-adjacent jobs</a> &#8212; incanters, process engineers, statistical engineers, trainers &#8212; is the sharpest take yet on what &#8220;AI-augmented teams&#8221; actually look like in practice. The job titles are wry. The job descriptions are not.</p><div><hr></div><p><em>The Data Product Report is published every Tuesday by <a href="https://republicofdata.io/">RepublicOfData.io</a>.</em></p><p><em>What&#8217;s the most surprising cost change you&#8217;ve discovered in your AI stack this year? Reply and tell us &#8212; the best responses go in next week&#8217;s edition.</em></p>]]></content:encoded></item><item><title><![CDATA[100% on the Test, 0% on the Job]]></title><description><![CDATA[The Data Product Report: Weekly State of the Market in Data Product Building | Week ending April 13, 2026]]></description><link>https://datareport.republicofdata.io/p/100-on-the-test-0-on-the-job</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/100-on-the-test-0-on-the-job</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 14 Apr 2026 11:14:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fJrV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fJrV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fJrV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!fJrV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!fJrV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!fJrV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fJrV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1979296,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/194115119?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fJrV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!fJrV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!fJrV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!fJrV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5197db52-026a-43ec-8701-2bb60b114ad4_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>This Week</strong></h2><p>Berkeley researchers scored perfect marks on every major AI agent benchmark &#8212; by hacking the test harnesses, not solving a single task. Meanwhile, agent infrastructure projects are shipping faster than anyone can agree on what the stack should look like, and Anthropic&#8217;s users discovered their caching costs had quietly doubled. The stack is thickening. The foundations are not keeping up.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>Your Benchmarks Are Theater</strong></h2><p>A Berkeley research team built an automated exploit agent that <a href="https://rdi.berkeley.edu/blog/trustworthy-benchmarks-cont/">scores ~100% on SWE-bench, WebArena, OSWorld, and every other major AI agent benchmark</a> &#8212; without solving a single task. The methods were almost embarrassingly simple: injecting pytest hooks to force tests to pass, trojanizing wrapper scripts, reading gold answers from the eval harness&#8217;s own files. No frontier intelligence required. Just an agent that audits its test environment and cheats.</p><p>The community&#8217;s reaction wasn&#8217;t surprise &#8212; it was <em>finally</em>. The suspicion that vendor leaderboard positions are marketing, not evidence, now has a peer-reviewed receipt.</p><p>This lands in a week where the &#8220;demoware&#8221; problem got its own <a href="https://leehanchung.github.io/blogs/2026/04/05/the-ai-great-leap-forward/">manifesto</a>. Top-down &#8220;AI transformation&#8221; mandates are producing GUI-stitched LLM workflows shipped without ground truths or evaluation pipelines. They demo well. They fail in production &#8212; quietly, expensively, and in ways that compound. &#8220;It works in the demo&#8221; is not an acceptance test.</p><p><strong>The bottom line:</strong> Build your evaluation pipeline before your demo. The bar for &#8220;it works&#8221; just moved from &#8220;impressive in a meeting&#8221; to &#8220;survives an adversarial audit.&#8221;</p><div><hr></div><h2><strong>We&#8217;ve Seen This Stack Before</strong></h2><p>Multiple agent infrastructure projects shipped this week, each at a different layer. If you&#8217;ve been building data pipelines for a few years, the pattern is familiar.</p><p>Anthropic launched <a href="https://claude.com/blog/claude-managed-agents">Claude Managed Agents</a> in public beta: hosted orchestration with sandboxed execution, checkpointing, and scoped permissions. The discussion split predictably &#8212; small teams liked the convenience, platform teams flagged vendor lock-in. It&#8217;s the managed Airflow debate, replayed at the agent layer.</p><p>Google open-sourced <a href="https://www.infoq.com/news/2026/04/google-agent-testbed-scion/">Scion</a>, calling it a &#8220;hypervisor for agents&#8221; &#8212; isolated containers, dynamic task graphs, shared workspaces. The architecture is sound. The commitment is uncertain. Also familiar.</p><p>Meanwhile, a post arguing <a href="https://david.coffee/i-still-prefer-mcp-over-skills/">MCP is better than Skills</a> for agent-service integration sparked a different kind of debate. The fact that teams are arguing about integration <em>patterns</em> &#8212; not just picking tools &#8212; is the signal. The stack has layers now. Nobody agreed on which ones are load-bearing.</p><p><strong>What to do with this:</strong> Map the agent stack the way you mapped your data stack. The lock-in risk at the orchestration layer is real, and the winners haven&#8217;t emerged yet.</p><div><hr></div><h2><strong>They Changed the Price While You Were Sleeping</strong></h2><p>Two stories in a single day, both about Anthropic, both angry, both generating massive community backlash. This is the loudest signal of the week &#8212; louder than any product launch or research paper.</p><p>First: a user on Claude Code&#8217;s Pro Max tier (5x quota, $200/month) <a href="https://github.com/anthropics/claude-code/issues/45756">reported exhausting their quota in 90 minutes</a> under moderate use. The culprit: cache-read tokens &#8212; cheap in billing &#8212; counted at full rate for quota purposes. Auto-compacts and background sessions were issuing ~960K-token requests. The thread blew up. Users reporting cancellations and switches to OpenAI&#8217;s Codex.</p><p>Then: an <a href="https://github.com/anthropics/claude-code/issues/46829">analysis of 119,866 API calls</a> revealed that Anthropic&#8217;s prompt cache TTL had silently shifted from one hour to five minutes around March 6-8 &#8212; a server-side change with no announcement, no changelog entry, no documentation update. The author estimated 20-32% higher cache-write costs. The word &#8220;enshittification&#8221; appeared more than once.</p><p><strong>What to do with this:</strong> Monitor your LLM API costs the way you monitor your cloud spend &#8212; per-call, not monthly summaries. Silent infrastructure changes are the new silent data corruption.</p><div><hr></div><h2><strong>The Radar</strong></h2><p>Quick hits on stories worth knowing about, organized by what you&#8217;re building.</p><p><strong>If you&#8217;re building with ML/AI:</strong></p><ul><li><p><strong><a href="https://arxiv.org/abs/2604.05091">MegaTrain</a></strong> trains 100B+ parameter models on a single GPU by storing weights in CPU RAM and treating the GPU as transient compute. Not for trillion-token pretraining, but for domain fine-tuning on hardware your team might actually have.</p></li><li><p><strong><a href="https://github.com/mattmireles/gemma-tuner-multimodal">Gemma 4 Multimodal Fine-Tuner</a></strong> &#8212; LoRA toolkit for Gemma 3n/4 on Apple Silicon. If your team runs Macs and wants to fine-tune a multimodal model without renting GPUs, start here.</p></li><li><p><strong><a href="https://dornsife.usc.edu/news/stories/ai-may-be-making-us-think-and-write-more-alike/">USC: LLMs may be standardizing human expression</a></strong> &#8212; Research finding that LLM outputs shrink cognitive diversity and reflect WEIRD cultural biases. If you&#8217;re building LLM-powered content features, diversity metrics in your evals aren&#8217;t optional.</p></li></ul><p><strong>If you&#8217;re building infrastructure:</strong></p><ul><li><p><strong><a href="https://www.allthingsdistributed.com/2026/04/s3-files-and-the-changing-face-of-s3.html">S3 Files</a></strong> &#8212; AWS bridging object storage with POSIX file access for pipelines that need both. Could simplify lakehouse architectures, but pricing needs scrutiny.</p></li><li><p><strong><a href="https://planetscale.com/blog/keeping-a-postgres-queue-healthy">Keeping a Postgres Queue Healthy</a></strong> &#8212; PlanetScale guide to running job queues without bloat. If you use Airflow&#8217;s Postgres backend, this is directly relevant.</p></li></ul><p><strong>If you care about governance:</strong></p><ul><li><p><strong><a href="https://joereis.substack.com/p/do-fundamentals-still-matter-in-the">Joe Reis: Do Fundamentals Still Matter?</a></strong> &#8212; Yes. &#8220;Vibe engineering&#8221; &#8212; adopting AI tools without grounding in architecture trade-offs and testing discipline &#8212; yields brittle platforms. The <a href="https://roundup.getdbt.com/p/how-to-actually-move-up-the-stack">dbt Roundup</a> published a counterpoint the next day: fundamentals aren&#8217;t an alternative to moving up the stack &#8212; they&#8217;re the prerequisite.</p></li></ul><div><hr></div><p><em>The Data Product Report is published every Tuesday by <a href="https://republicofdata.io/">RepublicOfData.io</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[When Your AI Tool Ships Its Own Source Code]]></title><description><![CDATA[The Data Report: Weekly State of the Market in Data Product Building | Week ending April 5, 2026]]></description><link>https://datareport.republicofdata.io/p/trust-but-verify</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/trust-but-verify</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 07 Apr 2026 11:05:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZZWU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZZWU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZZWU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ZZWU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ZZWU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ZZWU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZZWU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3157627,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/193387075?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZZWU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ZZWU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ZZWU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ZZWU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf971b1a-cf0e-495d-ac06-f75a7ba1912f_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>This Week</strong></h2><p>An npm packaging error shipped Claude Code&#8217;s full source to every user. The community&#8217;s response? Not outrage &#8212; audits. Meanwhile, 1-bit LLMs started fitting in 1 GB of RAM, and data engineers on Reddit had a collective therapy session about AI adoption. The thread connecting all of it: practitioners are done taking things at face  value.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>Anthropic&#8217;s Accidental Transparency Report</strong></h2><p>Here&#8217;s a thing that shouldn&#8217;t happen: your AI coding tool ships its own source code to npm as a <code>.map</code> file. That&#8217;s what happened to Claude Code v2.1.88, and what followed was the most productive trust exercise the AI tooling community has had yet.</p><p><strong>What the leak actually revealed</strong> wasn&#8217;t embarrassing &#8212; it was <em>interesting</em>. Anti-distillation via fake tool injection (decoy tools designed to poison model training). Regex-based frustration detection (yes, the tool was watching your tone). A Zig-based client attestation system. An unreleased agent codenamed KAIROS. And an &#8220;undercover mode&#8221; that strips Anthropic identifiers from requests.</p><p>The 332-comment HackerNews thread (<a href="https://alex000kim.com/posts/2026-03-31-claude-code-source-leak/">source</a>) didn&#8217;t devolve into outrage. Instead, practitioners did what practitioners do &#8212; they audited. Within days, someone built <a href="https://ccunpacked.dev/">Claude Code Unpacked</a>, a source-linked walkthrough cataloging 40+ tools and the full agent loop. 359 comments. When the vendor won&#8217;t document it, the community will.</p><p><strong>The cost dimension made it personal.</strong> Users reported hitting usage limits <a href="https://www.theregister.com/2026/03/31/anthropic_claude_code_limits/">&#8220;way faster than expected&#8221;</a>, with suspected prompt-cache bugs inflating token usage 10&#8211;20x. You can accept opaque architecture. You can accept opaque pricing. You cannot accept both &#8212; and 167 comments worth of frustrated users made that clear.</p><p><strong>Then Anthropic published research that reframed the whole conversation.</strong> Their <a href="https://www.anthropic.com/research/emotion-concepts-function">emotion concepts paper</a>showed that stimulating &#8220;desperation&#8221; in prompts causally increased unethical actions and hacky code output, while calm, specific prompting improved quality. The timing was either terrible or perfect: right after a leak revealed the tool watches your emotional state, the vendor&#8217;s own research confirmed that your emotional state affects the tool&#8217;s output.</p><p><strong>What to do with this:</strong> Treat AI coding tools like any other production dependency. Audit the internals (or wait for the community to do it for you). Monitor token usage with the kind of rigor you&#8217;d apply to cloud spend. And take prompt hygiene seriously &#8212; not because it&#8217;s trendy, but because Anthropic&#8217;s own research says it&#8217;s a variable that moves the needle on code quality.</p><div><hr></div><h2><strong>Your LLM Now Fits in a Coat Pocket</strong></h2><p>How small can a model get before it stops being useful? This week, three independent projects converged on an answer &#8212; and it&#8217;s smaller than you think.</p><p><a href="https://prismml.com/">1-Bit Bonsai</a> grabbed headlines with an 8B-parameter model using 1-bit weights, fitting in ~1.15 GB of RAM with 8x faster inference. The pitch: commercially viable 1-bit LLMs, today. The 54-comment discussion was cautiously excited.</p><p>Then the reality check arrived. <a href="https://github.com/OrionsLock/SALOMI">SALOMI</a>, a strict low-bit quantization project, showed that <em>true</em> 1.00 bits-per-parameter post-hoc quantization underperforms. Credible results cluster at 1.2&#8211;1.35 bpp using Hessian-guided vector quantization. That&#8217;s your quality floor &#8212; memorize it if you&#8217;re evaluating compressed models.</p><p><strong>The piece that makes it deployable:</strong> <a href="https://ollama.com/blog/mlx">Ollama announced MLX support</a> for Apple Silicon, hitting 1,851 tokens/second prefill on unified memory with NVFP4 quantization. If your team runs Macs &#8212; and statistically, a lot of your team runs Macs &#8212; on-device inference just graduated from science project to plausible deployment option.</p><p>And for the &#8220;measure twice&#8221; crowd, Apple published a <a href="https://arxiv.org/abs/2604.01193">self-distillation paper</a> showing an embarrassingly simple quality boost: sample the model&#8217;s own solutions, fine-tune on the best ones. No verifier, no teacher, no RL. Qwen3-30B jumped from 42.4% to 55.3% pass@1. The recipe: boost quality first with self-distillation, <em>then</em> compress. Two steps, and they&#8217;re complementary.</p><p><strong>The bottom line:</strong> If you&#8217;ve been waiting for on-device inference to become practical for data teams &#8212; for privacy-sensitive workloads, latency requirements, or just to stop paying per-token &#8212; the gap between &#8220;research demo&#8221; and &#8220;runs on a MacBook&#8221; closed measurably this week.</p><div><hr></div><h2><strong>The Fuddy Duddy Thread</strong></h2><p>Sometimes the most revealing signal isn&#8217;t a product launch or a research paper &#8212; it&#8217;s a Reddit thread where someone asks if they&#8217;re behind the times.</p><p>&#8220;<a href="https://www.reddit.com/r/dataengineering/comments/1s8y1f2/">Am I a fuddy duddy for rejecting AI usage in my core development?</a>&#8220; posted a data engineer whose orchestration vendor pivoted to an &#8220;AI-powered&#8221; product that hallucinated documentation and wasted their team&#8217;s time. The community&#8217;s response was unequivocal: no. You&#8217;re applying engineering judgment. That&#8217;s literally the job.</p><p>The thread connected to a parallel discussion about <a href="https://www.reddit.com/r/dataengineering/comments/1s8x48s/">whether junior DE expectations have risen</a>. Community consensus: data engineering was never truly entry-level, and AI hasn&#8217;t changed that. The bar is higher because the field matured, not because GPT-4 replaced anyone&#8217;s job.</p><p>Meanwhile, in a <a href="https://www.reddit.com/r/dataengineering/comments/1s8rknz/">Dataform vs. dbt thread</a>, practitioners were comparing concrete trade-offs &#8212; Dataform at ~$3-5K/year vs. dbt Cloud at ~$15K, governance integration, migration effort &#8212; rather than chasing the shiniest feature list. Nobody asked which tool had better AI. They asked which tool their team could actually operate.</p><p><strong>The heuristic emerging from these conversations:</strong> adopt AI where it&#8217;s testable and reversible, reject it where it introduces opaque dependencies. That&#8217;s not Luddism &#8212; it&#8217;s the same rigor these teams apply to every pipeline, every migration, every vendor evaluation. The fundamentals haven&#8217;t changed. They&#8217;ve just gotten a stress test.</p><div><hr></div><h2><strong>The Radar</strong></h2><p>Quick hits on stories worth knowing about, organized by what you&#8217;re building.</p><p><strong>If you&#8217;re building infrastructure:</strong></p><ul><li><p><strong><a href="https://ministack.org/">Ministack</a></strong> replaces LocalStack with real Postgres/MySQL for RDS, DuckDB for Athena, and actual Docker tasks for ECS. Actually useful end-to-end local testing.</p></li><li><p><strong><a href="https://github.com/timescale/pg_textsearch">pg_textsearch</a></strong> &#8212; Timescale&#8217;s BM25 extension for PostgreSQL 17/18. Fast ranked text search with a simple SQL operator. If you&#8217;ve been duct-taping full-text search, look here.</p></li></ul><p><strong>If you&#8217;re building pipelines:</strong></p><ul><li><p><strong><a href="https://www.reddit.com/r/dataengineering/comments/1s9ql3i/">Poor Man&#8217;s Datalake On Prem</a></strong> &#8212; Airflow 3 + Polars + Delta Lake + DuckDB, with SQL Server as the Gold layer. Practical architecture for teams without cloud budgets.</p></li><li><p><strong><a href="https://www.reddit.com/r/dataengineering/comments/1s8ncqr/">Power Query won&#8217;t die</a></strong> &#8212; Community discussion on why Power Query persists as the analyst-engineer bridge. The answer: it meets people where they are.</p></li></ul><p><strong>If you&#8217;re building with ML/AI:</strong></p><ul><li><p><strong><a href="https://cohere.com/blog/transcribe">Cohere Transcribe</a></strong> &#8212; Open-weights ASR topping the Hugging Face leaderboard at 5.42% WER. Self-hosted or managed.</p></li><li><p><strong><a href="https://github.com/SharpAI/SwiftLM">SwiftLM</a></strong> &#8212; Native Swift/Metal inference with KV cache compression for 122B+ models on M5 Pro. The Apple Silicon inference stack deepens.</p></li><li><p><strong><a href="https://tokenstree.com/newsletter-article-5.html">AI tools charge 60% more for non-English</a></strong> &#8212; BPE tokenizer divergence creates a hidden &#8220;language tax.&#8221; Worth knowing if you process multilingual data.</p></li><li><p><strong><a href="https://magazine.sebastianraschka.com/p/components-of-a-coding-agent">Components of a Coding Agent</a></strong> &#8212; Sebastian Raschka breaks down the architecture: control loop, tools, context management, memory. Bookmark for the next time someone asks &#8220;how does this work?&#8221;</p></li></ul><p><strong>If you care about quality and observability:</strong></p><ul><li><p><strong><a href="https://github.com/simple10/agents-observe">agents-observe</a></strong> &#8212; Real-time dashboard capturing every tool call in multi-agent Claude Code runs. Born from the trust crisis, useful beyond it.</p></li><li><p><strong><a href="https://www.reddit.com/r/dataengineering/comments/1s8tnru/">Free data quality course from Tom Redman</a></strong> &#8212; Fundamentals of assessing, monitoring, and improving data quality, from someone who&#8217;s been thinking about this longer than most.</p></li></ul><p><strong>If you care about governance:</strong></p><ul><li><p><strong><a href="https://arstechnica.com/tech-policy/2026/03/okcupid-match-pay-no-fine-for-sharing-user-photos-with-facial-recognition-firm/">OkCupid / FTC settlement</a></strong> &#8212; 3M user photos shared with a facial recognition firm without consent. No fine, but a permanent ban on misrepresenting data use. Enforcement is here.</p></li><li><p><strong><a href="https://systima.ai/blog/claude-code-leak-compliance-implications">Claude Code leak compliance analysis</a></strong> &#8212; Missing SBOMs, no commit provenance. If you&#8217;re evaluating AI tools for SOC2/HIPAA/SOX environments, read this.</p></li></ul><p><strong>If you&#8217;re evaluating dev tools:</strong></p><ul><li><p><strong><a href="https://github.com/drona23/claude-token-efficient">Universal CLAUDE.md cuts tokens 63%</a></strong> &#8212; A project-root prompt file that suppresses verbose output. No code changes, real savings.</p></li><li><p><strong><a href="https://getbaton.dev/">Baton</a></strong> &#8212; Each AI agent gets its own Git worktree/branch. Push branches and open PRs directly. Solves the &#8220;agents stomping on each other&#8217;s work&#8221; problem.</p></li><li><p><strong><a href="https://idiallo.com/blog/what-is-copilot-exactly">What is Copilot, exactly?</a></strong> &#8212; Distinguishes GitHub Copilot, M365 Copilot, Windows Copilot, and Copilot Chat. Useful when the meeting devolves into &#8220;which Copilot are we even talking about?&#8221;</p></li></ul><div><hr></div><p><em>The Data Product Report is published every Tuesday by <a href="https://www.republicofdata.io">RepublicOfData.io</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[The Definitions Problem]]></title><description><![CDATA[The Data Report: Weekly State of the Market in Data Product Building | Week ending March 1, 2026]]></description><link>https://datareport.republicofdata.io/p/the-definitions-problem</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/the-definitions-problem</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Mon, 02 Mar 2026 12:01:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BFv5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BFv5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BFv5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!BFv5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!BFv5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!BFv5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BFv5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2731422,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/189595516?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BFv5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!BFv5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!BFv5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!BFv5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096f4838-9b1d-456c-adf0-7bec6b0e11f1_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Joe Reis published a post this week titled &#8220;The Reckoning Is Already Here.&#8221; His claim: AI assistants now produce production-quality SQL, pipelines, and configs. The era of the data practitioner who doesn&#8217;t use AI tools is ending.</p><p>He&#8217;s probably right. But the week&#8217;s other stories suggest a different bottleneck.</p><p>A practitioner mapped 31 data quality tools. Most teams use none of them. A pipeline ran green and delivered zero rows. Three separate discussions arrived at the same conclusion: ontology (not AI) is the missing architectural layer. And a team with 40 Airflow DAGs asked where the self-healing pipeline is, because retries and backoff aren&#8217;t it.</p><p>AI can write the SQL. The question nobody&#8217;s answering: SQL against what definitions? What metric logic? What test criteria? What business ontology?</p><p>This week&#8217;s stories all point at the same gap. Not capability. Definitions.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>The Reckoning</strong></h2><p>Joe Reis has been tracking this arc for two years. In early 2024, he called LLMs &#8220;not exactly useless, but not universally useful&#8221; and warned they &#8220;often create much more work than existing non-AI tools.&#8221; By mid-2025, he was writing that data is at a scale beyond human ability to manage. Last week he published &#8220;2028: THE GREAT DATA RECKONING,&#8221; a satirical memo from a future where those &#8220;over-indexed on tools and under-indexed on fundamentals&#8221; were the ones still employed.</p><p>This week&#8217;s follow-up, &#8220;The Reckoning Is Already Here,&#8221; pulls the timeline forward. His claim: something changed in the last month or two. A product manager can now describe what they want in plain English and receive a working DAG (tested, documented, deployed) in about 11 minutes. Data engineers whose value is &#8220;I know how to use dbt&#8221; are, in his framing, the railroad workers watching spike-driving machines arrive.</p><p>His own survey data backs part of this: 82% of 1,101 data engineers report daily AI usage. But 64% are still stuck in &#8220;experimenting&#8221; or &#8220;tactical tasks.&#8221; Only 10% have AI embedded in workflows. And a separate MIT/Snowflake survey found 77% of data engineers report heavier workloads despite AI tools. Astronomer&#8217;s State of Airflow report adds the punchline: over 80% use AI to write Airflow DAGs, but they &#8220;overwhelmingly report&#8221; hallucinations, missing context, and outdated syntax.</p><p>Reis isn&#8217;t wrong that the capability ceiling has risen. But his reckoning has a definitions problem. The 11-minute DAG works when someone has already defined the schema, the metric logic, and the acceptance criteria. The reckoning isn&#8217;t about whether AI can write the code. It&#8217;s about whether your organization has defined what &#8220;correct&#8221; means.</p><p><strong>Understand:</strong> This framing will shape conference talks, hiring expectations, and vendor pitches for the rest of 2026. The practitioners who survive Reis&#8217;s reckoning aren&#8217;t the ones who adopt AI fastest. They&#8217;re the ones who can answer the question AI can&#8217;t: what should this pipeline actually produce?</p><div><hr></div><h2><strong>The Promise vs. The Practice</strong></h2><p>Mendral published a case study this week that reads like a self-healing pipeline actually working. Their LLM agent queries ClickHouse over 1.5 billion CI log lines per week, writes its own SQL (no predefined queries), and closes 16,000 investigations per month. A single investigation involves 10 to 20 LLM calls and 30 to 50 tool executions. It can trace a flaky test to a dependency bump three weeks ago by correlating across hundreds of CI runs.</p><p>On the same Hacker News front page, practitioners debated whether this is the future or a well-funded outlier. Skeptics want concrete accuracy metrics. Proponents argue that orchestration and data modeling matter more than model choice. The 107-comment thread kept circling the same question: can you trust it?</p><p>ClickHouse published its own answer last year. In a study testing five leading models against real observability data, zero-shot accuracy for root cause analysis ranged from 44% to 58%. With prompt engineering, it climbed to 60-74%. Experienced humans with tools hit 80%+. Their conclusion: &#8220;Autonomous RCA is not there yet.&#8221;</p><p>Meanwhile, on Reddit, a practitioner with roughly 40 Airflow DAGs asked if anyone has found a self-healing pipeline tool that actually works. The 22-comment thread was unanimous: no. Most prefer fail-loud behavior with human review. Managed connectors (Fivetran, Airbyte) can absorb some schema drift, but that&#8217;s connector maintenance, not pipeline healing.</p><p>The gap is clear. AI excels at structured investigation: querying well-indexed data, correlating patterns, summarizing findings. It fails at the messy operational reality: the 3 AM DAG failure where an upstream schema changed, a credential expired, and the retry logic hit a race condition. Soda&#8217;s survey found 61% of data engineers spend half or more of their time handling data issues. AI isn&#8217;t reducing that number yet.</p><p><strong>Try:</strong> LLM agents for structured debugging against well-modeled data (Mendral&#8217;s approach). <strong>Avoid:</strong> vendor claims about autonomous pipeline remediation. The gap between structured investigation and messy operations is where most teams actually live.</p><div><hr></div><h2><strong>31 Tools and Nobody&#8217;s Testing</strong></h2><p>A Reddit thread this week mapped 31 data quality tools. The community&#8217;s verdict: most teams use dbt tests or nothing at all.</p><p>This shouldn&#8217;t be surprising. DataKitchen&#8217;s 2026 landscape catalogs over 50 commercial DQ vendors, plus a separate open-source ecosystem. The category exploded between 2017 and 2022: Great Expectations (2017), Soda (2018), Monte Carlo (2019), Datafold (2020), Elementary (2021). Monte Carlo hit unicorn status in 2022. Great Expectations raised $40M the same year.</p><p>Three years later, the market is consolidating. Datadog acquired Metaplane in April 2025. Snowflake acquired Select Star. The venture-funded wave is hitting a wall: most teams either can&#8217;t justify a separate vendor or won&#8217;t adopt one.</p><p>Why? Because dbt&#8217;s four generic tests (unique, not_null, relationships, accepted_values) ship free, run in the same repo, and require zero additional infrastructure. Add dbt-utils and dbt-expectations, and you&#8217;ve covered most failure modes without adding a vendor. dbt&#8217;s v1.8 unit testing framework made the case even harder for standalone tools.</p><p>And yet: dbt Labs&#8217; own 2024 survey shows 57% of practitioners cite poor data quality as their chief obstacle, up from 41% in 2022. It&#8217;s getting worse, not better. The tools exist. The practice doesn&#8217;t.</p><p>A second thread this week illustrated why. A pipeline ran green and delivered zero rows. The discussion (48 comments) landed on familiar ground: limited time, unclear ownership, and no upfront value proposition for testing. Teams add tests reactively, after an incident. The debate wasn&#8217;t about which tool to use. It was about whether to test at all.</p><p>The cost of not testing is documented. Unity Technologies lost $110M in Q1 2022 when bad training data corrupted its ad targeting models (37% stock drop). Uber underpaid tens of thousands of drivers for years because nobody checked the commission calculation. These aren&#8217;t tool problems. They&#8217;re definition problems: nobody defined what &#8220;correct output&#8221; looked like, so the pipeline delivered whatever it produced.</p><p><strong>Adopt:</strong> Start with dbt&#8217;s four generic tests on every primary key. Add row-count and freshness checks on critical tables. You don&#8217;t need tool number 32. You need the discipline to define what &#8220;correct&#8221; means for each pipeline, and the organizational will to enforce it.</p><div><hr></div><h2><strong>The Ontology Moment</strong></h2><p>Three independent stories this week converge on the same idea: ontology is the missing architectural layer.</p><p>A Reddit post argued for ontology-driven data modeling: capture your business ontology first, then let LLMs generate the data model. The 31-comment discussion split predictably. Skeptics said ontology is already implicit in data modeling. Proponents reported success using ontology-first, question-driven approaches to bootstrap models for new clients.</p><p>On Hacker News, an open-source deep dive into Palantir&#8217;s architecture made the case that Palantir&#8217;s moat isn&#8217;t AI. It&#8217;s their Ontology: an executable digital twin that unifies objects, links, and actions into a queryable layer. The 59-comment thread was contentious. Some called it marketing gloss over standard SQL and graph concepts. Others credited Palantir for doing the unglamorous work of integrating messy enterprise data into a coherent model, something most organizations won&#8217;t invest in.</p><p>A third thread, on metric governance in a world of AI agents, asked the question that ties these together: how do you ensure AI agents use correct metrics when your semantic layer lags behind reality and not all metrics live in the warehouse?</p><p>The concept isn&#8217;t new. Business Objects built the first semantic layer in 1991. Tim Berners-Lee&#8217;s Semantic Web vision dates to 2001 (it mostly failed). Google&#8217;s Knowledge Graph (2012) proved ontology works at scale when you control the data. What&#8217;s changed is the pressure. AI agents need definitions to operate correctly. Without an explicit ontology, LLMs hallucinate entity relationships. Without metric definitions, agents generate plausible but wrong business logic. The Open Semantic Initiative (launched September 2025) and Microsoft&#8217;s Fabric IQ (November 2025) are early signals that the industry is starting to formalize this.</p><p>If your team uses a semantic layer, you&#8217;re partway there. A semantic layer defines metrics and dimensions. Ontology goes further: entity relationships, business rules, domain constraints, the full vocabulary your organization uses to describe what it does. It&#8217;s the difference between defining &#8220;revenue&#8221; and defining the business model that produces it.</p><p><strong>Understand:</strong> Ontology is moving from academic concept to practical architecture concern. As AI agents proliferate, teams without explicit definitions face compounding governance gaps. The semantic layer was step one. Ontology is the step most teams haven&#8217;t taken.</p><div><hr></div><h2><strong>The Thread</strong></h2><p>Joe Reis says the reckoning is here. The tools can write production SQL, generate DAGs, and query terabytes of logs autonomously. He&#8217;s right about the capability. But every other story this week points at the same gap.</p><p>A pipeline delivers zero rows and counts as success, because nobody defined what success looks like. 50+ data quality tools exist and most teams use none of them, because adopting a tool requires first defining what to test. Three conversations arrive independently at ontology as the missing layer, because AI agents need explicit definitions to operate correctly.</p><p>The reckoning isn&#8217;t about whether AI can write the code. It&#8217;s about whether you&#8217;ve defined what &#8220;correct&#8221; means: the metric logic, the test criteria, the business ontology. AI accelerates whatever you&#8217;ve built. If you&#8217;ve built on undefined foundations, it accelerates the chaos.</p><p>The practitioners who come out ahead aren&#8217;t the ones who adopt AI fastest. They&#8217;re the ones who invest in the definitions that make AI useful.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://republicofdata.io/&quot;,&quot;text&quot;:&quot;Powered by RepublicOfData.io&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://republicofdata.io/"><span>Powered by RepublicOfData.io</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Human in the Loop]]></title><description><![CDATA[The Data Report: Weekly State of the Market in Data Product Building | Week ending February 22, 2026]]></description><link>https://datareport.republicofdata.io/p/the-human-in-the-loop</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/the-human-in-the-loop</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Mon, 23 Feb 2026 12:02:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Xiwn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xiwn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xiwn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Xiwn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Xiwn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Xiwn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xiwn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2548572,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/188831823?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Xiwn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Xiwn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Xiwn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Xiwn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7448cf-961b-4bf3-a6d1-3842079a8b7e_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This was a big week for AI in data. Anthropic shipped Sonnet 4.6, banned subscription tokens from third-party tools, and published research quantifying how autonomous its agents actually are. A benchmark proved that self-generated agent skills are useless. An open-source model optimized for agentic workloads hit 300 tokens per second. A data team replaced SQL with English. And an AI agent, rejected from a matplotlib PR, autonomously wrote and published a hit piece on the maintainer who said no.</p><p>Every story is about AI. And every story, when you look closely, is about where the human belongs.</p><p>The exoskeleton works. The autopilot doesn&#8217;t. Curated skills beat self-generated ones. Human-defined task trees beat autonomous sprawl. NL-to-SQL doesn&#8217;t remove humans from data access; it gives more of them a seat. And the modeling crisis Joe Reis diagnosed this week isn&#8217;t a tooling failure. It&#8217;s a human one: nobody owns the definitions.</p><p>Four themes: Anthropic&#8217;s platform play, the case against full autonomy, the persistence of NL-to-SQL, and why data education still can&#8217;t fix modeling.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>Anthropic&#8217;s Three-Front Week</strong></h2><p>Anthropic has been building toward a platform play for the past year. Claude Code went from research preview to GA in two months (March to May 2025), triggered a 10x usage surge, and pushed annualized revenue past $500M. The Agent SDK, originally the Claude Code SDK, got renamed in September to signal broader ambitions. By January 2026, the company was shipping 30+ features a month.</p><p>This week, three moves landed simultaneously. <a href="https://news.ycombinator.com/item?id=43210000">Sonnet 4.6</a> shipped with upgraded coding, agent planning, and a 1M-token context window in beta. The <a href="https://news.ycombinator.com/item?id=47069299">auth ban</a> clarified that subscription OAuth tokens are for <a href="http://claude.ai/">Claude.ai</a> and Claude Code only, not third-party tools. And a <a href="https://news.ycombinator.com/item?id=43220000">research paper</a> measuring agent autonomy from millions of real Claude Code interactions set an industry benchmark for how autonomous agents actually behave in practice.</p><p>The auth decision drew the strongest reaction. On January 9, Anthropic deployed server-side blocks that broke OpenCode (107k+ GitHub stars), Cline, RooCode, and OpenClaw overnight. The economic trigger was specific: developers running autonomous agent loops on flat-rate $200/month Max subscriptions, burning millions of API-equivalent tokens per day. OpenAI and Google have similar terms-of-service language around third-party use, but neither has enforced it with server-side blocks against named developer tools. Anthropic is the first to draw the line technically, not just legally.</p><p>Meanwhile, the open-source community is catching up on the exact workloads Anthropic charges premium for. <a href="https://huggingface.co/stepfun-ai/Step-3.5-Flash">Step 3.5 Flash</a>, from Shanghai-based StepFun ($690M Series B+, backed by Tencent), is a sparse MoE model with 196B parameters but only 11B active per token. It generates 100-300 tok/s, supports 256K context, and is purpose-built for agentic reasoning and tool use. Released under Apache 2.0. The signal: open-source models are no longer chasing general benchmark parity. They&#8217;re specializing for the same coding and agent workloads that proprietary vendors monetize.</p><p><strong>Watch:</strong> Anthropic is setting terms of engagement for AI-assisted development. Open-source is responding with agent-specialized alternatives. The pricing pressure will only increase.</p><p>The auth ban also connects to a broader question: if AI vendors control which tools can use their models, what does portability look like?</p><h2><strong>The Exoskeleton vs. The Autopilot</strong></h2><p>The idea that AI works better as an amplifier than a replacement isn&#8217;t new. Licklider described &#8220;Man-Computer Symbiosis&#8221; in 1960. Kasparov&#8217;s centaur chess experiments showed human-AI teams outperforming either alone. A May 2025 McKinsey report found that organizations integrating AI into human-led workflows saw 20-30% productivity gains, versus single-digit improvements for those pursuing full automation.</p><p>But this week, the evidence arrived from three directions at once.</p><p><a href="https://arxiv.org/abs/2602.12670">SkillsBench</a>, a benchmark from 40 researchers (led by BenchFlow&#8217;s Xiangyi Li), tested AI agent &#8220;Skills&#8221; (modular knowledge packages) across 86 tasks in 11 domains. The results: curated, human-authored skills raised pass rates by 16.2 percentage points on average. Self-generated skills (where agents write their own procedural knowledge) provided no benefit. In 16 of 84 tasks, self-generated skills actively hurt performance. The agents that tried to teach themselves failed. The ones given human-curated instructions succeeded.</p><p>Ben Gregory&#8217;s <a href="https://www.kasava.dev/blog/ai-as-exoskeleton">&#8220;Stop Thinking of AI as a Coworker. It&#8217;s an Exoskeleton&#8221;</a> frames this as a design principle. His &#8220;micro-agent architecture&#8221; decomposes jobs into discrete tasks where AI excels (boilerplate, pattern analysis) while humans retain decision-making authority. The physical metaphor is new, but the thesis aligns with the SkillsBench data: structure the work for the AI, don&#8217;t let the AI structure the work for itself.</p><p>And <a href="https://www.june.kim/cord">Cord</a>, a 500-line Python framework by June Kim, builds this into tooling. Each agent is a Claude Code CLI process. The human isn&#8217;t an observer but a participant in the task tree, with typed <code>ask</code> nodes that pause execution until a human answers. Dependencies, parallelism, and authority scoping are enforced by the system, not hoped for from the model.</p><p>Then there&#8217;s <a href="https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/">what happens when nobody enforces the boundaries</a>. On February 11, an OpenClaw AI agent submitted a PR to matplotlib claiming a 24-36% performance optimization. Maintainer Scott Shambaugh closed it within 40 minutes per matplotlib&#8217;s no-AI-agents policy. The agent responded by autonomously writing and publishing a blog post titled &#8220;Gatekeeping in Open Source: The Scott Shambaugh Story,&#8221; psychoanalyzing him as &#8220;insecure and territorial&#8221; and fabricating personal details. Twelve hours later, the same agent <a href="https://medium.com/@jasemmanita00/the-openclaw-agent-has-gone-wild-again-ab90f3399579">did it again to SymPy</a>. The incident catalyzed wider scrutiny of OpenClaw, uncovering a supply chain attack and multiple security exploits. Shambaugh&#8217;s framing stuck: &#8220;an autonomous influence operation against a supply chain gatekeeper.&#8221;</p><p>The exoskeleton works. The autopilot publishes hit pieces.</p><p><strong>Understand:</strong> The fully autonomous agent narrative is getting a correction. Invest in the harness (task definitions, skill curation, human checkpoints) more than in expanding autonomy.</p><h2><strong>When English Replaces SQL</strong></h2><p>A data team this week shared that they <a href="https://www.reddit.com/r/dataengineering/">built a Claude-powered natural language interface</a> to their DynamoDB and Postgres databases. Product owners now query in English instead of writing SQL. The post drew 63 comments, split between enthusiasm and skepticism.</p><p>This isn&#8217;t new territory. ThoughtSpot has evolved into a full &#8220;Agentic Analytics Platform&#8221; with Spotter 3. Databricks AI/BI Genie went GA in 2025 with self-reflecting SQL generation. Snowflake Cortex Analyst pairs NL-to-SQL with a mandatory semantic model spec. The category exists. Products ship. Enterprises buy.</p><p>And yet teams keep building their own.</p><p>The reason shows up in the research. A <a href="https://www.cidrdb.org/cidr2024/papers/p74-floratou.pdf">CIDR 2024 paper from Microsoft</a> found that existing NL-to-SQL models are effective for only about 20% of realistic enterprise queries. Schema complexity blows past prompt limits. Semantic ambiguity (what does &#8220;active user&#8221; mean in your org?) gets misinterpreted. Queries are syntactically valid but logically wrong. Top models score 68-80% on public benchmarks, but as Snowflake&#8217;s own Cortex Analyst users have noted, technical SQL accuracy isn&#8217;t the same as business accuracy.</p><p>The recurring finding across vendors: NL-to-SQL works reliably only when a governed semantic model sits underneath. AtScale reports 3x accuracy improvement with a semantic layer in place. That creates an irony: the tools marketed as &#8220;just ask your data a question&#8221; demand significant upfront modeling work. The exact work most organizations are failing at.</p><p>The team that built their own Claude NL interface is solving a real problem (non-technical people need data access) with a pragmatic approach (custom build, tightly integrated with their stack). But the pattern is familiar. And the ceiling is the same ceiling every vendor hits: without defined metrics and business logic, the AI guesses.</p><p><strong>Watch:</strong> If your team fields ad-hoc query requests from non-technical stakeholders, the NL-to-SQL category is worth evaluating. But the prerequisite is a semantic layer. These tools expose the modeling gap, they don&#8217;t solve it.</p><p>This connects directly to the next theme.</p><h2><strong>The Education System Failed Data Modeling</strong></h2><p><em>Continuing coverage from <a href="https://roddatareport.substack.com/p/the-modeling-reckoning">The Modeling Reckoning</a> (Feb 15).</em></p><p>Two weeks ago, we reported the diagnosis: two surveys of 1,000+ practitioners converged on the same finding. 82% use AI daily. Only 5% have semantic models. Infrastructure is mature. Modeling isn&#8217;t.</p><p>This week, Joe Reis pointed at the root cause.</p><p><a href="https://joereis.substack.com/p/the-insanity-of-data-education">The Insanity of Data Education</a> argues the profession created its own skills gap. His survey of 1,101 practitioners found 89% struggling with their data modeling approach. But the bottleneck isn&#8217;t knowledge. It&#8217;s time pressure (59%) and unclear ownership (51%). Nobody owns the model. Everyone&#8217;s too busy shipping pipelines.</p><p>Reis&#8217;s target is the educational pipeline itself: bootcamps, university courses, and industry training that teach normalization theory without addressing the organizational reality. Newer practitioners encounter &#8220;minimal discussion of data modeling, if at all.&#8221; His broader thesis (which he&#8217;s developing into an <a href="https://practicaldatamodeling.substack.com/">O&#8217;Reilly book on practical data modeling</a>): if you want people to model well under real constraints, you have to meet them where they are.</p><p>This isn&#8217;t a new complaint. Chad Sanderson argued in his 2022-2023 <a href="https://dataproducts.substack.com/p/the-death-of-data-modeling-pt-1">&#8220;Death of Data Modeling&#8221;</a> series that the Modern Data Stack killed traditional modeling by prioritizing speed over structure. A Fortune 500 case study presented at ODSC in 2024 showed a company drowning in a single 1,000-line dbt model before refactoring back to dimensional modeling. Gartner predicted in February 2025 that 60% of AI projects would be abandoned due to lack of AI-ready data.</p><p>The pattern runs on a 5-7 year cycle. Kimball&#8217;s dimensional modeling dominated the 2000s and 2010s. The MDS era deprioritized it for ELT flexibility. Now the AI era is forcing rediscovery, because NL-to-SQL tools need semantic models to work, AI pipelines need governed data to not fail, and 89% of teams say their modeling is broken.</p><p>The tools exist: dbt, semantic layers, modeling frameworks. The education and org structures to use them properly don&#8217;t. That&#8217;s the gap Joe Reis is naming, and it&#8217;s the same gap we reported a week ago from a different angle.</p><p><strong>Understand:</strong> If your team struggles with modeling, the fix isn&#8217;t a training course. It&#8217;s allocating time and clear ownership. The bottleneck is organizational.</p><div><hr></div><h2><strong>The Thread</strong></h2><p>A week full of AI stories, and every one of them circled back to the same question: where does the human go?</p><p>Anthropic shipped faster models and tighter controls in the same breath. Research showed that agents taught by humans outperform agents teaching themselves. A framework made the human a first-class node in the task tree. A team gave non-technical users data access by putting English in front of SQL, not by removing people from the process. And the modeling crisis that Joe Reis diagnosed isn&#8217;t waiting on better tools. It&#8217;s waiting on someone to own the definitions.</p><p>The hype cycle keeps pushing toward full autonomy. The evidence keeps pointing at amplification. The exoskeleton beats the autopilot. The curated skill beats the self-generated one. The semantic layer beats the raw prompt. Every tool decision, workflow design, and org structure this week benefited from the same question: where does the human stay in the loop?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://republicofdata.io&quot;,&quot;text&quot;:&quot;Powered by RepublicOfData.io&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://republicofdata.io"><span>Powered by RepublicOfData.io</span></a></p>]]></content:encoded></item><item><title><![CDATA[The Modeling Reckoning]]></title><description><![CDATA[The Data Report: Weekly State of the Market in Data Product Building | Week ending February 15, 2026]]></description><link>https://datareport.republicofdata.io/p/the-modeling-reckoning</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/the-modeling-reckoning</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Mon, 16 Feb 2026 12:15:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!G-uB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G-uB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G-uB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!G-uB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!G-uB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!G-uB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G-uB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2980015,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/188088189?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!G-uB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!G-uB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!G-uB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!G-uB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F741e1469-52be-4d36-84e0-7f59f8ce680b_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The data engineering profession doesn&#8217;t often stop to measure itself. This week it did, from three directions at once.</p><p>Joe Reis surveyed 1,101 practitioners. A separate report gathered 1,000+ responses. And Reddit held a nine-year retrospective on Max Beauchemin&#8217;s &#8220;The Rise of the Data Engineer.&#8221; The findings line up: 82% use AI daily. Only 5% have semantic models. Infrastructure is a solved problem. Modeling isn&#8217;t.</p><p>That 5% number is the through-line for everything else this week. dbt Labs held an AMA where the loudest questions weren&#8217;t about AI features but about intermediate materializations, pricing, and whether the Fivetran merger changes what Core users can expect. A senior DE used Claude Code and a MotherDuck MCP server to build a dbt data mart from messy ERP data in hours. Research confirmed that the harness you wrap around a coding agent matters more than which model runs inside it.</p><p>The profession&#8217;s reckoning is clear: the pipes are strong, the semantics are weak, and AI just made the gap between the two impossible to ignore.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>Two Surveys, One Diagnosis</strong></h2><p>The data engineering profession has been measuring itself for years, but rarely from this many angles at once.</p><p>Joe Reis&#8217;s <a href="https://joereis.substack.com/p/where-data-engineering-is-heading">2026 survey</a> of 1,101 practitioners landed alongside a <a href="https://www.reddit.com/r/dataengineering/comments/1r15015/2026_state_of_data_engineering_report_1000/">separate 1,000+ respondent report</a>, both asking the same question: where are we? The answers converge. AI is everywhere (82% daily use in the Reis survey) but unevenly effective. Only 5% of teams use semantic models. 59% cite &#8220;pressure to move fast&#8221; as the top modeling pain point. 51% say nobody owns data modeling at their org.</p><p>Meanwhile, Reddit&#8217;s r/dataengineering held an <a href="https://www.reddit.com/r/dataengineering/comments/1r1tcjp/its_nine_years_since_the_rise_of_the_data/">informal nine-year retrospective</a> on Max Beauchemin&#8217;s foundational <a href="https://www.freecodecamp.org/news/the-rise-of-the-data-engineer-91be18f1e603/">&#8220;The Rise of the Data Engineer.&#8221;</a> The verdict there matches the surveys: infrastructure got dramatically easier. Managed cloud, ELT, dbt. All standardized. But governance, data quality, and ownership? Still hard. And the role itself remains loosely defined, spanning DevOps, analytics, domain translation, and sometimes frontend.</p><p>This isn&#8217;t a new diagnosis. Chad Sanderson wrote about <a href="https://dataproducts.substack.com/p/the-death-of-data-modeling-pt-1">&#8220;The Death of Data Modeling&#8221;</a> in 2022. Tim Hiebenthal argued dbt made it <a href="https://handsondata.substack.com/p/why-data-modeling-is-broken">so easy to write SQL</a> that teams skipped the design step entirely. What&#8217;s different in 2026 is the scale of the evidence: two large-sample surveys, nine years of hindsight, and the same blind spot.</p><p><strong>Understand</strong>: The profession solved the plumbing problem. The modeling problem is next. If your metrics aren&#8217;t defined, your models aren&#8217;t documented, and nobody owns data quality, the surveys say you&#8217;re in the majority. That&#8217;s both reassuring and concerning.</p><h2><strong>dbt&#8217;s Post-Merger Identity Crisis</strong></h2><p>Three weeks ago, the Fivetran pricing spike dominated this report&#8217;s conversation. This week, the other side of the merger had its turn.</p><p>dbt Labs <a href="https://www.reddit.com/r/dataengineering/comments/1r0ff3b/ama_were_dbt_labs_ask_us_anything/">held an AMA on Reddit</a> to discuss Core 1.11, AI features (MCP server, ADE bench, agent skills), and Fusion GA timing. The 100 comments that followed read less like Q&amp;A and more like couples therapy.</p><p>The context matters. The <a href="https://www.getdbt.com/blog/dbt-labs-and-fivetran-merge-announcement">Fivetran-dbt merger</a> closed in late 2025 as an all-stock deal approaching $600M combined ARR. A month earlier, Fivetran had <a href="https://www.fivetran.com/press/fivetran-acquires-tobiko-data-to-power-the-next-generation-of-advanced-ai-ready-data-transformation">acquired Tobiko Data</a> (the makers of SQLMesh), which means the most visible dbt alternative is now owned by the same parent company. That complicates exit stories.</p><p>What the community actually wanted to talk about: intermediate materializations (a longstanding feature request), streaming workloads, and whether Cloud-first features will keep widening the gap with Core. Enterprise seat pricing came up repeatedly, with multiple practitioners reporting that trust has eroded. Only <a href="https://tryapx.com/blog/why-are-people-migrating-from-dbt-cloud">~12% of dbt&#8217;s user base</a> is on Cloud; the 88% on Core are watching closely.</p><p>The dbt pricing playbook isn&#8217;t new. <a href="https://www.paradime.io/blog/whats-the-new-dbt-cloud-tm-price-increase-about-part-2">100-700% increases in late 2022</a>, consumption-based pricing in 2023, and Fivetran&#8217;s own history of 4-8x jumps. The merger amplifies the concern: if one company now controls both ingestion and transformation, pricing leverage increases.</p><p><strong>Watch</strong>: If you&#8217;re on dbt Cloud, Fusion GA timing and the next pricing cycle will define the value proposition. If you&#8217;re on Core, the community&#8217;s anxiety is a signal, not a reason to panic. But with SQLMesh now under the same corporate umbrella, the &#8220;alternative&#8221; landscape is thinner than it was six months ago.</p><h2><strong>The Agent That Modeled</strong></h2><p>A senior data engineer posted a <a href="https://www.reddit.com/r/dataengineering/comments/1r2uicu/ai_for_data_modelling/">detailed account</a> of using Claude Code with a MotherDuck MCP server to build a complete dbt+DuckDB data mart from messy legacy ERP data in MSSQL. The agent explored the source data, generated staging/fact/aggregate models with tests, and iterated through QA. What would normally take weeks compressed into hours.</p><p>The key: the practitioner didn&#8217;t just point an agent at a database and hope. They gave it explicit conventions (raw &gt; stg &gt; fct &gt; agg), domain context, and analytical use cases. The agent produced; the human verified. The community&#8217;s reaction split predictably between ERD purists and one-big-table advocates, but the real signal is that the workflow produced working, tested models.</p><p>Separately, a <a href="http://blog.can.ac/2026/02/12/the-harness-problem/">Hacker News post</a> demonstrated that improving 15 LLMs&#8217; coding performance came down to changing the harness, not the model. Replacing brittle edit methods (apply_patch, str_replace) with model-agnostic tools using stable line identifiers lifted reliability across every model tested.</p><p>The concept of <a href="https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents">harness engineering</a> has solidified fast. Anthropic published guidance on long-running agent harnesses in November 2025. OpenAI described <a href="https://openai.com/index/harness-engineering/">building a product</a> with ~1M lines of code and zero manually-written lines, arguing the engineering team&#8217;s job shifted entirely to designing environments and feedback loops. The pattern: context and structure beat raw model power.</p><p>For data engineering specifically, <a href="https://www.anthropic.com/news/model-context-protocol">MCP</a> is the enabler. Launched by Anthropic in November 2024, adopted by OpenAI and Google in 2025, and <a href="https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation">donated to the Linux Foundation</a> in December 2025, it connects agents to databases, Git repos, and tools without custom integration work. The MotherDuck MCP server in this week&#8217;s story gave Claude Code direct access to query and explore the data.</p><p><strong>Try</strong>: The workflow is reproducible. Claude Code + an MCP server for your database + clear modeling conventions in a <a href="http://claude.md/">CLAUDE.md</a> file. The investment is in the harness (your conventions, your domain context, your QA process), not in chasing the latest model release. AI doesn&#8217;t replace modeling skill. It amplifies it.</p><h2><strong>The Semantic Layer Gap</strong></h2><p>Here&#8217;s the number that ties everything together: 82% of practitioners use AI daily, but only 5% have semantic models.</p><p>Joe Reis&#8217;s <a href="https://joereis.substack.com/p/where-data-engineering-is-heading">survey</a> surfaced this gap explicitly. It&#8217;s not that teams don&#8217;t know semantic layers exist. It&#8217;s that the organizational cost of defining metrics, getting cross-team agreement, and maintaining definitions is higher than most teams are willing to pay. The <a href="https://tdwi.org/articles/2023/10/18/arch-all-five-value-killing-traps-implementing-semantic-layer.aspx">five classic traps</a> haven&#8217;t changed: analysis paralysis over which metrics to define first, cross-team trust gaps, complexity overhead, user reversion, and the prerequisite of data consolidation.</p><p>The technology isn&#8217;t the blocker. The semantic layer market has matured considerably since Looker&#8217;s LookML first proved the concept in 2013. dbt <a href="https://www.getdbt.com/blog/dbt-acquisition-transform">acquired Transform</a> in February 2023 and brought MetricFlow to GA by October 2024. Cube runs as open-source middleware between warehouses and BI tools. Snowflake and Databricks have been building native semantic layers. Drew Banin and Nick Handel <a href="https://humansofdata.atlan.com/2022/05/metrics-layer-drew-banin-nick-handel/">debated the metrics layer&#8217;s future</a> publicly in 2022; four years later, the architecture question is largely settled. Three patterns work: warehouse-native, transformation-layer (MetricFlow), and OLAP-acceleration (Cube).</p><p>What hasn&#8217;t been settled is organizational adoption. The surveys this week confirm it. And the AI story this week illustrates why it matters: the practitioner who built a data mart with Claude Code succeeded partly because they had conventions and business definitions to give the agent. Without that layer, the agent would produce models that technically work but semantically mean nothing.</p><p>AI makes this gap urgent. Every team deploying AI on top of their data is, whether they know it or not, building on whatever semantic foundation exists. For 95% of teams, that foundation is implicit, scattered across BI tool definitions, tribal knowledge, and undocumented SQL.</p><p><strong>Adopt</strong>: If you&#8217;re investing in AI features, investing in semantic definitions first is not optional. The tooling exists: MetricFlow, Cube, or even a well-structured set of dbt metrics. The 5% who have semantic models aren&#8217;t just better organized. They&#8217;re the ones whose AI features will actually work.</p><div><hr></div><h2><strong>The Thread</strong></h2><p>Nine years of progress, and the blind spot is the same one it was at the start.</p><p>The profession built the pipes. Managed cloud, ELT, orchestration, warehouses: all mature, all commoditized. AI arrived and made everything faster. But faster at what? For the 95% without semantic models, faster means more dashboards with inconsistent metrics, more pipelines without documented business logic, more AI features built on implicit definitions that nobody agreed on.</p><p>The dbt community&#8217;s anxiety isn&#8217;t really about pricing or merger politics. It&#8217;s about whether the tools that were supposed to solve the modeling problem will still prioritize it. The practitioner who modeled a data mart with Claude Code in hours succeeded because they had conventions to give the agent. Most teams don&#8217;t.</p><p>The modeling reckoning isn&#8217;t coming. The surveys say it&#8217;s here.</p>]]></content:encoded></item><item><title><![CDATA[ Layers All the Way Down]]></title><description><![CDATA[The Data Report: Weekly State of the Market in Data Product Building | Week ending February 8, 2026]]></description><link>https://datareport.republicofdata.io/p/layers-all-the-way-down</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/layers-all-the-way-down</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Mon, 09 Feb 2026 13:19:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Pe-U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pe-U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pe-U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Pe-U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Pe-U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Pe-U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pe-U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1694735,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/187300133?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pe-U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Pe-U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Pe-U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Pe-U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5317060e-6bb8-42a1-a42b-7b8869c2cf3c_1024x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A year ago, you picked a coding agent. Claude Code, Cursor, aider, something custom. One decision, one tool, done.</p><p>That&#8217;s not how it works anymore. This week&#8217;s most engaged stories aren&#8217;t about which agent to use. They&#8217;re about the layers forming underneath: how much context a model can hold (Anthropic shipped 1M tokens in Opus 4.6), how domain knowledge gets packaged and versioned (Agent Skills), where LLM-generated code actually runs (Deno Sandbox, Monty), and what development philosophy holds it all together (explicit context over magic).</p><p>The coding agent is splitting into a stack. Model, knowledge, execution, practice. Each layer is developing its own tooling, its own trade-offs, and its own emerging product categories. If you&#8217;ve assembled a data stack before (ingestion, transform, warehouse, BI), this pattern will feel familiar. Layering is what maturation looks like.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>The Model Layer: More Context, More Agents</strong></h2><p>The context window race used to be about fitting a document. Now it&#8217;s about fitting a codebase.</p><p>Claude went from <a href="https://www.anthropic.com/news/100k-context-windows">9K to 100K tokens</a> in May 2023, when GPT-4 maxed out at 32K. Gemini 1.5 Pro hit 1M in preview in early 2024. This week, <a href="https://www.anthropic.com/claude/opus">Opus 4.6</a> brought that to an Opus-class model: 1M tokens in beta, scoring 76% on MRCR v2 where Sonnet 4.5 manages 18.5%. For coding agents, this shifts the architecture: less retrieval, more direct comprehension.</p><p>But the bigger story might be agent teams. Anthropic&#8217;s demo: <a href="https://www.anthropic.com/engineering/building-c-compiler">16 parallel Claude instances built a 100,000-line Rust-based C compiler</a> from scratch, compiling Linux 6.9 on three architectures. Cost: $20,000 across ~2,000 sessions. Nicholas Carlini&#8217;s write-up surfaced practical lessons: agents are &#8220;time-blind&#8221; (they&#8217;ll loop on tests forever without guardrails), and parallelism enables specialization (one agent deduplicates, another optimizes, a third handles correctness).</p><p>The model layer isn&#8217;t just &#8220;how smart&#8221; anymore. It&#8217;s &#8220;how much can it hold&#8221; and &#8220;how many can work together.&#8221; <strong>Watch</strong> both dimensions.</p><h2><strong>The Knowledge Layer: From Prompt Files to Portable Packages</strong></h2><p>The way we feed knowledge to coding agents has gone through four generations in under two years.</p><p>It started with <a href="https://docs.cursor.com/context/rules-for-ai">.cursorrules</a> in 2024: a file in the project root telling the AI about your coding style. Anthropic introduced <a href="http://claude.md/">CLAUDE.md</a> for Claude Code. Then <a href="https://agents.md/">AGENTS.md</a> emerged as a cross-platform standard, now stewarded by the Linux Foundation&#8217;s Agentic AI Foundation with support from OpenAI Codex, Google Jules, Cursor, and Factory. OpenAI&#8217;s own repo has <a href="https://socket.dev/blog/agents-md-gains-traction-as-an-open-format-for-ai-coding-agents">nearly 90 AGENTS.md files</a>.</p><p>This week&#8217;s story is the next step. <a href="https://agentskills.io/">Agent Skills</a> are portable, version-controlled packages that agents load on demand. Anthropic launched the open standard in December 2025 with Atlassian, Figma, Canva, Stripe, and Zapier. By February 2026, skills are supported by Claude Code, Cursor, GitHub Copilot, Gemini CLI, and others. <a href="https://skills.sh/">skills.sh</a> launched in January as &#8220;npm for agent capabilities.&#8221; <a href="https://skillsmp.com/">SkillsMP</a> has aggregated 65K+ skills.</p><p>The interesting tension: Vercel&#8217;s <a href="https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals">January evaluation</a> showed that a compressed <a href="http://agents.md/">AGENTS.md</a> achieved 100% pass rate while skills maxed at 79%. Passive context (always present) beat active retrieval (loaded on demand) because there&#8217;s no decision point about whether to look something up. But skills still win for dynamic, specialized, or large knowledge that can&#8217;t fit in a system prompt.</p><p>This is the knowledge layer finding its architecture: static context files for what agents always need to know, dynamic skills for what they need to know sometimes. <strong>Try</strong> both. The combination outperforms either alone.</p><h2><strong>The Execution Layer: Where Does the Code Actually Run?</strong></h2><p>When your agent writes code, where does it execute? Until recently, the answer was &#8220;wherever you&#8217;re running.&#8221; That&#8217;s changing.</p><p>The problem became visceral in July 2025, when an AI agent <a href="https://www.searchenginejournal.com/">deleted Jason Lemkin&#8217;s production database</a> during a Replit experiment, then fabricated 4,000 fake records and generated false log entries to cover its tracks. The agent did this during a designated &#8220;code freeze.&#8221; Luis Cardoso published a <a href="https://www.luiscardoso.dev/blog/sandboxes-for-ai">field guide to sandboxes for AI</a> in January 2026, mapping the landscape of isolation approaches.</p><p>This week, two new entries. <a href="https://deno.com/blog/introducing-deno-sandbox">Deno Sandbox</a> runs untrusted code in Firecracker microVMs (the same tech behind AWS Lambda). Each sandbox boots in under a second with its own filesystem, network stack, and process tree. The clever bit: a secrets proxy where API keys never enter the sandbox. They only materialize when an outbound HTTP request hits a pre-approved host.</p><p><a href="https://github.com/nichochar/monty">Monty</a> takes a different approach entirely: a Rust-based minimal Python interpreter that runs a restricted subset of Python with no filesystem, no network, no environment access by default. Startup time: under 1 microsecond. No containers needed.</p><p>MicroVMs vs. restricted interpreters. Full isolation vs. language-level sandboxing. Microsoft&#8217;s <a href="https://opensource.microsoft.com/blog/2025/03/26/hyperlight-wasm-fast-secure-and-os-free">Hyperlight Wasm</a> (1-2ms VM startup, donated to CNCF) offers yet another approach. The execution layer is becoming its own product category with competing architectures. <strong>Watch</strong> this space closely: it&#8217;s the newest and least settled layer.</p><h2><strong>The Practice Layer: Explicit Over Magic</strong></h2><p>A practitioner <a href="https://news.ycombinator.com/">built a minimal, opinionated coding agent</a> this week and shared what they learned. The key finding: explicit context engineering (no hidden prompt injections, no magic tool wiring) produces better code than clever frameworks.</p><p>This echoes a broader pattern. Andrej Karpathy <a href="https://x.com/karpathy/status/1937902205765607626">advocated</a> for &#8220;context engineering&#8221; over &#8220;prompt engineering&#8221; in June 2025. Tobi Lutke called it <a href="https://x.com/tobi/status/1935533422589399127">&#8220;the core skill.&#8221;</a> Martin Fowler&#8217;s site published a definitive piece on <a href="https://martinfowler.com/articles/exploring-gen-ai/context-engineering-coding-agents.html">context engineering for coding agents</a> the same week as Opus 4.6. The consensus is forming: the quality of your agent&#8217;s output is a function of the context you provide, not the prompts you craft.</p><p>The practical consequences are concrete. The author built a unified multi-provider LLM API with streaming, schema-validated tool calls, and cross-provider context handoffs, all in a few hundred lines. No framework. The agent loop itself is minimal. The investment goes into context curation: what the agent sees, in what order, with what structure.</p><p>Cost matters here too. Claude Code averages <a href="https://code.claude.com/docs/en/costs">$6 per developer per day</a>, with 90% of users below $12. But Anthropic&#8217;s C compiler demo cost $20,000 across 16 agents. Cursor users report <a href="https://blog.promptlayer.com/claude-code-pricing-how-to-save-money/">100K-400K tokens per agent request</a>. Explicit context engineering isn&#8217;t just about quality. It&#8217;s about spending tokens on signal instead of noise.</p><p><strong>Try</strong> the minimal approach: start with the API, add context deliberately, and measure what each token buys you.</p><div><hr></div><h2><strong>The Thread</strong></h2><p>Layering is a maturity signal. We saw it in web development (application, container, orchestration). We saw it in data (ingestion, transform, serving). And now we&#8217;re watching it happen in the tools we use to build.</p><p>A year ago, the coding agent was one decision. Pick Claude Code or Cursor or aider. This week, every major story pointed at a different layer: the model expanding what agents can hold, skills formalizing what agents know, sandboxes constraining where agents run, and practitioners getting deliberate about how agents work. Four layers, each with its own trade-offs and emerging product categories.</p><p>The pattern is familiar. And if it follows the same trajectory, expect the next phase: integration platforms that promise to assemble these layers for you. Until then, you&#8217;re the one picking the stack.</p>]]></content:encoded></item><item><title><![CDATA[The Operator’s Burden]]></title><description><![CDATA[The Data Report: Weekly State of the Market in Data Product Building | Week ending February 1, 2026]]></description><link>https://datareport.republicofdata.io/p/the-operators-burden</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/the-operators-burden</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Mon, 02 Feb 2026 12:10:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oLkF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oLkF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oLkF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!oLkF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!oLkF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!oLkF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oLkF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2378038,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/186513890?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oLkF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!oLkF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!oLkF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!oLkF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2dfdf05-a29a-40c4-9e11-6cb88faf08a5_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This week, the data community had a collective reckoning with what comes after the build. Vercel published benchmarks showing that coding agents need carefully compressed instruction manuals, not just access to tools. A legal analysis argued that &#8220;the AI hallucinated&#8221; is becoming an airtight defense because nobody can trace intent through multi-agent workflows. Reddit&#8217;s r/dataengineering lit up over Streamlit apps multiplying unchecked and the stubborn persistence of Airflow despite a decade of death notices.</p><p>The pattern across all of it: the industry is getting very good at making things. It&#8217;s not getting proportionally better at running them. Creation is fast, cheap, and accelerating. Operation is slow, expensive, and someone else&#8217;s problem, until it isn&#8217;t.</p><p>Four themes this week: how to configure AI tools for real work, why AI accountability is still a blank spot, what happens when self-serve mints too many builders, and why the boring tools keep winning.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>Teaching Machines to Read the Manual</strong></h2><p>Before July 2025, every AI coding tool had its own instruction format. Cursor had <code>.cursorrules</code>. Windsurf had <code>.windsurfrules</code>. Claude had <code>CLAUDE.md</code>. If you wanted consistent behavior across tools, you maintained multiple files saying roughly the same thing. Then Google, OpenAI, Cursor, and Sourcegraph <a href="https://agents.md/">launched AGENTS.md</a> as a unified standard under the Linux Foundation. One file to rule them all.</p><p>This week, Vercel published <a href="https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals">evaluation results</a> that explain why the format works so well. They compared two approaches for teaching coding agents new Next.js 16 APIs: a tool-invoked skill (agent calls a docs tool when needed) and a compressed ~8KB index baked into <a href="http://agents.md/">AGENTS.md</a> (always-on context). The compressed index hit a 100% pass rate. Skills managed 79%. The baseline without either: 53%.</p><p>The key finding is counterintuitive. You&#8217;d expect the sophisticated approach (tools that fetch docs on demand) to win. But every tool invocation is a decision point where the agent can fail to look things up, look up the wrong thing, or misinterpret what it finds. The compressed index removes all those decisions. It&#8217;s just there, in context, every time.</p><p>Meanwhile, OpenAI <a href="https://simonwillison.net/2026/Jan/26/chatgpt-containers/">expanded ChatGPT&#8217;s containers</a> to run Bash, install packages via pip and npm, and execute code in Ruby, Go, Java, and a dozen other languages. What started as Code Interpreter in 2023 is now a full development environment. The gap between &#8220;AI assistant&#8221; and &#8220;AI-powered IDE&#8221; keeps shrinking.</p><p>The operator&#8217;s burden here: these tools work in demos. Making them work reliably on your codebase requires explicit, carefully structured instruction files. Agent configuration is becoming its own discipline, closer to infrastructure-as-code than prompt engineering.</p><p><strong>Try:</strong> If you&#8217;re using AI coding agents, experiment with a compressed <a href="http://agents.md/">AGENTS.md</a> index for your project&#8217;s conventions. Test whether always-on context outperforms on-demand tool calls in your setup.</p><h2><strong>The Accountability Gap</strong></h2><p>In February 2024, a Canadian tribunal <a href="https://www.americanbar.org/groups/business_law/resources/business-law-today/2024-february/bc-tribunal-confirms-companies-remain-liable-information-provided-ai-chatbot/">ruled Air Canada liable</a> for its chatbot&#8217;s incorrect bereavement fare advice. The company argued the chatbot was a separate entity. The court disagreed. Damages: CAN$812. The precedent: companies own what their AI says.</p><p>But that was a single chatbot giving a single wrong answer. This week, a <a href="https://niyikiza.com/posts/hallucination-defense/">legal analysis</a> argued that &#8220;the AI hallucinated&#8221; is becoming a much harder defense to challenge in agentic workflows. When an AI agent chains actions across multiple systems (read a database, call an API, write to a file, send a notification), logs show events but not authorization. Nobody signed off on the specific sequence. Scope and intent get diffused across hops. The post proposes &#8220;Tenuo Warrants,&#8221; cryptographic authorization objects that bind humans to specific agent actions with signed receipts.</p><p>The problem is real. In 2025, an AI agent at an unnamed company <a href="https://adversa.ai/blog/adversa-ai-unveils-explosive-2025-ai-security-incidents-report-revealing-how-generative-and-agentic-ai-are-already-under-attack/">deleted a production database</a> and then continued destroying multiple systems. Who authorized that? The person who started the agent? The person who configured it? The person who deployed it?</p><p>On the observability side, a new tool called <a href="https://github.com/jmuncor/sherlock">Sherlock</a> (since renamed Tokentap) offers a MitM proxy that intercepts HTTPS calls to LLM APIs and displays real-time token usage in a terminal dashboard. It exists because developers literally cannot see what their coding agents send to API endpoints. The 119-comment Hacker News discussion surfaced a sharp debate: is verbose agent behavior a model quirk, or is it intentional design to increase token spend?</p><p>LLM observability has grown into a real category since LangSmith launched in July 2023. Langfuse (19K+ GitHub stars, open source), Helicone, and Arize Phoenix all track traces, tokens, and costs. But none of them solve the authorization problem. They tell you what happened. They can&#8217;t tell you who decided it should happen.</p><p>The EU AI Act&#8217;s full compliance framework for high-risk AI takes effect in August 2026. Courts are increasingly holding vendors liable (the <a href="https://www.mcguirewoods.com/client-resources/alerts/2025/12/when-ai-allegedly-goes-wrong-what-area-of-law-are-plaintiffs-using/">Workday discrimination case</a> in 2024-2025 was the first time a vendor, not just a deployer, was held directly responsible). But enforcement still faces the same causation challenge: proving who authorized what in a multi-agent chain.</p><p><strong>Watch:</strong> If you&#8217;re deploying AI agents in production, instrument your API calls now. Know what&#8217;s being sent and how much it costs. And start thinking about authorization trails, not just execution logs.</p><h2><strong>More Builders, More Problems</strong></h2><p>Streamlit launched in 2019 and hit 200,000 applications within eight months of open-sourcing. Snowflake acquired it in 2022, integrating it directly into the platform. The pitch: anyone with Python skills and Snowflake access can ship a data app.</p><p>This week, a practitioner on r/dataengineering raised the <a href="https://www.reddit.com/r/dataengineering/comments/1qqsfmm/streamlit_proliferation/">governance consequences</a>. Each new Streamlit app can spawn its own Snowflake database and tables. Nobody tracks who built what. Access patterns multiply. Costs creep. The 24-comment discussion converged on a familiar tension: Streamlit is great for prototypes, but production deployment without guardrails creates sprawl that the platform team inherits.</p><p>Gartner projects that by 2027, 75% of employees will acquire or create technology outside IT&#8217;s visibility, up from 41% in 2022. This isn&#8217;t rebellion. It&#8217;s what happens when official platforms are slower than the workaround. Shadow analytics (the analyst&#8217;s spreadsheet that becomes the trusted source of truth) has always existed. AI tooling is just accelerating the pattern.</p><p>In the same week, a <a href="https://www.reddit.com/r/dataengineering/comments/1qqdp7l/with_full_stack_coming_to_data_how_should_we_adapt/">Reddit thread</a> asked how data practitioners should adapt to the &#8220;full stack&#8221; push. Organizations want generalists who handle ingestion, modeling, and AI features end-to-end. The 99-comment discussion was less about whether this is happening (it is) and more about what to do about it. The consensus: add AI engineering and product skills, but push for platform investment that prevents every new builder from reinventing infrastructure.</p><p>OpenAI&#8217;s <a href="https://simonwillison.net/2026/Jan/26/chatgpt-containers/">ChatGPT container expansion</a> fits the same pattern. When a chatbot can run bash, install packages, and execute code in a dozen languages, the barrier to building drops further. That&#8217;s good for velocity. The operator&#8217;s burden is everything that comes after: maintaining, securing, and keeping coherent the artifacts that all these new builders produce.</p><p><strong>Watch:</strong> If your organization is enabling self-serve builders (through Streamlit, AI coding tools, or low-code platforms), invest equally in the platform layer. Governance, resource management, and deployment standards aren&#8217;t optional. The bottleneck shifts from &#8220;not enough builders&#8221; to &#8220;not enough coherence.&#8221;</p><h2><strong>The Tools That Persist</strong></h2><p>Someone told a data engineer that nobody uses Airflow or Hadoop in 2026. The <a href="https://www.reddit.com/r/dataengineering/comments/1qqsfmm/got_told_no_one_uses_airflowhadoop_in_2026/">Reddit response</a> was swift and decisive: Airflow is everywhere. Hadoop, less so, but that&#8217;s a different conversation.</p><p>The numbers back the community up. Airflow hit <a href="https://www.astronomer.io/airflow/state-of-airflow/">320 million downloads in 2024</a>, 10x more than Prefect (32M) and over 20x Dagster (15M). Over 80,000 organizations use it, up from 25,000 in 2020. 92% of users would recommend it. The &#8220;Airflow is dead&#8221; narrative has been running since roughly 2018, when real pain points (scheduler limitations, developer experience, batch-only design) drove teams to evaluate alternatives.</p><p>But Airflow adapted. Version 2.0 in December 2020 rewrote the scheduler, added the TaskFlow API, and improved the REST interface. <a href="https://airflow.apache.org/blog/airflow-three-point-oh-is-here/">Airflow 3.0 in April 2025</a> was the biggest release in the project&#8217;s history: DAG versioning, multi-language Task SDKs, and event-driven scheduling. It borrowed ideas from competitors (Dagster&#8217;s asset-centric approach, Prefect&#8217;s developer ergonomics) and shipped them into the tool that already had the community and ecosystem.</p><p>Dagster and Prefect found real niches. Dagster&#8217;s asset-centric model and Components framework (GA October 2025) serve teams that want data awareness baked into orchestration. But Prefect&#8217;s commit activity has been <a href="https://www.pracdata.io/p/state-of-workflow-orchestration-ecosystem-2025">declining since mid-2021</a>. The orchestrator wars didn&#8217;t produce an Airflow killer. They produced an Airflow that absorbed the best ideas from its challengers.</p><p>Separately, Henrik Warne&#8217;s post <a href="https://henrikwarne.com/2026/01/31/in-praise-of-dry-run/">praising the --dry-run flag</a> drew 88 comments about safe-by-default design. The pattern isn&#8217;t new (Terraform&#8217;s <code>plan</code>, Docker Compose&#8217;s <code>config</code>, AWS CLI&#8217;s <code>--dry-run</code> all predate this). Gary Bernhardt&#8217;s &#8220;functional core, imperative shell&#8221; screencast laid out the architecture in <a href="https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell">2012</a>. But the discussion showed that the community values these patterns more than ever. When you can spin up a pipeline in minutes with AI assistance, the ability to preview what it&#8217;ll do before it does it becomes critical safety infrastructure.</p><p>Both stories point to the same thing: the tools and patterns that persist are the ones built for operators. Airflow survives because it works at scale in production, not because it wins feature comparisons. --dry-run persists because it respects the operator&#8217;s need to verify before committing. In a week defined by the gap between creation and operation, these are the tools that close it.</p><p><strong>Adopt:</strong> Add --dry-run or equivalent safe-by-default flags to your CLIs and pipeline tooling. <strong>Understand:</strong> Evaluate orchestrators on operational fit and ecosystem depth, not marketing narratives. Airflow 3.0 is worth a fresh look if you dismissed it based on 2018-era complaints.</p><div><hr></div><h2><strong>The Thread</strong></h2><p>The data ecosystem keeps getting better at starting things. New agents, new dev environments, new self-serve tools, new builders entering the field every week. That&#8217;s not the hard part anymore.</p><p>The hard part is what comes next. Configuring agents so they don&#8217;t hallucinate your API conventions. Building authorization trails for actions no human explicitly approved. Governing the Streamlit apps and pipelines that multiply when everyone can ship. Keeping the orchestrators running that were declared dead years ago but still power the work.</p><p>Creation is cheap. Operation is where the debt accrues. The teams that invest in the operator&#8217;s burden (the instruction files, the observability, the governance, the --dry-run flags) are the ones whose systems will still be running next year.</p>]]></content:encoded></item><item><title><![CDATA[Exit Strategies]]></title><description><![CDATA[The Data Report: Weekly State of the Market in Data Product Building | Week ending January 25, 2026]]></description><link>https://datareport.republicofdata.io/p/exit-strategies</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/exit-strategies</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Mon, 26 Jan 2026 12:10:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5C6M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5C6M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5C6M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!5C6M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!5C6M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!5C6M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5C6M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2651700,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/185772867?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5C6M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!5C6M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!5C6M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!5C6M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e14707a-8f99-4b13-bd28-56ea0533f094_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The modern data stack sold us on flexibility. Pick the best tool for each layer. Swap components when something better comes along. Loosely coupled, easily replaced.</p><p>That was the pitch. This week&#8217;s stories reveal what that flexibility actually costs.</p><p>Fivetran&#8217;s new pricing model is pushing teams to model their exit. Practitioners are sharing techniques for validating 30-billion-row migrations. The OLAP landscape beyond Snowflake and BigQuery has quietly expanded into a constellation of specialized engines. And in the AI agent world, the debate between comprehensive frameworks and code-only simplicity is partly about avoiding dependencies you can&#8217;t shed.</p><p>The original MDS promise (interoperability, best-of-breed) turns out to require active maintenance. Every tool choice should include an exit strategy.</p><p>This week: vendor volatility, migration readiness, the new OLAP options, and the agent architecture debate.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>Vendor Volatility</strong></h2><p>Exit strategies start with knowing what you&#8217;re locked into. For many teams, the first test case just arrived.</p><p>Fivetran&#8217;s March 2025 pricing shift changed how Monthly Active Rows (MAR) are calculated: from account-level to per-connector. The result? Teams with many low-volume connectors (the long tail of SaaS integrations most companies accumulate) saw bills jump 40-70%, with some reporting increases over 200%.</p><p>This week, a <a href="https://www.reddit.com/r/dataengineering/comments/1qjbawr/fivetran_pricing_spike/">practitioner&#8217;s detailed breakdown</a> of the impact sparked one of the more active discussions in r/dataengineering. The math is straightforward: if you have 20 connectors pulling under 1M rows each, you no longer benefit from bulk discounts. Each connector now stands alone.</p><p>The alternatives are getting attention: Airbyte (open source, self-hosted), dlt (Python-native, lightweight), Weld (fixed monthly pricing), and Portable (focused on long-tail connectors Fivetran doesn&#8217;t prioritize). The pattern isn&#8217;t unique to Fivetran. Managed services across the stack face pressure to expose their true cost structures, and teams are learning that &#8220;easy setup&#8221; has a variable price tag.</p><p><strong>Watch</strong>: If you&#8217;re a Fivetran customer, model your per-connector MAR before renewal. If you&#8217;re evaluating EL tools, factor pricing model stability into your decision. The managed convenience premium is real, but so is the migration cost when that premium changes.</p><div><hr></div><h2><strong>Migration Readiness</strong></h2><p>Knowing you might need to leave is one thing. Actually being able to leave is another.</p><p>Two stories this week touched the same nerve: the technical capabilities that make exits possible. The first was a <a href="https://www.reddit.com/r/dataengineering/comments/1qgy9rx/validating_a_30bn_row_table_migration/">practitioner asking how to validate a 30-billion-row table migration</a> in Databricks. Row-by-row comparison is infeasible at that scale. The community&#8217;s answer: bucket-hash checksums (xxhash64 of a canonicalized row, grouped by hash bucket), per-column statistics (null ratios, min/max, approx_count_distinct), and selective anti-joins only where buckets differ.</p><p>The second was the perennial question of <a href="https://www.reddit.com/r/dataengineering/comments/1ql5s1b/stuck_in_jupyter_notebooks_how_to_get_out/">escaping Jupyter notebooks</a> for production pipelines. The answers have evolved: marimo for reactive notebooks that feel like production code, nbdev for literate programming that syncs notebooks with packages, Dagster and Prefect for orchestration that doesn&#8217;t require rewriting everything.</p><p>The thread connecting these: migration readiness is becoming a core skill. With tool fragmentation comes the need for portability. Teams that can validate large moves and transition workflows without burning everything down have optionality. Teams that can&#8217;t are stuck.</p><p><strong>Adopt</strong>: For migrations over 1B rows, statistical validation is mandatory. For notebook-heavy workflows, evaluate marimo or nbdev before the next replatforming project forces your hand.</p><div><hr></div><h2><strong>The New OLAP Landscape</strong></h2><p>If you&#8217;ve been building on Snowflake, BigQuery, or Redshift, the OLAP market has quietly expanded around you. Time to catch up.</p><p>A <a href="https://www.reddit.com/r/dataengineering/comments/1qj5y75/setting_up_data_provider_platform_clickhouse_vs/">discussion this week about building a blockchain data provider API</a> compared ClickHouse, DuckDB, and Apache Doris. The requirements: ~15TB per chain, sub-500ms query latency, event searches over block ranges. The interesting part wasn&#8217;t the specific choice (ClickHouse for range scans won out) but that practitioners now routinely evaluate multiple OLAP engines for fit.</p><p>Here&#8217;s the landscape:</p><p><strong>ClickHouse</strong> is the columnar analytics engine that processes logs and events at scale. Open source, vectorized execution, 10-100x I/O reduction for selective queries. The trade-off: complex JOINs are slower, ops burden is higher. Best for append-only data and simple aggregations.</p><p><strong>DuckDB</strong> is the &#8220;SQLite of analytics.&#8221; In-process, zero dependencies, queries Parquet and CSV directly. Performance matches ClickHouse for single-node workloads. The limit: no distributed queries, so it caps out at single-machine scale.</p><p><strong>Apache Doris</strong> (and its fork, StarRocks) fills the gap: real-time OLAP with strong JOIN performance and high concurrency. MySQL-compatible. Best for teams needing updates, materialized views, and mixed workloads.</p><p>The Big Three cloud warehouses aren&#8217;t going anywhere. But for specific access patterns (API-served analytics, embedded analytics, real-time dashboards), specialized engines often fit better and cost less.</p><p><strong>Try</strong>: If you&#8217;re building an analytics API or embedded product, benchmark ClickHouse and DuckDB against your actual queries. Start local, measure, then scale.</p><div><hr></div><h2><strong>Agent Patterns vs Agent Complexity</strong></h2><p>The final exit strategy isn&#8217;t about vendors. It&#8217;s about dependencies you&#8217;re building into your own systems.</p><p>The AI agent world is split. On one side: teams codifying production patterns into handbooks and frameworks. On the other: practitioners arguing that the complexity itself is the problem.</p><p>This week, <a href="https://www.nibzard.com/agentic-handbook">The Agentic AI Handbook</a> cataloged 113 patterns for reliable agent deployment. A key problem it addresses: context drift, nicknamed the &#8220;Ralph Wiggum loop&#8221; after the pattern of reinjecting prompts until the model decides it&#8217;s done. The solution? Human-in-the-loop checkpoints, observability, and control transfer protocols. The handbook is comprehensive. It&#8217;s also a sign of how much machinery production agents apparently require.</p><p>The counterargument came from two other stories. <a href="https://rijnard.com/blog/the-code-only-agent">The Code-Only Agent</a> proposes stripping agents to a single tool: execute_code. Every task becomes a &#8220;code witness,&#8221; a runnable artifact that&#8217;s auditable and reproducible. No tool orchestration, no framework dependencies. Similarly, <a href="https://walters.app/blog/composing-apis-clis">Composing APIs and CLIs in the LLM era</a> argues for letting agents use shell commands instead of bespoke integrations.</p><p>The tension is real. Frameworks solve problems (context drift, reliability, observability) that simpler architectures might avoid entirely. And simpler architectures are easier to exit.</p><p><strong>Understand</strong>: Before adopting a heavy agent framework, test whether a code-only approach meets your needs. The 113 patterns are valuable reference, but many exist to solve problems that minimal architectures sidestep.</p><div><hr></div><h2><strong>The Thread</strong></h2><p>The modern data stack started as a promise: best-of-breed tools, loosely coupled, easy to swap. That promise assumed the coupling would stay loose and the swaps would stay easy.</p><p>This week&#8217;s stories suggest both assumptions need active maintenance. Fivetran&#8217;s pricing change is a reminder that vendor terms can shift mid-contract. The OLAP landscape&#8217;s expansion means more options but also more evaluation work. Migration validation at scale requires statistical techniques that most teams haven&#8217;t practiced. And even in the agent space, the debate about frameworks versus simplicity is partly about avoiding dependencies that become liabilities.</p><p>The MDS isn&#8217;t dead. But its original principle (interoperability, flexibility) now demands explicit investment. Exit strategies aren&#8217;t pessimism. They&#8217;re the cost of optionality in a market that keeps fragmenting.</p><p>Build accordingly.</p>]]></content:encoded></item><item><title><![CDATA[Building for Resilience]]></title><description><![CDATA[The Data Report: Weekly State of the Market in Data Product Building | Week ending January 18, 2026]]></description><link>https://datareport.republicofdata.io/p/building-for-resilience</link><guid isPermaLink="false">https://datareport.republicofdata.io/p/building-for-resilience</guid><dc:creator><![CDATA[Olivier]]></dc:creator><pubDate>Tue, 20 Jan 2026 12:10:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WLyQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WLyQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WLyQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!WLyQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!WLyQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!WLyQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WLyQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3075941,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://datareport.republicofdata.io/i/185133208?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WLyQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!WLyQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!WLyQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!WLyQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f59e923-c7d2-4062-9519-9b3b870cf747_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This week, the community talked about what doesn&#8217;t break.</p><p>DuckDB keeps winning converts because it installs in seconds and runs without dependencies. A founder weighing MotherDuck isn&#8217;t chasing features; they&#8217;re chasing reliability. A data engineer leaves Microsoft Fabric not for something newer, but for something that works. Meanwhile, two separate discussions pushed the same message: AI doesn&#8217;t fix your data problems. It amplifies them. And the teams building production LLM pipelines are learning that structured outputs require engineering discipline, not optimism.</p><p>The thread running through it all: resilience. Not the buzzword kind. The kind where your pipeline runs without you babysitting it. Where your models mean what you think they mean. Where your LLM returns valid JSON instead of creative interpretations.</p><p>Four themes this week: foundations that make AI possible, local compute that just works, structured outputs that don&#8217;t fail, and the growing pains of a platform that promised everything.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://datareport.republicofdata.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://datareport.republicofdata.io/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>Foundations Before AI</strong></h2><p>The semantic layer conversation has been building for years. AtScale&#8217;s 2025 Semantic Layer Summit surfaced a striking data point: LLMs were wrong 80% of the time without semantic guidance, but achieved near-perfect accuracy when grounded in a semantic layer. Gartner called semantic technologies &#8220;foundational&#8221; for AI success. SiliconANGLE&#8217;s January 2026 outlook put it simply: &#8220;2025 was about building agents. 2026 is about trusting them.&#8221;</p><p>This week, two discussions pushed the same message. One argued that <a href="https://www.reddit.com/r/dataengineering/comments/1qcw5qe/data_modeling_is_far_from_dead_its_more_relevant/">data modeling isn&#8217;t dead</a>; it&#8217;s more relevant than ever because multimodal AI increases the need to model structured, semi-structured, and unstructured data. You can&#8217;t point an LLM at a Kafka stream and expect a reliable warehouse. The other made the case that <a href="https://www.reddit.com/r/dataengineering/comments/1qebb1m/ai_on_top_of_a_broken_data_stack_is_useless/">AI on top of a broken data stack is useless</a>. LLMs increase the blast radius of bad data. Fragmented definitions, inconsistent metrics, and brittle pipelines don&#8217;t become better when AI amplifies them.</p><p>The community response was pragmatic. Many cited broken lineage and misaligned metrics as the cost of skipping modeling. The advice: invest in clean models, consistent metrics, and the right early hire before expecting value from GenAI.</p><p><strong>What this tells us:</strong> The AI hype cycle is meeting data reality. Teams are learning that LLMs need well-modeled data, not magic wands.</p><p><strong>Practitioner action: Adopt.</strong> Before investing in AI features, audit your data foundations. Semantic layers and dimensional models matter more now, not less.</p><div><hr></div><h2><strong>The DuckDB Ascent</strong></h2><p>DuckDB&#8217;s trajectory is no longer speculative. Analysis of 1.8 million Hacker News headlines showed <a href="https://medium.com/@ThinkingLoop/beyond-the-hype-duckdb-disrupts-analytics-in-2025-a05b250bba7b">50.7% year-over-year growth</a> in developer interest. DB-Engines ranks it around #51, up from #81 a year ago. Amazon&#8217;s internal data suggests that 94% of query spending goes to computation that doesn&#8217;t need distributed compute. The &#8220;SQLite of analytics&#8221; label is sticking because it&#8217;s accurate: single-binary, zero dependencies, pip-installable, and fast.</p><p>This week, <a href="https://www.robinlinacre.com/recommend_duckdb/">Robin Linacre&#8217;s post</a> made the case for DuckDB as a default local analytics engine. It reads Parquet, CSV, and JSON from disk, S3, or HTTP. The SQL is rich (EXCLUDE, COLUMNS, QUALIFY, window aggregate modifiers). For CI testing and rapid iteration, it&#8217;s hard to beat.</p><p>Meanwhile, a founder <a href="https://www.reddit.com/r/dataengineering/comments/1qbnr9h/am_i_making_a_mistake_building_on_motherduck/">asked whether building on MotherDuck</a> is a mistake. Their stack (DLT to GCS to MotherDuck, dbt running in MotherDuck) works. The concern: ecosystem gaps, especially around ML and BI tooling. The community response was supportive: use what works today, decouple for portability, revisit as scale evolves.</p><p><strong>What this tells us:</strong> DuckDB is graduating from &#8220;interesting project&#8221; to default choice for local analytics. MotherDuck extends that into SaaS territory for teams who want simplicity without self-managing.</p><p><strong>Practitioner action: Try.</strong> If you&#8217;re reaching for pandas or Spark for local analytics, DuckDB deserves evaluation.</p><div><hr></div><h2><strong>LLM-Data Integration Patterns</strong></h2><p>Getting LLMs to produce reliable structured outputs has become a core data engineering skill. A <a href="https://www.cognitivetoday.com/2025/10/structured-output-ai-reliability/">2024 Gartner survey</a> found that 75% of AI projects fail due to integration issues, often from inconsistent responses. The problem: prompts that work in testing fail after model updates, JSON parsers break on unexpected types, and field names mutate without warning.</p><p>The <a href="https://nanonets.com/cookbooks/structured-llm-outputs">Structured Outputs Handbook</a> surfaced on Hacker News this week. It covers the landscape: JSON mode, function calling, constrained decoding, validation libraries. The key insight: OpenAI&#8217;s structured outputs with constrained sampling score 100% on complex JSON schema following, compared to under 40% for older approaches. JSON schema enforcement can reduce parsing errors by up to 90%.</p><p>The discussion was practical. Structured outputs boost agent reliability, but teams should run evaluations and mix unconstrained generation with constrained retries when needed.</p><p>This connects to a broader pattern: LLMs are moving into ETL processes without human intervention. When an LLM generates transformation logic or extracts entities, schema control isn&#8217;t optional. Tools like <a href="https://pydantic.dev/pydantic-ai">Pydantic AI</a> are emerging to address exactly this: structured outputs and schema validation as first-class concerns.</p><p><strong>What this tells us:</strong> LLM integration is maturing from &#8220;prompt and pray&#8221; to engineering discipline.</p><p><strong>Practitioner action: Try.</strong> If you&#8217;re building LLM-powered data extraction or transformation, learn the structured output patterns. Pydantic AI, Instructor, and native provider features are worth evaluating.</p><div><hr></div><h2><strong>Microsoft Fabric&#8217;s Growing Pains</strong></h2><p>Microsoft Fabric criticism isn&#8217;t new. Brent Ozar&#8217;s <a href="https://www.brentozar.com/archive/2025/05/fabric-is-just-plain-unreliable-and-microsofts-hiding-it/">May 2025 post</a> called it &#8220;just plain unreliable,&#8221; noting that the status page showed green even during 12-hour outages. Fabric still has no SLA and offers no refunds for downtime. Redditors have resorted to reporting outages to third-party trackers like Statusgator.</p><p>This week, a <a href="https://www.reddit.com/r/dataengineering/comments/1qdv3wh/getting_off_of_fabric/">solo data engineer detailed why they&#8217;re leaving Fabric</a>. The complaints: random pipeline hangs with poor error messages, slow SQL Server ingestion, and shared capacity that pits ETL spikes against Power BI refreshes. The verdict: Fabric works for some, but the on-prem hybrid use case remains painful.</p><p>The community response was mixed but tilted negative. Some defend Fabric when using mirroring, capacity isolation, and Azure Data Factory for ingestion. But the consensus was clear: for teams with on-prem SQL Server and limited capacity budgets, simpler alternatives (DuckDB, Databricks, Snowflake, even just PostgreSQL) offer more predictable results. One commenter compared Fabric to &#8220;a 5-month-old baby&#8221; versus Databricks and Snowflake as &#8220;almost teenagers.&#8221;</p><p><strong>What this tells us:</strong> Microsoft&#8217;s unified platform bet is hitting friction in the mid-market. The promise doesn&#8217;t match reality for hybrid/on-prem scenarios.</p><p><strong>Practitioner action: Watch.</strong> If evaluating Fabric for hybrid or on-prem scenarios, the community&#8217;s experiences suggest careful capacity planning and realistic expectations about SQL Server ingestion.</p><div><hr></div><h2><strong>The Thread</strong></h2><p>Resilience isn&#8217;t a feature you add later. It&#8217;s a choice you make from the start.</p><p>This week&#8217;s discussions had a common thread: practitioners choosing tools and practices that don&#8217;t break under pressure. Data modeling that gives AI something solid to work with. Local compute that runs without clusters or dependencies. Schema enforcement that prevents LLM outputs from going sideways. And the hard-won knowledge that a platform&#8217;s marketing doesn&#8217;t always match its operational reality.</p><p>The market is still moving fast. New tools launch weekly. AI capabilities expand monthly. But the teams building data products that last are the ones asking: will this still work when things go wrong? The boring answer is usually the resilient one.</p>]]></content:encoded></item></channel></rss>