Key Takeaways
Table of Contents
Most of these documents fail because they answer the wrong question. They open with an inventory: here are our 34 source systems, here is the ingestion order, here is the platform shortlist. Nowhere do they state what the business will be able to decide once the thing is running.
That gap has consequences that are now measurable. Gartner predicts organizations will abandon 60% of AI projects unsupported by AI-ready data through 2026, and found that 63% either don’t have or aren’t sure they have the right data management practices in place. Read that carefully. The failure isn’t happening at the model layer. It’s happening two floors down, in warehouses that were designed to serve a monthly reporting cadence and are now being asked to feed systems that consume data hourly.
Our client’s platform was a good example. It was accurate. It was documented. It was also modeled at a grain that made three of their five priority questions unanswerable without a rebuild. No amount of platform migration fixes that.
The document we produced ran to 22 pages. Most of it was decisions, not description. What it contained:
What it deliberately didn’t contain: a tool comparison matrix, a maturity assessment, or a target-state architecture diagram with no decision attached to it. A data warehouse strategy that reads like a vendor evaluation tends to get approved and then ignored, because there’s nothing in it an engineer can act on in week one.
Seven calls did most of the work, and they are the ones Bacancy Technology now walks through at the start of every warehouse engagement:
Each one carries a real trade-off, and each one is where a data warehouse strategy either holds up at month 18 or gets quietly rewritten. Here is the detailed breakdown of each decision that needs to be determined while designing a data warehouse.
We ran discovery as a question-gathering exercise rather than a system audit. Finance, operations, and commercial each brought their list. We consolidated to 34 questions, then forced a ranking, then drew a line after twelve.
The twelve required six source systems, not 34. That single reframing cut the initial build scope by roughly 60% and moved the first useful output from an estimated nine months to under three. The other 22 questions went into a backlog with a note on what each would need. Nothing was refused, just sequenced.
The shortlist was Snowflake, BigQuery, and Redshift. All three separate storage from compute, so the feature comparison was close to a tie. We built a three-year cost model instead, using their actual query patterns: heavy concurrency for two hours each morning, near-idle overnight, a large spike at month end.
That profile favored a platform where compute scales down aggressively between peaks. The relevant number here is that Flexera’s 2026 State of the Cloud Report found 29% of cloud spend is now wasted, reversing five years of steady improvement, with 17% of organizations exceeding their public cloud budgets. Warehouse compute is a well-known contributor. Choosing on a feature matrix and discovering the cost profile in month seven is how teams end up in that 29%.
We wrote four sentences and got them signed off before anyone opened a transformation file. One line per fact table: one row per shipment line per status change. One row per invoice line. And so on.
This sounds trivial. It’s the single most expensive thing to get wrong. Changing grain after models are built means every downstream mart, every metric definition, and every dashboard built on top has to be reworked. On the legacy platform, the shipment fact had been built at order level rather than line level, which is precisely why three of the priority questions couldn’t be answered.
The team’s instinct was Data Vault, because it’s what they’d read about. We pushed back.
Data Vault earns its overhead when you need full auditability, many source systems feeding the same entities, and a record of what every system asserted and when. This client had six sources, a stable set of entities, and no regulatory audit trail requirement. A star schema with slowly changing dimensions gave them faster queries, simpler models, and an onboarding path where a new analyst is productive in days rather than weeks. We used a hybrid only for the customer entity, where source conflicts genuinely warranted it.
Every pipeline was built incremental from the first commit. Not full-refresh with a plan to optimize later, because later never arrives and by then twenty models depend on the refresh behavior.
The cost curve is the argument. Full refreshes scale linearly with total table size, so the bill grows every month whether or not the business grows. Incremental loads scale with change volume, which is far flatter. Two years in, their data volume is up substantially and their warehouse compute spend has moved only slightly.
Tests run before data lands in the reporting layer, and a failure blocks the load rather than logging a warning. A blocked load means a stale dashboard and an alert. A passed-but-wrong load means a number in a board pack that nobody catches for a quarter.
Teams are converging on this view. dbt Labs‘ 2026 State of Analytics Engineering report found the priority placed on increasing trust in data jumped from 66% to 83% year over year, with 71% of data professionals citing incorrect outputs reaching stakeholders as a top concern. Stale beats wrong, and it isn’t close.
Six domains, six named people, agreed before launch. Not a governance committee. Individuals, with their names in the documentation.
The mechanism matters more than the framework. When a quality gate fails at 6am, the alert routes to a person who can decide whether to hold the load or override it. Without that, the alert goes to a shared inbox and the decision gets made by whoever happens to be awake.
Talk to our data warehouse consulting services team about which one your audit requirements justify, before you commit to either.
The old platform couldn’t be switched off on a date. Month-end close depended on it, and a failed close is not a recoverable event for a finance team.
So the migration ran in parallel for two full close cycles. Both platforms produced the same month-end pack, and the Bacancy Technology team reconciled line by line. The first cycle surfaced eleven discrepancies. Nine were legacy bugs that had been quietly wrong for years, which is a common and slightly uncomfortable outcome. Two were genuine errors in our models. The second cycle came back clean, and that was the cutover criterion: not a date, a result.
We also decided what not to migrate. Roughly 40% of the legacy tables had no query activity in the preceding twelve months. Those stayed on the old platform, which was kept in read-only mode for a defined retention window rather than being lifted into the new warehouse. Migrating dead tables is a cost with no return, and it inflates the timeline of every migration project that skips this audit.
Reporting continuity held throughout. Analysts kept working against the legacy platform until their specific dashboards were signed off on the new one, dashboard by dashboard, not in one switch.
The roadmap had two horizons and they were funded differently.
The first twelve weeks delivered six source systems, four fact tables, and the twelve questions. Nothing else. The pressure to add “just one more source” was constant and we refused it every time, because a data warehouse strategy that expands during its first build misses its first deadline and loses executive confidence at the worst moment.
Year two was where the deferred backlog opened up: the remaining sources, the real-time shipment feed, and the customer analytics work that needed the CRM consolidation to finish first.
Maintenance planning got its own line in the budget, which is the part most roadmaps skip. Ongoing work covers pipeline monitoring, query optimization as usage patterns shift, cost review each quarter, and onboarding new sources. Warehouses don’t sit still. Usage grows, someone writes an expensive query pattern that becomes standard, and a platform that was well-tuned at launch drifts within a year without someone watching it.
Month-end close reporting went from roughly nine days to under three. Time-to-answer for a new question, previously a six-week ticket, now sits at days for anything within the modeled domains and weeks only when a new source is genuinely required. Analyst headcount didn’t change; what changed is what they spent the week doing.
Compute spend has stayed close to flat against a large increase in data volume, which is the incremental-load decision paying off rather than anything clever.
The call we’d reverse: we built the conformed customer dimension in the first twelve weeks, before their CRM consolidation project finished. We knew the consolidation was coming and we built anyway, because customer analytics was a visible executive priority and we wanted an early win. When the consolidation landed, the source of truth for half the customer attributes changed, and we rebuilt the dimension and everything hanging off it. That cost roughly five weeks. The lesson isn’t complicated. When a source system is about to change ownership or structure, model around it and wait, even when there’s pressure to show progress on that specific area.
The pattern across this engagement was that the platform choice mattered least. Grain, historization, quality gates, and ownership are where a data warehouse strategy either survives contact with year two or gets rewritten by whoever inherits it. Those decisions cost almost nothing to make correctly at the start and a great deal to reverse later.
If you’re at the point where reporting works but the questions have outgrown it, the useful first step is small. Write down the twelve decisions your business actually needs to make, then check whether your current fact grain can support them. If it can’t, you have a modeling problem, and our data warehouse development services team can map what a rebuild involves before you commit to a platform.
It needs to be defined separately even though it runs inside the build. A testing approach covers three distinct things that are easy to conflate: source-to-target reconciliation during migration, ongoing quality gates on incoming data, and regression testing when models change. Teams usually implement the first, sometimes the second, and rarely the third. The third is what catches a model change that silently alters a metric definition.
Define it during modeling, activate it once you have twelve months of real query telemetry. You need actual usage data to know which tables are cold, and you won’t have that at launch. In our client’s case, the audit at the eighteen-month mark found around 40% of legacy tables untouched in a year. Archiving decisions made on assumption rather than telemetry tend to move the wrong things.
A company-wide data strategy covers governance, literacy, tooling, and organizational structure across every data asset, including lakes, operational systems, and unstructured sources. A warehouse plan is narrower and more concrete: what gets modeled, at what grain, on which platform, owned by whom. One is a multi-year direction, the other is a build specification. Confusing them produces documents too abstract to build from.
By reducing the cost of asking a question that nobody anticipated. The value isn’t the dashboards that exist at launch; it’s whether question thirteen can be answered without an engineering project. That capability comes from grain and conformed dimensions, not from the reporting tool sitting on top.
Quarterly for cost and usage, annually for structure. The quarterly review covers query patterns, compute spend, and which tables have gone cold. The annual review asks whether the original questions still reflect what the business needs, because they usually don’t after twelve months. A plan reviewed only when something breaks is a plan being reviewed too late.
Ownership of the questions belongs to the business; ownership of the implementation belongs to the data team. The split that fails is when IT owns both, because the question list then reflects what’s easy to build. The split that also fails is a business-owned plan with no engineering input on feasibility, which produces a wish list. Our client ran it as a joint document with a business sponsor who signed off on scope decisions.