9-week build · 6 phases · M1–M6 workstreams
Phase plan as agreed in the 29 Apr architecture walkthrough and committed in docs/migration-plan/migration-plan-deck.html. Foundation week (W1) sets up the CH dbt-2 home and the specs the build phase consumes.
Receiving team (confirmed 2026-04-30 W1 review): Mike Grabbe + Adrian LeDoux (ET Data Engineering). Rich DiTieri transitioning out — weekly standups with Mike Grabbe + Adrian throughout the engagement for knowledge transfer. Hypercare through July, then steady-state under ET ownership.
W1 review · 2026-04-30
Working session with Rich, Mike Grabbe and Adrian after the migration-plan deck presentation. Plan endorsed, scope confirmed, handoff team finalised, three concrete action items lined up for next week.
Decisions taken
- Normalization moves to dbt (instead of staying in Snowflake) for easier maintenance + GitHub CI/CD
- Cloud Pages = segment-creation UI, riding on super-message impressions (zero additional cost)
- IR QA targets parity with Data Cloud results; imperfect matching acceptable — neither system will be perfect
- Some downtime between old and new systems is acceptable before the 29 Jun deadline
- Completion target: 30 June — driven by the Data Cloud timeline constraint
- Segmentation UI scope strictly limited — fewer than 5 segments routinely, < monthly creation cadence; don't over-build
- Mike Grabbe + Adrian LeDoux take ownership post-handoff, weekly standups for KT during the engagement
- Rich is transitioning out — knowledge-transfer is a flagged risk, mitigated by docs + standups
Action items lined up for next week
Other coordination points raised
- NPS data from Student Tours identified as missing from the JIRA tickets — needs to be incorporated during the dbt #1 normalization phase
- Ygritte v2 agent available directly in Snowflake CH for data validation — better credit limits than Langdoc, with built-in semantic-layer management via Cortex Analyst
- Cross-region replication credit cost — multipliers exist; consensus is it won't be a major concern, but tracked via Resource Monitor
- Warehouse sizing for IR — Snowpark-optimized warehouse may need an upgrade from XS to S/M; Snowflake support request adds 2-3 day potential delay
Full session log: docs/sessions/2026-04-30-rich-w1-review.md in the repo.
What landed in W1
-
1
CH Snowflake dbt-2 home provisioned —
EF_DBT_SANDBOX+EF_DBT_PRODon accountHH82036(Zurich,aws_eu_central_2). Six schemas in each (replicated_us·sfmc_engagement·canonical·ir·cis·segments), warehouseEF_DBT_TRANSFORM_WHcapped at 200 cr/month via Resource Monitor, two RW roles, MCP read access verified. -
2
Replication-group spec drafted (US→CH) — architecture facts verified live (both accounts in Snowflake org
EF, AWS↔AWS cross-region → Database Replication primitive). Copy-paste brief for Mike (Snowflake org admin) embedded in the spec; idempotent DDL skeleton for source + target accounts; lag SLO 30 min and refresh-trigger plan documented. -
3
Canonical-model spec drafted — port the 7 KQ-audited DC DMOs (Individual · Account · Contact Point Email/Phone/Address · Opportunity · Sales Order — 259 fields total) as 1:1 dbt models in
EF_DBT_PROD.CANONICAL. Pattern: one staging model per (DMO × DLO) → UNION ALL final per DMO. PKs stay product-scoped; cross-product joins go via Splink IR (the unified_individual layer). Engagement DMO excluded from canonical scope. -
4
Field-metadata coverage extended to all 8 BUs — pre-existing inventory only covered 5 streams in 3 BUs. Reproducible script
scripts/extend_field_manifests.py(with smart Snowflake view-name fallback per BU) generated 47 new per-stream manifests; total now 52 streams · 8/8 BUs · 993 fields with Snowflake-derived types. The hand-curated 5 originals preserved as-is. - 5
What blocks W2 build kick-off
Brief delivered via RLT-3811: source/target accounts, asks (org-level enablement, replication group EF_DBT_NORMALIZE_TO_CH_RG, credit cost model), SLO. Mike Grabbe has prior experience from the Language project — confirmed in the W1 review meeting.
Critical blocker preventing the build phase from starting. Target: today / Monday at the latest. Once granted, dbt project #1 (US) and #2 (CH) bootstrap can land within W2 day 1.
Standing meeting to be scheduled — agreed in the W1 review as the mitigation for the dual transition (Jonatan's engagement end + Rich's role transition). Documentation cadence runs alongside.
$25 k NTE · spent vs remaining
NTE consumption
8.2% consumed (W1 day 2). Burn pace is intentional this week — foundation work front-loads provisioning + spec writing so the build phase (W2 onwards) executes against a settled scope.
M1 phase budget — Foundation & Access (W1)
🟠 80% used in 2 days — phase target nearly exhausted on day 2. Remaining 3 days of W1 deliberately light (external dependencies in motion); planned soft landing into W2.
Scope reality vs NTE
| Path | Estimate | $ at $140/h | Status |
|---|---|---|---|
| SOW low + new dbt #1 normalize + canonical replication | 189 h | $26,460 | +$1.5 k over NTE |
Trace: at the full-time intensity rate ($140/h) the plan currently exceeds the $25 k NTE by ~$1.5 k. Modest gap, manageable via aggressive AI-assisted SQL or marginal scope trim — agreed at the W1 review meeting today.
W2 (6 May – 12 May) · dbt #1 normalize kicks off
- dbt project #1 (US) bootstrap — repo, profiles, env config
- dbt project #2 (CH) bootstrap — profiles point to
EF_DBT_SANDBOX/EF_DBT_PROD - Replication group operational — first refresh validated (RLT-3811)
- Prefect scaffolding — connections + secrets + alerting
- Mike Grabbe to action the replication-group brief (RLT-3811) — ideally by Mon 5 May
- Katie to provision dbt + GitHub access — today / Monday at the latest
- Schedule the standing weekly KT standup with Mike Grabbe + Adrian
- Add NPS data from Student Tours (raised in the W1 review) to the dbt #1 normalize scope
Where to dig deeper
- Migration plan deck (16 slides) and PPTX export
- SOW Amendment #2 (signed 29 Apr 2026) — NTE $25 k, T&M capped, Net 30
- Sprint log — weekly hours and budget tracker
- 29 Apr architecture walkthrough notes
- specs/setup/143-ch-dbt2-home.md — CH dbt #2 home provisioning
- specs/setup/159-us-ch-replication-group.md — replication group US→CH (with brief for Mike)
- specs/build/175-canonical-model.md — canonical model in dbt #2
- docs/data_stream_field_manifests/ — 52-stream field-metadata inventory