The rare-disease biotech in our Cadillac and Corolla story had two vendors, 41 reports, and 150 data quality checks. By the time anyone looked closely, the reports were down to 10, about 20 checks were still switched on, and one report showed an email open rate of 181% that nobody had flagged.
That’s the operation you inherit. Reporting is already partly broken, and the people reading it have stopped noticing. A replacement that just copies it moves the problems.
No cutover date
The safest switch has no switch day.
The incumbent keeps running while the new team takes feeds over one at a time, so there is no single day when everything has to work. Each feed gets its own small cutover, its own reconciliation, and its own rollback.
The cut-data-costs page calls the phases Assess, Take over, Run leaner, and Ready. The steps below are the Take over phase in detail.
The steps, and what done means
| Step | What you do | Done when |
|---|---|---|
| 1. Inventory | List every feed, its cadence, and every report, with who reads it | Each report maps to its feeds, and an owner has said whether it’s used |
| 2. Ownership check | Confirm the warehouse is in your cloud account, the code in your repo, and you hold the SFTP and source credentials | You could rebuild from raw without calling the incumbent |
| 3. Tests first | Put freshness, volume, schema, and value tests on each feed before changing it | The suite passes on the incumbent’s current output |
| 4. Parallel run | Build the new pipeline for one feed; run both | Both produce the same gold tables on the same input |
| 5. Reconcile | Row counts and sums against the vendor control record; diff against the last snapshot; compare old and new output | Every difference traces to a planned change |
| 6. Accept | Agree criteria with the report owners before the run starts | Owners sign off on that feed |
| 7. Switch, keep rollback | Point reports at the new output; leave the old run live for a period you agree | The old run is retired |
Steps assembled from DataKitchen’s published takeover approach. The “done when” column is an illustrative standard, not a contract term.
Inventory what’s read, not what exists
In that biotech’s case the customer’s own estimate was that about eight of the 41 screens mattered. The prior vendors had already cut the set to 10, and nobody missed the other 31. Rebuilding them is cost with no reader.
So the inventory has two columns, not one: what exists and what someone opens. The second is the scope.
Tests before changes
Coverage goes on the feeds first, so you can prove a change didn’t move a number. Without that baseline, every discrepancy after the switch turns into an argument about whose number was right. With it, a discrepancy is a failed test with a row behind it.
The feeds most likely to fight you are the ones you didn’t create: specialty pharmacy, claims, and syndicated data. That biotech’s specialty pharmacy sent four files a day and was its single biggest source of trouble. Test those first.
Reconcile with more than a row count
Two checks catch the usual breaks. Count rows and sum amounts against the vendor’s control record, so partial files stop in staging. Then diff each period against the snapshot you kept, which catches a restatement that reads as growth.
For the old-versus-new comparison itself, a row count lies. In DataKitchen’s Table Comparison testing, a 55-test health-check suite passed with zero failures after 483 orders were dropped. The 345-test comparison suite failed 61 times, and every failure matched a planned change. The same approach works across engines, and the migration answer for small teams covers setup.
Rollback you don’t have to plan twice
Keep the incumbent’s run live for each feed until it passes acceptance. Then rollback is a pointer change.
Underneath, FITT architecture does the rest. Raw data stays exactly as it arrived. Jobs are idempotent, so a failed load reruns without duplicate rows. Two stages mean there’s no chain of intermediate tables to unwind.
That biotech’s issue log recorded 30 data issues in 2024, from May when the log opens, and 43 in 2025 under the prior vendors, seven still open on handover day. As of the August 2026 write-up, it had recorded none since. The files didn’t get cleaner. The bad ones stop at a test now.