Updated Q2 2026 · v4.1 of the framework
EN
A field guide, not a sales deck

Most data migrations fail
for the same six reasons.
Don't be the seventh.

A practical readiness framework for mid-market finance and BI teams about to move a warehouse, swap ETL stacks, or stitch silos together. Built from postmortems of 40+ enterprise migrations — half of which went sideways before anyone wrote a single SQL view.

83%
of warehouse migrations finish late or over budget. Most blame "scope"; the real culprit is upstream.
2.4×
cost overrun on projects that skipped a formal readiness check before kickoff.
11 wks
average rework time when source data lineage isn't documented before the move.
9 min
to complete the self-scoring section of this framework. Honestly. We timed it.
01 — The pattern we keep seeing

A migration isn't a tech problem.
It's an archaeology problem.

By the time someone asks "should we move off this warehouse?", the system has usually been running for 6–12 years. Three CFOs ago, somebody hard-coded a tax rule into a stored procedure. Nobody remembers. And that's the cheap part.

01 / Lineage debt

Nobody knows where the numbers actually come from.

The CFO dashboard pulls from a view that joins seven tables — two of them deprecated, one populated by a Friday-night Python script on a laptop under someone's desk. Migrating this isn't engineering. It's forensic work.

02 / Silent owners

The person who'd know retired in 2022.

Stored procedures have no LinkedIn. When the last engineer who understood the ETL left, the knowledge left with them. Documentation says "TODO: explain this." The migration team will rediscover everything the hard way.

03 / Hidden contracts

Finance closes the books on a table you're about to drop.

Schema changes look low-risk on a sprint board. Then audit season hits and the reconciliation script can't find `gl_2019_archive`. Now you're explaining to the auditor why Q3 numbers shifted by 0.4%.

02 — The framework

Six pillars. Score each one from 0 to 10. Total under 36 means stop.

The framework isn't original — most pieces have been kicking around in data-engineering postmortems for years. What's new is putting them in one place, weighting them by how often they actually kill migrations, and giving you a number you can defend in a steering committee meeting.

P-01

Lineage clarity

For your top 20 reports: do you know every table they touch, including transformations? If you'd need a week to find out, score yourself low.

  • Catalog covers ≥80% of reported metrics
  • Each metric has a single, documented owner
  • Lineage queryable, not living in a Confluence page from 2019
P-02

Schema stability

How often does the source schema change? Once a quarter is workable. Once a sprint, with no migration script, is a tax you'll pay forever.

  • Change log exists for breaking schema events
  • Breaking changes flagged before they ship, not after
  • Backwards-compat windows actually honored
P-03

Stakeholder buy-in

The finance team will lose a week of close. Sales ops will lose access to their pet dashboard. If they don't know yet, you're not ready.

  • Named exec sponsor with calendar time committed
  • Top 5 report owners interviewed before scoping
  • Migration windows aligned with quarter-end cycles
P-04

Rollback discipline

If the cutover goes wrong on a Tuesday at 4pm, can you be back on the old system by Wednesday morning without losing data? "We've never tested it" counts as a zero.

  • Documented rollback path per migration phase
  • Tested at least once in staging — not just in a diagram
  • Dual-write window long enough to catch tail issues
P-05

Test coverage

Reconciling a $200M revenue table by eyeballing two dashboards is not testing. You want row counts, hash checks, and sample audits — automated and runnable on demand.

  • Automated reconciliation for top metrics
  • Spot-check protocol for sampled records
  • Acceptance criteria signed off before cutover
P-06

Team bandwidth

Migrations done as a side project alongside two roadmap commitments fail. We have not seen one succeed. Honesty about capacity is half the battle.

  • At least 2 engineers at ≥60% allocation
  • Analyst time reserved for validation work
  • External help budgeted if internal bench is thin
03 — Score yourself

Nine minutes. Brutal honesty required.

Pick a number from 0 to 10 for each row. If you can't decide, pick the lower one — that's the answer. Add the totals at the bottom. The weighting column is there so you can argue with us later.

ID QUESTION WHAT 10/10 LOOKS LIKE WEIGHT
Q-01
Can you trace the top 10 KPIs back to source columns? Not "we have a Confluence page" — actually pull up the lineage in under 5 minutes.
A queryable catalog (DataHub, OpenMetadata, Atlan, or homegrown) covering the top reports.
×3
Q-02
Is there a single owner per critical table? "The data team" is not an owner. A name is.
Each top-50 table has one named owner, still employed, still on the team.
×2
Q-03
When did source schemas last change without warning? "Never" is suspicious. "Last month, three times" is honest.
Zero breaking changes in the last quarter that weren't pre-announced via a change log.
×2
Q-04
Has finance signed off on the cutover window? Not "we'll loop them in." Actual sign-off, in writing.
CFO or controller has approved the timing, knows the risk window, and agreed on a rollback trigger.
×3
Q-05
Have you successfully rolled back in a test environment? Theoretical rollback plans don't survive contact with production.
Full rollback rehearsed end-to-end at least once, with timing data captured.
×3
Q-06
Is automated reconciliation in place for the top 20 metrics? Row count + hash + sample audit. Not just "the dashboard looks right."
Reconciliation suite runs nightly during dual-write, flags drift over a defined threshold.
×2
Q-07
Do you have ≥2 engineers at ≥60% allocation? One brilliant engineer at 100% is a single point of failure, not a team.
Two or more engineers blocked off; PTO and on-call coverage planned around cutover.
×2
Q-08
Is the success metric measurable and pre-agreed? "Faster queries" isn't a metric. "P95 under 2s on the top 10 reports" is.
Quantified targets exist for performance, cost, and data freshness — agreed by stakeholders.
×1

Max weighted score: 180. Below 100 — postpone and fix fundamentals. 100–140 — green light with named risks. Above 140 — proceed and keep this page bookmarked for the next migration.

"The cheapest migration is the one you finish documenting before you start coding. Nobody believes this until their second migration."
— Director of Data Engineering, retail group (12,000 employees), in a 2024 postmortem we ran
04 — Knowing when to call

There's a point where running this alone costs more than help.

We've watched smart internal teams burn nine months trying to do their own warehouse cutover because asking for outside support felt like an admission of failure. It isn't. Migration is a specific muscle, and most BI teams don't get reps often enough to build it.

If your readiness score lands below 100 and the deadline isn't movable, the math usually favors an external data warehouse consultancy taking the heavy lifting while your team owns the institutional knowledge. We've seen this combo cut delivery time by roughly a third, mostly by avoiding the rookie mistakes a seasoned migration team has already made on someone else's project.

And — important caveat — this isn't always the answer. If your score is above 140 and you've done this before, bringing in outside help can slow you down. The framework is meant to make that call obvious, not push you in one direction.

05 — Common questions

Things teams ask us, roughly in order of frequency.

Is this framework specific to a vendor stack?

No. We've applied it across Snowflake, BigQuery, Redshift, Synapse, and a couple of on-prem Oracle setups that refuse to die. The pillars don't change. The tooling under each pillar does, and the framework workbook has a vendor-matrix appendix for the most common moves.

How long does the full assessment take?

The self-score takes nine minutes if you're honest. A proper assessment — interviewing report owners, auditing lineage, dry-running a rollback — is usually 2 to 4 weeks of part-time work for a small team. Plan for closer to four if your environment is older than five years.

We already started the migration. Is it too late to use this?

Not at all. We've had teams pause mid-project, run the assessment, and discover three blockers they'd been about to slam into. The cost of a one-week pause is almost always lower than the cost of a failed cutover.

Does the workbook include the scoring spreadsheet?

Yes — the download bundle has the framework PDF, the weighted scoring sheet in Excel and Google Sheets format, and three sample postmortems (anonymized) so you can see what failure modes look like in practice.

Who's behind this?

Stackline Field Notes is a small editorial side-project run by data-platform practitioners. We write things we wish we'd had when we were doing the work. The framework draws on migration retros from finance, retail, manufacturing, and one very memorable agricultural co-op.

Get the workbook. Run the score. Sleep better before cutover week.

The full bundle — framework PDF, weighted scoring sheet, and three anonymized postmortems — is free. No phone number required. We'll send it to a work email and leave you alone.

Send me the workbook