<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Mosaic Data Partners — Insights</title>
  <subtitle>Notes, frameworks and field-tested perspectives on data modernization, analytics &amp; AI from the team at Mosaic Data Partners.</subtitle>
  <link href="https://www.mosaicdatapartners.com/feed.xml" rel="self"/>
  <link href="https://www.mosaicdatapartners.com/insights/"/>
  <updated>2026-07-22T00:00:00Z</updated>
  <id>https://www.mosaicdatapartners.com/insights/</id>
  <author>
    <name>Mosaic Data Partners</name>
    <email>info@mosaicdatapartners.com</email>
  </author>
  <entry>
    <title>Why AI Pilots Stall Before Production</title>
    <link href="https://www.mosaicdatapartners.com/insights/why-ai-pilots-stall-before-production/"/>
    <updated>2026-07-22T00:00:00Z</updated>
    <id>https://www.mosaicdatapartners.com/insights/why-ai-pilots-stall-before-production/</id>
    <summary>Most companies we talk to have run three or four AI pilots and shipped zero of them. The pattern behind that is consistent, fixable &amp; almost never about the model.</summary>
    <content type="html">&lt;p&gt;The demo went well. Leadership was impressed. Someone said &amp;quot;we should roll this out.&amp;quot; That was five months ago, and the pilot is still a pilot (or quietly dead in a Slack channel nobody opens).&lt;/p&gt;
&lt;p&gt;We hear a version of this story in most first conversations about &lt;a href=&quot;https://www.mosaicdatapartners.com/services/ai-consulting/&quot;&gt;AI work&lt;/a&gt;. The details vary, but the failure modes repeat. Here are the six we see, in rough order of frequency.&lt;/p&gt;
&lt;h2 id=&quot;1.-the-demo-was-the-deliverable&quot; tabindex=&quot;-1&quot;&gt;1. The demo was the deliverable&lt;/h2&gt;
&lt;p&gt;A pilot built to impress in a 30-minute meeting is optimized for the happy path: clean inputs, cherry-picked examples, a presenter steering around the rough edges. Production is the opposite: adversarial inputs, edge cases, users who type things you didn&#39;t anticipate. Teams that treat the demo as 80% done discover it was closer to 20%, get discouraged by the remaining grind, and stall.&lt;/p&gt;
&lt;p&gt;The fix is scoping the pilot as a thin slice of the production system (real data access, real auth, one real workflow end to end) rather than a facsimile of it. That version takes longer to demo and months less to ship.&lt;/p&gt;
&lt;h2 id=&quot;2.-no-evals%2C-so-nobody-can-say-whether-it-works&quot; tabindex=&quot;-1&quot;&gt;2. No evals, so nobody can say whether it works&lt;/h2&gt;
&lt;p&gt;Ask &amp;quot;is the AI good enough to roll out?&amp;quot; and the room goes quiet, because &amp;quot;good enough&amp;quot; was never defined. Without an eval set (a few hundred representative inputs with known-good outputs, scored automatically), every quality conversation runs on anecdotes. One bad example from an exec kills the project, one good one over-inflates it, and neither is evidence.&lt;/p&gt;
&lt;p&gt;Teams skip eval sets because building them is tedious, and skipping them is the most common technical reason pilots die. Build the eval set before scaling the pilot. If you can&#39;t define what a good output looks like, that&#39;s not an eval problem; the use case isn&#39;t ready.&lt;/p&gt;
&lt;h2 id=&quot;3.-it-can&#39;t-reach-the-data-that-would-make-it-useful&quot; tabindex=&quot;-1&quot;&gt;3. It can&#39;t reach the data that would make it useful&lt;/h2&gt;
&lt;p&gt;The pilot ran on ten uploaded PDFs. The production version needs the warehouse, the docs wiki, the ticketing system &amp;amp; the CRM, with the user&#39;s actual permissions enforced. That&#39;s an integration and access-control project, and it&#39;s routinely discovered late because the pilot sidestepped it.&lt;/p&gt;
&lt;p&gt;This is also where AI projects turn out to be data projects in disguise: if the warehouse is untrusted or undocumented, the AI inherits every one of those problems and adds hallucination risk on top. We&#39;ve redirected more than one AI engagement into a &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-transformation/&quot;&gt;transformation engagement&lt;/a&gt; first, because a system that confidently answers from bad data is worse than no system.&lt;/p&gt;
&lt;h2 id=&quot;4.-nobody-owns-it-after-the-demo&quot; tabindex=&quot;-1&quot;&gt;4. Nobody owns it after the demo&lt;/h2&gt;
&lt;p&gt;Pilots get built by an enthusiast (an engineer with spare-time energy, an innovation team, an intern). Production systems need an owner with a budget line: someone accountable for accuracy drift, prompt updates when the model version changes, cost monitoring &amp;amp; the support queue. When the enthusiast moves on and no owner was named, the pilot doesn&#39;t fail so much as stop.&lt;/p&gt;
&lt;p&gt;Name the owner before the build starts. If no team wants to own it, that tells you the organization doesn&#39;t actually value the use case, which is cheaper to learn before the build.&lt;/p&gt;
&lt;h2 id=&quot;5.-cost-%26-latency-were-never-budgeted&quot; tabindex=&quot;-1&quot;&gt;5. Cost &amp;amp; latency were never budgeted&lt;/h2&gt;
&lt;p&gt;At demo scale, inference cost rounds to zero and nobody times the responses. At production scale, both matter: a use case that costs $0.40 a query is viable for contract review and absurd for autocomplete, and a 20-second response that felt fine in a demo is unusable inside a support workflow. Set the per-query cost and latency targets in week one and engineer to them; model choice, caching strategy &amp;amp; how much context goes into each call all follow from that budget.&lt;/p&gt;
&lt;h2 id=&quot;6.-security-review-arrived-at-the-end-instead-of-the-beginning&quot; tabindex=&quot;-1&quot;&gt;6. Security review arrived at the end instead of the beginning&lt;/h2&gt;
&lt;p&gt;The pilot ran on someone&#39;s laptop with an API key in a notebook. Then, at rollout, security asks the reasonable questions: where does the data go, what&#39;s the retention policy, who can query what, what happens when the model is prompted to leak? Answering these late can force a re-architecture; answering them early is mostly a set of known patterns (zero-retention API terms, scoped access, injection defenses, audit logging). Invite security to the kickoff and your longest-lead blocker becomes a checklist.&lt;/p&gt;
&lt;h2 id=&quot;what-the-successful-ones-do-differently&quot; tabindex=&quot;-1&quot;&gt;What the successful ones do differently&lt;/h2&gt;
&lt;p&gt;The through-line isn&#39;t talent or budget. Teams that ship treat the pilot as the first increment of a production system: real data, an eval set, a named owner, cost and latency budgets, security in the room, all from week one. That front-loads the effort, and it&#39;s why the project is still alive in month four.&lt;/p&gt;
&lt;p&gt;That&#39;s how we run &lt;a href=&quot;https://www.mosaicdatapartners.com/services/ai-consulting/&quot;&gt;AI engagements&lt;/a&gt;: an audit-plus-prototype phase (typically 2–4 weeks) that produces the eval set and a real go/no-go, before anyone commits to a full build. Sometimes the answer coming out of it is &amp;quot;not this use case, but here&#39;s a better one&amp;quot; (cheaper to hear in week three than month six).&lt;/p&gt;
&lt;p&gt;If you&#39;ve got a stalled pilot (or a list of them), &lt;a href=&quot;https://www.mosaicdatapartners.com/contact?practice=AI%20Consulting&quot;&gt;send us two or three sentences about it&lt;/a&gt;. We&#39;ll tell you within a business day whether it looks recoverable and what we&#39;d check first.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>How Much Does a Data Warehouse Migration Actually Cost?</title>
    <link href="https://www.mosaicdatapartners.com/insights/how-much-does-a-data-warehouse-migration-cost/"/>
    <updated>2026-07-08T00:00:00Z</updated>
    <id>https://www.mosaicdatapartners.com/insights/how-much-does-a-data-warehouse-migration-cost/</id>
    <summary>The real answer is a range, and the range depends on five drivers you can estimate before talking to anyone. Here&#39;s how we scope it, what the hidden costs are, and when you shouldn&#39;t migrate at all.</summary>
    <content type="html">&lt;p&gt;Every migration conversation starts with the same question and gets the same useless answer: &amp;quot;it depends.&amp;quot; It does depend, but on knowable things. If you can count your source systems, estimate how much undocumented logic lives in your current pipelines, and list the reports that absolutely cannot break, you can get to a defensible budget number before a single vendor call.&lt;/p&gt;
&lt;p&gt;Here&#39;s how we think about it.&lt;/p&gt;
&lt;h2 id=&quot;the-five-cost-drivers&quot; tabindex=&quot;-1&quot;&gt;The five cost drivers&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Source system count.&lt;/strong&gt; Each source (Salesforce, your production database, Stripe, the ERP) needs a connector, historical backfill, and someone who understands its quirks. A company with 4 sources and a company with 20 are running different projects. Managed connectors (Fivetran, Airbyte) keep this cheap for standard sources; the expensive ones are the internal systems and the vendors with bad or rate-limited APIs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Undocumented transformation logic.&lt;/strong&gt; This is the driver most teams underestimate. Fifteen years of stored procedures, scheduled SQL jobs &amp;amp; Excel macros encode business logic nobody wrote down. Migrating the data is easy. Reverse-engineering what the old pipeline &lt;em&gt;meant&lt;/em&gt; to do, deciding what to keep, and re-implementing it in tested models is where the hours go. A rough tell: if nobody at your company can explain how revenue is calculated end to end, budget more.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. The report surface you have to protect.&lt;/strong&gt; The migration isn&#39;t done when the data lands; it&#39;s done when the reports leadership already relies on produce the same or better answers from the new platform. More reports, more validation. We handle this with a parallel run (old &amp;amp; new systems side by side, reconciled weekly). It adds cost up front and removes the much larger cost of a broken report surface at cutover.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Team availability on your side.&lt;/strong&gt; Someone who knows the business logic has to answer questions. If your analysts can give a few hours a week, the project moves. If every question waits five days, the timeline (and the bill) stretches. This is free for you to fix and worth real money.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Compliance &amp;amp; access requirements.&lt;/strong&gt; SOC 2, HIPAA, PII handling, row-level security. None of these are exotic, but each adds design and review time. Flag them in the first conversation, not week six.&lt;/p&gt;
&lt;h2 id=&quot;what-the-numbers-look-like&quot; tabindex=&quot;-1&quot;&gt;What the numbers look like&lt;/h2&gt;
&lt;p&gt;With the caveat that these are services costs (platform costs below), based on the engagements we scope:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Small (~4–6 sources, modest logic, a handful of critical reports):&lt;/strong&gt; roughly $25K–$60K, 8–10 weeks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mid (~8–15 sources, real legacy logic, a report surface people fear):&lt;/strong&gt; roughly $60K–$150K, 10–14 weeks.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Complex (15+ sources, compliance requirements, embedded/customer-facing reporting):&lt;/strong&gt; $150K–$250K+, and worth splitting into phases rather than one heroic cutover.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The spread inside each band is mostly driver #2. Two companies with identical source counts can differ 2x on cost because one has documented, comprehensible logic and one has a decade of archaeology.&lt;/p&gt;
&lt;p&gt;Platform costs are separate and recurring: for mid-market workloads, expect roughly $2K–$10K/mo across warehouse compute (Snowflake, BigQuery, Databricks) and ingestion tooling once you&#39;re in steady state. Anyone quoting platform costs without seeing your workload is guessing; a two-week audit produces a real estimate.&lt;/p&gt;
&lt;h2 id=&quot;the-hidden-costs-nobody-quotes&quot; tabindex=&quot;-1&quot;&gt;The hidden costs nobody quotes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The parallel run.&lt;/strong&gt; You pay for two systems for 4–8 weeks. That overlap is why the cutover itself is uneventful.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Report rebuilds.&lt;/strong&gt; Dashboards pointed at the old warehouse need re-pointing, and a chunk of them were broken already. Decide deliberately which ones deserve to survive (usually fewer than you think, which pulls the budget back down).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Your team&#39;s hours.&lt;/strong&gt; Interviews, validation reviews, access provisioning. Budget a few hours a week from the people who know the data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deciding what &lt;em&gt;not&lt;/em&gt; to migrate.&lt;/strong&gt; Every warehouse accumulates dead tables, and migrating everything &amp;quot;to be safe&amp;quot; means paying to move tables nobody queries. An audit that deletes before it moves pays for itself.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;when-you-shouldn&#39;t-migrate&quot; tabindex=&quot;-1&quot;&gt;When you shouldn&#39;t migrate&lt;/h2&gt;
&lt;p&gt;We sell migrations, so read this list as against our own interest:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your current setup is slow but &lt;em&gt;correct&lt;/em&gt;, and the real complaint is dashboard usability. That&#39;s an &lt;a href=&quot;https://www.mosaicdatapartners.com/services/analytics-bi/&quot;&gt;analytics problem&lt;/a&gt;, not a platform problem, and it&#39;s cheaper to fix.&lt;/li&gt;
&lt;li&gt;Nobody trusts the numbers. A new platform won&#39;t change that on its own (the doubt migrates along with the tables). Fix the &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-transformation/&quot;&gt;modeling and testing layer&lt;/a&gt; first or alongside.&lt;/li&gt;
&lt;li&gt;You&#39;re pre-product-market-fit with three sources and one analyst. Postgres and a BI tool are fine. Come back in a year.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-to-get-a-real-number&quot; tabindex=&quot;-1&quot;&gt;How to get a real number&lt;/h2&gt;
&lt;p&gt;Our &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-modernization/&quot;&gt;modernization engagements&lt;/a&gt; start with a one-week discovery: source inventory, logic audit, report tracing, and a fixed-price SOW with the phasing laid out. You can run the same exercise internally: count the sources, list the reports that can&#39;t break, and try to get one revenue number explained end to end. However long that explanation takes is your best single predictor of migration cost.&lt;/p&gt;
&lt;p&gt;If you&#39;d rather we did it, &lt;a href=&quot;https://www.mosaicdatapartners.com/contact?practice=Data%20Modernization&quot;&gt;tell us what you&#39;re running today&lt;/a&gt; and we&#39;ll tell you which band you&#39;re in, within one business day.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Dashboards Nobody Opens: Diagnosing a Failed BI Rollout</title>
    <link href="https://www.mosaicdatapartners.com/insights/dashboards-nobody-opens/"/>
    <updated>2026-06-24T00:00:00Z</updated>
    <id>https://www.mosaicdatapartners.com/insights/dashboards-nobody-opens/</id>
    <summary>The tool is almost never the problem. When dashboards go unused, the cause is upstream: undefined metrics, untrusted data, or answers to questions nobody asked. Here&#39;s how to tell which one you have.</summary>
    <content type="html">&lt;p&gt;The pattern repeats across companies: buy Tableau, Looker or Power BI, spend a quarter building dashboards, hold a launch meeting. Six months later the CFO is still asking an analyst for one-off SQL pulls, and the license renewal is a line item nobody can defend.&lt;/p&gt;
&lt;p&gt;The instinctive diagnosis is &amp;quot;wrong tool.&amp;quot; In our experience running &lt;a href=&quot;https://www.mosaicdatapartners.com/services/analytics-bi/&quot;&gt;analytics engagements&lt;/a&gt;, it&#39;s almost never the tool. Unused dashboards have three root causes, and each has a different fix, so it&#39;s worth diagnosing before rebuilding anything.&lt;/p&gt;
&lt;h2 id=&quot;cause-1%3A-the-metrics-were-never-defined&quot; tabindex=&quot;-1&quot;&gt;Cause 1: The metrics were never defined&lt;/h2&gt;
&lt;p&gt;Symptom: two dashboards show different revenue numbers, and both are &amp;quot;right&amp;quot; by their own logic. One counts bookings, one counts invoiced revenue; one includes refunds, one doesn&#39;t. Nobody wrote down which definition is canonical, so every dashboard embeds its author&#39;s assumption.&lt;/p&gt;
&lt;p&gt;Once a leader sees two conflicting numbers, they stop trusting both (rationally). From then on they ask an analyst, because the analyst can explain the number and a dashboard can&#39;t.&lt;/p&gt;
&lt;p&gt;The fix isn&#39;t visual. It&#39;s a metrics layer: each metric defined once (i.e., in dbt or your semantic layer), version-controlled, tested &amp;amp; documented, with every dashboard reading from the same definition. This is &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-transformation/&quot;&gt;transformation work&lt;/a&gt;, and skipping it is why the second BI rollout fails the same way the first one did.&lt;/p&gt;
&lt;h2 id=&quot;cause-2%3A-the-data-underneath-isn&#39;t-trusted&quot; tabindex=&quot;-1&quot;&gt;Cause 2: The data underneath isn&#39;t trusted&lt;/h2&gt;
&lt;p&gt;Symptom: the dashboard was correct at launch, then a pipeline silently broke, and for two weeks it showed stale numbers before anyone noticed. One or two incidents like that and the team permanently downgrades the dashboard to &amp;quot;directionally interesting&amp;quot; and goes back to asking for pulls.&lt;/p&gt;
&lt;p&gt;Trust in a report takes months to build and one incident to lose, and teams rarely re-adopt a dashboard they&#39;ve caught being wrong. The fix is plumbing: freshness monitoring, data tests that fail loudly, an alert channel someone owns, and a visible &amp;quot;data as of&amp;quot; stamp so staleness is at least visible. If the underlying platform is the real constraint, that&#39;s a &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-modernization/&quot;&gt;modernization conversation&lt;/a&gt;, but monitoring alone fixes more trust problems than replatforming does.&lt;/p&gt;
&lt;h2 id=&quot;cause-3%3A-the-dashboards-answer-questions-nobody-asks&quot; tabindex=&quot;-1&quot;&gt;Cause 3: The dashboards answer questions nobody asks&lt;/h2&gt;
&lt;p&gt;Symptom: the dashboard has 40 charts, was built from &amp;quot;what&#39;s in the data,&amp;quot; and answers everything except the question the VP has on Tuesday morning.&lt;/p&gt;
&lt;p&gt;Dashboards get built forward from the schema (here are the columns, here&#39;s a chart for each) when they should be built backward from decisions. The method we use:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;List the decisions.&lt;/strong&gt; For each intended audience: what do they decide weekly or monthly? (e.g., pricing, hiring pace, campaign budget, inventory buys).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Map each decision to the 2–3 metrics that inform it.&lt;/strong&gt; Not every metric that&#39;s &lt;em&gt;related&lt;/em&gt;; the ones that would change the decision.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Write the definition of each metric&lt;/strong&gt; before charting it (see Cause 1).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Build the smallest surface that covers the list.&lt;/strong&gt; Usually this is 3–5 focused dashboards rather than 30, and every chart has to name the decision it serves.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A useful audit question for any existing chart: &amp;quot;what would we do differently if this number moved 20%?&amp;quot; If nobody can answer, cut the chart.&lt;/p&gt;
&lt;h2 id=&quot;which-one-do-you-have%3F&quot; tabindex=&quot;-1&quot;&gt;Which one do you have?&lt;/h2&gt;
&lt;p&gt;A quick self-diagnosis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conflicting numbers across reports, arguments about whose figure is right → &lt;strong&gt;Cause 1&lt;/strong&gt;, fix the metric definitions first.&lt;/li&gt;
&lt;li&gt;&amp;quot;The dashboard is wrong/stale&amp;quot; said from memory of a past incident → &lt;strong&gt;Cause 2&lt;/strong&gt;, fix monitoring and rebuild trust deliberately.&lt;/li&gt;
&lt;li&gt;Dashboards are accurate and fresh but meetings still run on exported screenshots and ad-hoc pulls → &lt;strong&gt;Cause 3&lt;/strong&gt;, rebuild backward from decisions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most real situations are a blend, but one cause usually dominates, and fixing the wrong one first is how companies end up on their third BI tool with the same complaints (a tool switch changes the look, not the causes).&lt;/p&gt;
&lt;p&gt;If you want a second opinion before committing budget, &lt;a href=&quot;https://www.mosaicdatapartners.com/contact?practice=Analytics%20%26%20BI&quot;&gt;describe your setup in a few sentences&lt;/a&gt;: which tool, how many dashboards, and what leaders complain about. We&#39;ll tell you which cause it sounds like and whether it&#39;s worth an engagement or just a pointed internal fix.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The Modern Data Stack for Mid-Market Companies: What to Buy, What to Skip</title>
    <link href="https://www.mosaicdatapartners.com/insights/mid-market-modern-data-stack/"/>
    <updated>2026-06-10T00:00:00Z</updated>
    <id>https://www.mosaicdatapartners.com/insights/mid-market-modern-data-stack/</id>
    <summary>You don&#39;t need twelve tools. A warehouse, ingestion, dbt &amp; one BI tool cover ~90% of what a mid-market company needs. Here&#39;s the opinionated version, with rough monthly costs and the categories to deliberately skip.</summary>
    <content type="html">&lt;p&gt;The &amp;quot;modern data stack&amp;quot; diagrams floating around have a dozen logos on them, and vendors are happy to sell you every layer. For a mid-market company (~50–1,000 employees, data team of zero to five), most of those layers are premature. The stack that works is four pieces, and the discipline is in what you don&#39;t buy yet.&lt;/p&gt;
&lt;p&gt;This is the opinionated version we give clients in &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-strategy/&quot;&gt;strategy engagements&lt;/a&gt;. We don&#39;t resell any of these tools or take referral fees, so the recommendations are just recommendations.&lt;/p&gt;
&lt;h2 id=&quot;the-four-pieces-you-actually-need&quot; tabindex=&quot;-1&quot;&gt;The four pieces you actually need&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. A cloud warehouse.&lt;/strong&gt; Snowflake, BigQuery, or Databricks. Rough rule: BigQuery if you&#39;re already deep in GCP (the integration and pricing gravity is real), Databricks if ML workloads dominate your roadmap, Snowflake for most everything else. At mid-market scale the capability differences matter less than vendors suggest; pick for your team &amp;amp; cloud rather than the benchmarks. Postgres is a legitimate answer below ~50M rows and a handful of sources, and don&#39;t let a vendor talk you off it early.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Managed ingestion.&lt;/strong&gt; Fivetran or Airbyte for standard sources (Salesforce, Stripe, HubSpot, ad platforms). Writing your own connector for a SaaS API that Fivetran already supports is a poor use of engineering time; save custom pipelines for the internal systems nobody sells a connector for. Watch consumption pricing as row volumes grow (this is the line item that surprises people at renewal).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. dbt for transformation.&lt;/strong&gt; This is the layer that turns raw tables into defined, tested, documented models, and the layer companies skip (which is why their numbers disagree across reports). dbt Core is free; the cost is the modeling discipline. If you adopt one practice from this post, adopt this one. (It&#39;s also most of what our &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-transformation/&quot;&gt;transformation practice&lt;/a&gt; builds.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. One BI tool.&lt;/strong&gt; Looker, Tableau, Power BI, or Metabase; the ranking matters far less than having exactly one, pointed at dbt-modeled tables rather than raw data. Metabase is underrated for teams without a BI specialist; Power BI is the path of least resistance in Microsoft shops. Two BI tools means two versions of every number.&lt;/p&gt;
&lt;p&gt;Orchestration (Airflow, Dagster) earns its place once you have real dependencies between jobs; dbt Cloud or even scheduled queries are fine before that.&lt;/p&gt;
&lt;h2 id=&quot;what-it-costs&quot; tabindex=&quot;-1&quot;&gt;What it costs&lt;/h2&gt;
&lt;p&gt;Rough steady-state monthly numbers for a typical mid-market setup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Warehouse compute: &lt;strong&gt;$500–$5K/mo&lt;/strong&gt; (varies widely with workload; watch for dashboards set to refresh hourly)&lt;/li&gt;
&lt;li&gt;Ingestion: &lt;strong&gt;$300–$3K/mo&lt;/strong&gt; depending on connector count and volume&lt;/li&gt;
&lt;li&gt;dbt: &lt;strong&gt;$0&lt;/strong&gt; (Core) to a few hundred/mo (Cloud)&lt;/li&gt;
&lt;li&gt;BI: &lt;strong&gt;$0&lt;/strong&gt; (self-hosted Metabase) to &lt;strong&gt;$3K+/mo&lt;/strong&gt; (Looker et al., per-seat)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Call it &lt;strong&gt;$1K–$10K/mo&lt;/strong&gt; all-in for the platform. The larger cost is the people and the modeling work, which is where the build-vs-hire-vs-contract math comes in (getting that math right for your situation is most of what a &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-strategy/&quot;&gt;strategy diagnostic&lt;/a&gt; is for).&lt;/p&gt;
&lt;h2 id=&quot;what-to-skip-(for-now)&quot; tabindex=&quot;-1&quot;&gt;What to skip (for now)&lt;/h2&gt;
&lt;p&gt;Each of these is a real category with real value at a scale most mid-market companies haven&#39;t reached. Buying them early adds integration surface and spend without moving a metric.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A data catalog.&lt;/strong&gt; Under ~10 data people, a maintained dbt docs site and a naming convention do the job. Catalogs earn their keep when cross-team discovery is a daily problem.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reverse ETL.&lt;/strong&gt; Skip until there&#39;s a specific, named workflow (&amp;quot;scores back into Salesforce for the SDR team&amp;quot;) with an owner. Bought speculatively, it becomes an unused pipe with a subscription.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MDM (master data management).&lt;/strong&gt; A real discipline, priced and staffed for the enterprise. Mid-market entity-resolution problems are usually solvable in the modeling layer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Streaming infrastructure.&lt;/strong&gt; Kafka because &amp;quot;we might need real-time&amp;quot; is the classic over-buy. Most &amp;quot;real-time&amp;quot; requirements are actually &amp;quot;hourly is fine.&amp;quot; Build streaming when a named use case (fraud, ops alerting, in-product features) needs sub-minute data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A second BI tool.&lt;/strong&gt; Someone will ask for one within the year. Say no and consolidate definitions instead.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;An ML platform.&lt;/strong&gt; Skip feature stores &amp;amp; model registries until at least one model is in production. Ship the first one with plain tooling.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The pattern behind the list: buy the tool when the problem has a name, an owner &amp;amp; a frequency, not because the reference diagram has a gap.&lt;/p&gt;
&lt;h2 id=&quot;sequencing%2C-if-you&#39;re-starting-from-spreadsheets&quot; tabindex=&quot;-1&quot;&gt;Sequencing, if you&#39;re starting from spreadsheets&lt;/h2&gt;
&lt;p&gt;Warehouse and ingestion in the first couple of weeks (a week or two of real work now), dbt models for your 10–20 core entities and metrics next (the actual work), BI on top of those models last. Resist building dashboards on raw data &amp;quot;temporarily&amp;quot;: those temporary dashboards are the single most common mess we&#39;re hired to unwind in &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-modernization/&quot;&gt;modernization work&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&#39;re weighing this build for your own company (what to buy, what your current setup is worth keeping, whether to hire or contract the work), that&#39;s the shape of our 2–6 week &lt;a href=&quot;https://www.mosaicdatapartners.com/services/data-strategy/&quot;&gt;strategy diagnostic&lt;/a&gt;. Or just &lt;a href=&quot;https://www.mosaicdatapartners.com/contact?practice=Data%20Strategy&quot;&gt;tell us where you are&lt;/a&gt; and we&#39;ll give you the two-paragraph version of what we&#39;d do, free, within a business day.&lt;/p&gt;
</content>
  </entry>
</feed>
