Executive Progress Report

SOW HLT-DC-MCN-001 · Confidential

SOW HLT-DC-MCN-001

Data Cloud & Marketing Cloud Next
Executive Progress Report

Prepared for James · 14 May 2026 · End of Week 4 + Week 5 Day 1 · Week 5 in flight · last update 16 May (GBP invoicing · INV-002 sent)

4 of 8
Weeks Completed
50%
SOW Budget Invoiced
F-14R + INV-002 GBP sent 15 May
17
Issues Closed Cumulative
+5 this week
+45h
Extra Hours Absorbed
9,099
Components Deploy-Ready
99-100% across 4 manifests
SOW Phase Gantt — 8 Weeks
Phase
W1
16–22 Apr
W2
23–29 Apr
W3
30 Apr–6 May
W4
7–13 May
W5
14–20 May
W6
21–27 May
W7
28 May–3 Jun
W8
4–10 Jun
1 — Discovery & Audit
✓ DONE
✓ DONE
2 — DC Remediation
START
SPECS DONE
DEPLOY READY
DEPLOY
3 — Audience Building
SPECS
BUILD
4 — MCN Configuration
SFMC AUDIT
OP MODEL
PLAYBOOK
CONFIG
PLANNED
5 — Validation & Handover
PLANNED
Canonical Specs Done · 4 Manifests Deploy-Ready (99-100%) · Sandbox Org-ID Rename Solved
Phase 1 — Discovery & Audit 100% closed
Phase 2 — DC Remediation ~75% — deploy starts Wk 5
Phase 3 — Audience Building (canonical specs done) ~30% — Jira execution tickets created
Phase 4 — MCN Configuration (playbook delivered) ~35% in progress
Week 5 Day 1 deliverable (14 May)
14 May · Enrollment manifest 45% → 99.66% deployable via sandbox org-id rename discovery: 4 iterations of validate→strip revealed the real root cause was the sandbox refresh renaming 7 DMOs (Account · Address · Preference_c · Engagement_c · EngagementAttendee · DatedConversionRate · ffbc_Contract_c) by substituting prod org-id 00DU0000000HGVH → sandbox 00Dbb0000083GTR. Surgical content+filename rename unlocked 99.66% deployable. Preference_c__dlm (campus pilot central DMO) now deployable. Idempotent script committed for future refreshes (scripts/data-cloud/rename_dmos_for_sandbox.py). PR #270 · #271 · #273 merged.
14 May · All 4 main manifests deploy-ready at 99-100%: MyStudents (3,673 · 100%) · Platform DMOs v2 (1,094 · 99.73%) · Enrollment v3 (2,068 · 99.66%) · SFMC Others v2 (471 · 100%). Total 9,099 components deployable with 0 component errors. Only remaining sandbox failures are 4 pre-existing broken Apex classes (Hult tech to fix or bypass with --test-level NoTestRun).
14 May · GH #272 created — 5 connector re-auth tracker: umbrella issue tracking the post-refresh re-authentication of all DC source/sink connectors. Jess owns 3 (Salesforce CRM Enrollment · Companion org with Falak · SFMC). Chris owns 2 (BigQuery Service Account JSON · Snowflake Zero Copy private key). Gates stream activation in sandbox. Cross-linked from #178 + #80.
14 May · GH #225 closed — Data Graph playbook delivered: 18-slide deck presented 13 May to marketing + DC + BI teams. Three-bucket architecture (Segments / Data Graphs / dbt) agreed at sprint review. Canonical specs committed (Track A 825 lines · Track B 770+ lines). 5 GH issues updated with status (#178 #149 #80 #173 #272) and signaled In Progress on board.
Week 4 deliverables (7 – 13 May)
13 May · Sprint review — three-epic engagement structure agreed: Data transformation (BI/Snowflake/dbt) · Data harmonization & activation (MCN) · Environment readiness (sandbox/prod). Campus tackled as a dimension first (audience segmentation) before journey build. IP application stage programme code trumps all other campus sources. MC Personalization SDK ruled out for foreseeable future (broken ~1 year) — GA-via-Snowflake (24h delay) is the substitute. Campus preference logic stays in Snowflake (NOT DC Calculated Insights). Session log committed.
13 May · 3 Jira execution tickets created under HULT-20621 epic: HULT-22198 — [BI · Track A] Build Snowflake medallion architecture (Hristo + Chris). HULT-22199 — [DC · Track B] Build DC-first BDT canonical normalisation (Ash / Jess). HULTMKT1-10110 — marketing-side visibility tracker (Simon + Polly). Cross-project link graph established (HULT-22198 ↔ HULT-22199 ↔ HULT-22064 ↔ HULT-22159 ↔ HULTMKT1-10110).
13 May · HULT-22064 closed — Architecture decision resolved as hybrid: Approach A vs B → both. Track A (Snowflake medallion dbt) primary. Track B (DC-first BDT) optional reference / fallback. Re-affirmed across 23 Apr · 6 May · 11 May · 13 May sessions. Execution moves to HULT-22198 + HULT-22199.
13 May · Canonical model specs committed (Track A + Track B): specs/data-graph/p2-149-bi-canonical-model-spec.md — Track A dbt · 7 DMOs · 16 NEW fields with exact SQL CASE logic · seed CSVs for Campus_Catalog + Staff_Assignment + Programme_Lookup · 825 lines. specs/data-graph/p2-149-bdt-canonical-normalization.md — Track B BDT · field-parity · 15-code programme normalization · single + multi-value formulas · 770+ lines. Plus 3 session logs committed (Chris+Hristo BDT debugging · playbook training · sprint review).
13 May · Chris + Hristo BDT working session: BigQuery → Snowflake pipeline replaces Fivetran ($2k/month saved). No Data Cloud SDK adopted now. BDT formula syntax debugged: single quotes (not double). 4 "gold" tables for pilot <10 fields each. DLO naming convention TBD with Hristo before pilot demo. 6 action items captured.
13 May · Playbook training session delivered: presented to marketing + DC + BI teams. Three-bucket architecture · 7 canonical DMOs · PG/UG Data Graph split · MCN migration approach · pillar journey analysis. Six checkpoints for validation defined.
13 May · HULT-21768 closed — MC Connection deep audit: Final-decision comment posted (hybrid architecture · Data Graphs working in flows per Ash · MC connector path validated · backups in place · Snowflake Zero Copy audit captured). Transitioned to Done.
13 May · 7,298 metadata files committed (PR #262): Brings local repo in line with prod metadata. Post-retrieve dry-runs validated 94.7% clean across all 5 manifests at component level.
12 May · Jess unmapped EmailEngagement + BulkEmailMessage DMOs: 20-min coordination call with Jess + Ash + Hristo. All 47 CIs backed up to audit/phase-4/calculated-insights-pre-unmap-2026-05-12/ (JSON + Metadata XML formats · deployable manifest). BI safety confirmed — Tableau pulls SFTP not DC, unmap window invisible to BI.
11–12 May · Sandbox post-refresh state assessed: CDP feature flags (CdpDataStreams, CdpDataSpace) reactivated by Jonatan (not SF Support). 3 remaining gaps tracked: stream activation · Data Kits redeploy · companion org link. Memory updated for future-session context.
8 May · Polly's Data Dimensions delivery received + digested: 16 NEW fields documented with Polly's exact SQL CASE logic. 4 of 6 spec questions resolved via direct prod queries (Applicant RecordType · Created_Date__c vs CreatedDate · Lead_Created_Date__c gap pattern). 2 critical Snowflake replication gaps identified (Lead.ImportFile_LastImportDate__c + Lead.Created_Date__c not yet in replica — drives Pipeage logic).
7 May · #225 Data Graph playbook deck completed: 18-slide deck + spec scaffolds. 10 iteration cycles tightening architecture (denormalized → normalised canonical model · SF Data Graph constraint verification · multi-org IR · Q→Journey mapping). Final: 18 slides · 6.1 MB PPTX.
Week 3 deliverables (30 April – 6 May)
6 May · Stakeholder sprint review (#176 closed): 10-slide deck presented to broader Hult + SF stakeholders. 5 architectural confirmations: hybrid foundation · medallion bronze/silver/gold · daily→hourly refresh cadence · pilot scope expanded to campus AND programme · Tableau remains BI system. 160 tables already moved to Snowflake; silver layer reached.
6 May · Hristo + Chris pilot architecture session: Track A (Snowflake-first dbt) confirmed as the primary path; Track B (DC-first BDT) not selected — fragments normalisation authority. Five pilot checkpoints framed (dbt → ZC → new DMO → mapping → activation showcase). Conflict-resolution rule for `Preference__c` locked. dbt Core in Snowflake workspaces (not external dbt Cloud) confirmed.
6 May · Polly + Simon transformation rules session: Three-category framing locked for the 64+ MC transformation rules they catalogued (segmentation/personalisation → DC UI; normalisation → Snowflake). Data Graph organised by product family + audience (PG vs UG separate Data Graphs). PI_page calculation, Microsoft domain handling, PG/UG cross-pollination exclusion documented.
6 May · Consent architecture meeting: DC owns consent (not Snowflake — Snowflake = reporting only). MC unsubscribe = canonical base (362K records). Three-DMO model re-confirmed (`CommunicationSubscription` + `ChannelType` + `CommunicationSubscriptionConsent` + `ContactPointConsent` for IR). Seven-flag reconciliation identified as core open work item for #79 spec.
6 May · #175 Preference scoring deprecation closed: Live SOQL evidence confirmed scoring designed but never went live (0 of 1.7M records ever populated). 4 fields + Apex + lookup table cleanup. Future scoring lives in Snowflake gold.
6 May · #157 web behavioural gap closed (discovery): Spec committed; 14 MC-Personalization streams enumerated; three layered MCP→DC pipelines identified. Owner correctly shifted Lucy → Ash. Execution lives under HULTMKT1-9834.
6 May · 2 new tickets created: #219 [SETUP] MCN deliverability + IP warming + subdomain reputation strategy (verified via SF + 3rd-party docs); #221 [SETUP] MCN Preference Center configuration (Next-native page + CloudPage migration cutover).
5 May · Operating-model deck (#142) signed-off: 14-slide deck presented to broader team and approved as the post-architecture working framework. Closed.
5 May · Simon + Jess working session: 8-slide deck delivered. 4 decisions framed for #79 (consent) + #82 (subscriber migration). Lead-side opt-out counts verified via Snowflake Zero Copy share (bypassed SOQL 120s timeouts via columnar engine).
4 May · #160 closed: MC stream cleanup audit complete — 31 streams safely deleted, zero downstream consumer impact verified.
Week 2 deliverables (23–29 April)
30 Apr · Snowflake audit: 121 Zero Copy share objects + 779 medallion tables across 8 databases inventoried. Reusable scripts committed for re-runs.
30 Apr · Operating-model deck (#142): 14-slide framework for the post-architecture working model — data flow, team workflow, Data Graph lifecycle, consent mapping. In review.
30 Apr · All Subscribers migration spec drafted (#82): SFMC truth verified at 362K current global unsubs. 3-phase hybrid approach documented. Open questions raised for legal scope.
30 Apr · MC stream cleanup audit (#160): Verified Jessica's deletion of 31 sfmc-connector streams against all 47 CIs and 60 segments — zero downstream dependencies confirmed. Safe to proceed with reconnection.
29 Apr · Architecture decision (#96): Hybrid model agreed — Snowflake delivers harmonised Gold layer; Data Cloud handles Identity Resolution, Consent (Approach B for consent only), and activation. Campus pilot is the first proof point.
29 Apr · SFMC migration-readiness classification: 14 Pillar query families classified across 4 buckets (Ready / Needs CI/DG / Cannot migrate / Out of scope). 12 Gold-layer fields prioritised for build.
28 Apr · SFMC Classic full instance audit (#143): 362 automations, 1,534 journeys, 1,959 query activities, 41 CloudPages catalogued.
28 Apr · Polly + Simon Pillar journey walkthrough: Full SFMC automation stack for PG/UG nurture documented end-to-end (entry, splits, suppression, personalisation).
28 Apr · BI architecture session #4: Credit-cost analysis Approach A vs B (~60M credits/year for full-DC IR ruled out). Approach decision teed up for following day.
27 Apr · Salesforce AgentForce + Data Cloud workshop: Strategic agentic-readiness assessment. Snowflake ML + Zero Copy confirmed as preferred lead-scoring architecture. External FAQ agent identified as highest-yield starter.
Week 1 deliverables (16–22 April)
23 Apr · BI architecture session #3: Approach A vs B framing. Identity Resolution cost insight (~60M credits/year for full-DC scenario).
23 Apr · DLO/DMO/DSO inventory (#129): 137 DMOs, 203 DLOs, 224 DSOs, 3,454 field-level mappings. Zero coverage gap. DBML lineage diagrams published.
23 Apr · Calculated Insights inventory (#126): 47 CIs documented with SQL, schedule, status, DMO lineage.
23 Apr · Segments inventory (#130): 60 Data Cloud segments audited with criteria, runtime stats, and health checks.
22 Apr · V3 CRM Data Kit field maps (#112): 963 DLO→DMO field mappings retrieved and indexed.
21 Apr · BI sessions #1 + #2: Bronze/Silver/Gold architecture confirmed; Zero Copy strategy; dbt adoption; ML model inputs; field-mapping strategy.
21 Apr · Simon marketing call: MCN migration priorities, consent complexity, parallel-operation period planning.
17 Apr · Data Stream baseline (#76): All 176 streams audited. All healthy, 344M+ records. Dual SFMC architecture documented.
17 Apr · CI write-back diagnosis (#74): Root cause identified — source stream at 0 records since Feb 2026. 409 stale residuals.
17 Apr · Opportunity 3-stream audit (#75): Architecture confirmed intentional. Custom Field History is audit log.
16 Apr · Repo scaffold (#77): Spec-driven workflow, issue templates, board, folder structure live.
16 Apr · Access provisioning (#72): Salesforce prod, sandbox, JIRA, GitHub, Snowflake, Marketing Cloud — all confirmed.
16 Apr · Kick-off + GitHub board: Stakeholder map confirmed. 21-issue board created with Jira refs and SOW scope notes.
What Happened — Week by Week
Week 1
16–22 Apr
Kick-off, Discovery, BI Deep Dive & Full Audit
Kick-off with full team. BI sessions #1–3: Bronze/Silver/Gold confirmed, Zero Copy strategy, IR cost analysis, field-mapping strategy. 176 Data Streams baselined — all healthy. V3 CRM Data Kit retrieved (963 field maps). Full DLO/DMO/DSO inventory — zero coverage gap. 47 CIs and 60 segments inventoried. GitHub board created with 21 issues. 7 closed in Week 1.
Complete · ahead of plan
Week 2
23–29 Apr
Architecture Decision · SFMC Audit · Operating-Model Deck
Salesforce AgentForce + Data Cloud workshop (3h, full team). BI session #4 — credit cost analysis Approach A vs B (~60M credits/year for full-DC IR ruled out). Polly + Simon SFMC Pillar walkthrough — full automation stack documented. Architecture decision 29 Apr: Hybrid model — Snowflake gold + DC for IR, Consent (Approach B), and activation. Campus pilot first. SFMC Classic full audit: 362 automations, 1,534 journeys, 41 CloudPages, 14 query families classified. Snowflake medallion + Zero Copy share audited (779 tables · 121 share objects). MC reconnection cleanup begun by Jessica (31 streams deleted, audit confirmed safe). Operating-model deck (#142) delivered — 14 slides, in review. All Subscribers migration spec (#82) drafted with corrected baseline.
Complete · architecture decided · INV F-14 issued (€5,000)
Week 3
30 Apr – 6 May
Pilot Scope Locked · Operating Model Signed-Off · Consent Architecture Decided
Operating-model deck (#142) presented and signed-off. Stakeholder sprint review delivered (#176). 7 working sessions today alone (sprint review · Hristo BDT · Jess scoring · Simon+Jess working session · Hristo+Chris pilot architecture · Polly+Simon transformations · consent meeting). Pilot scope locked: campus + programme, Track A (Snowflake-first dbt) primary, 5 checkpoints framed. Consent architecture decided: DC owns consent, MC unsubscribe = canonical base (362K), 3-DMO model + ContactPointConsent, seven-flag reconciliation as next-spec scope. Polly+Simon catalogued 64+ MC transformation rules and 3-category framing locked (segmentation/personalisation → DC UI; normalisation → Snowflake). Wave 2 enrichment (GSC + EA Comments NLP) deferred. 5 issues closed (#142, #160, #157, #175, #176). 2 new tickets created (#219 deliverability, #221 preference centre). All Lead-side opt-out counts verified via Snowflake ZC bypassing SOQL 120s timeouts.
Complete · pilot scope locked · ready to build
Week 4
7–13 May
Playbook Delivered · Canonical Specs Done · Architecture Decision Closed
Heaviest delivery week so far. Playbook training session (18-slide deck) presented to marketing + DC + BI teams. Three-bucket architecture confirmed at sprint review (Segments / Data Graphs / dbt). HULT-22064 architecture decision closed as hybrid (Track A primary · Track B fallback). Canonical specs committed — Track A (dbt · 825 lines · 16 NEW fields with SQL CASE) + Track B (BDT · 770+ lines · field parity). 3 Jira execution tickets created — HULT-22198 (BI Track A) · HULT-22199 (DC Track B) · HULTMKT1-10110 (MKT visibility). HULT-21768 closed (MC Connection deep audit). Polly's 16 NEW field requirements digested into Track A spec. 47 CIs backed up before Jess's EmailEngagement unmap (12 May). 7,298 metadata files committed.
Complete · 22.3h actual · INV-002 ready (€5,000)
Week 5
14–20 May
Sandbox Deploy + Stream Activation (gated on Jess + Chris connector re-auth)
Day 1 (14 May) delivered: 4 manifests deploy-ready at 99-100% (9,099 components · 0 errors). Sandbox org-id rename root cause discovered — surgical rename script committed for future refreshes. GH #272 created tracking 5-connector re-auth (Jess: 3 · Chris: 2). GH #225 closed.

Days 2-7: First deploy passes to sandbox (MyStudents + Platform DMOs zero-risk · then Enrollment + SFMC with NoTestRun). Build stream activation script for once Jess restores connectors. INV-002 invoicing (€5,000 · Wks 3+4). dbt model build begins for Track A (Hristo + Chris). 12 in-use CIs deactivation. Companion org re-link (with Falak).
In flight · Day 1 of 7
Week 6
21–27 May
MCN Configuration · CI Build · Consent & All Subscribers
Calculated Insights build (#81 — PipeAge · Suppression Flags · Footer CTAs · Application Link · driven by Track A canonical fields). Consent architecture implementation (#79). All Subscribers migration execute (#82) once legal scope confirmed. Programme footer CTAs (#87). End-to-end Pillar journey on MCN.
Planned
Weeks 7–8
28 May – 10 Jun
Validation & Handover
QA of all configurations. Team enablement sessions (MAT, BI, Tech) per #93. Documentation handover via GitHub. Final sprint review and SOW closure.
Planned
Architecture Closed · Specs Done · Manifests Deploy-Ready
Architecture Decision Closed — 13 May (HULT-22064)

Approach A vs B → resolved as hybrid. Track A (Snowflake medallion · dbt silver→gold · Zero Copy reverse to DC) is the primary path. Track B (DC-first BDT) is the optional reference / fallback for marketing autonomy use cases. Re-affirmed across 23 Apr · 6 May · 11 May · 13 May sessions. Execution moves to HULT-22198 (BI Track A) and HULT-22199 (DC Track B), with HULTMKT1-10110 as the marketing-side visibility tracker. Cross-project link graph established.

Canonical Specs Complete — 13 May

Both tracks fully specced and committed to repo: Track A spec (p2-149-bi-canonical-model-spec.md) covers the 7 canonical DMOs with the exact SQL CASE logic Polly delivered 8 May · all 16 NEW computed fields · seed CSVs for static catalogs (Campus + Staff_Assignment + Programme_Lookup per Polly's 13 May confirmation). Track B spec (p2-149-bdt-canonical-normalization.md) mirrors at field-parity with BDT-flavoured formulas. Total ~1,600 spec lines. BI team now has unambiguous build target.

Sandbox Org-ID Rename Solved — 14 May

Sandbox refresh renamed 7 DMOs by substituting prod org-id (00DU0000000HGVH) with new sandbox org-id (00Dbb0000083GTR). Root cause found via Tooling API query against MktDataModelObject (not EntityDefinition — the standard query misses DC objects). Surgical rename script committed for future refreshes. Result: Enrollment manifest moved from 45% deployable (over-strip) to 99.66% (1,249 → 2,068 components recovered including the critical Preference_c__dlm for the campus pilot).

Sprint Review · Three-Epic Structure Agreed — 13 May

Engagement work organised into three concurrent streams: Data transformation (BI · Snowflake · dbt) · Data harmonization & activation (MCN) · Environment readiness (sandbox/prod). Phase 1 (data in: Snowflake → MCN) prioritised over data out. Campus tackled as a dimension first before journey build. IP application stage programme code trumps all other campus sources. MC Personalization SDK ruled out (broken ~1 year) — GA-via-Snowflake (24h delay) is the substitute. CIs not the right tool for composite logic.

5 Connector Re-Auths Now Blocking Stream Activation — 14 May (#272)

Post-refresh, all DC source/sink connectors need re-authentication before streams can pull data. Jess owns 3 (Salesforce CRM Enrollment · Companion org with Falak · SFMC MID 523000969). Chris owns 2 (BigQuery Service Account JSON · Snowflake Zero Copy private key). Connector #1 (SF CRM) alone unlocks ~110 streams. Once all 5 are re-authed, scripted stream activation can run via SSOT REST API. Tracked in #272.

Pre-Existing Sandbox Apex Blockers Surface on Any Deploy

4 Apex classes in sandbox have compile errors unrelated to our scope (AzureTest · ChangeOwner · Task_AssignOwner · TestForchangeOwnerTrigger). They block sf project deploy validate by default. Workaround: deploy with --test-level NoTestRun flag — our scope is metadata-only, no Apex touched. Permanent fix: Hidayah / Hult tech team to fix or delete. Not in our SOW scope.

Polly's GA4 Question — Architecturally Supported (14 May)

Polly asked (James CC'd) whether GA4 web behaviour can flow into Data Cloud for campaigning — concretely, segmenting Enquiries / IPs without Campus preference who visit campus web pages. Yes — the architecture already supports this (GA4 → BigQuery → Snowflake → DC via Zero Copy, locked in HULT-22064 hybrid decision). The use case lands naturally once HULT-22198 dbt build populates the canonical Engagement DMO (fields like Last_Webpage_Name_Visited + Days_since_last_webpage_visited are already in the spec). The real practical blocker is the <1% GA-to-Contact match rate (identity stitching investment) — architecture itself is solid. Full reply tracked in #277. Polly on leave next week; Simon + Ash to receive updates per her ask.

Data Cloud Object Model — Interactive Diagram

Full DLO → DMO lineage covering all 137 DMOs, 203 DLOs, and 224 DSOs across both Enrollment and MyStudents orgs. Interactive — zoom, pan, and click to explore relationships.

Open full diagram in dbdiagram.io →
Password protected · request access if needed
Full Workstream Status
#IssuePhaseStatus
72Access provisioning (sandbox, JIRA, GitHub, MC)1Done
74CI write-back diagnosis — CC_TopChoiceCampus__c1Done
75Opportunity 3-stream split audit1Done
76Data Stream baseline — 176 streams1Done
77Repo scaffold + spec-driven workflow1Done
112V3 CRM Data Kit field maps (963 mappings)1Done
143SFMC Classic full audit (362 autos · 1,534 journeys · 14 query families)1Done
96BI architecture review — Hybrid decided 29 Apr1Decided
142Operating-model deck — signed-off 5 May4Done · Wk 3
160MC stream cleanup audit2Done · Wk 3
157Web behavioural data gap — discovery, exec lives in HULTMKT1-98342Done · Wk 3
175Preference scoring deprecation — 0 of 1.7M ever populated2Done · Wk 3
176Stakeholder project update deck — presented 6 May4Done · Wk 3
176Stakeholder project update deck — presented 6 May4Done · Wk 3
225Data Graph playbook — deck + canonical specs + Jira tickets (closed Wk 5)4Done · 14 May
149Campus canonical pilot — specs done, Jira execution tickets active2In Progress · gated by #272
80MC connection recreation — sandbox-side prep done, prod gated on #272 + HULTMKT1-74674In Progress
178Data Cloud One companion org sandbox provisioning — deploy-ready, link gated on #272 item 21In Progress (Jess + Falak)
173Unmap existing DC configurations — partial done 12 May (EmailEngagement) · gold-layer in HULT-22198/1992In Progress
82All Subscribers migration — spec drafted, blocked on DD4Spec drafted
84WhatsApp / Unified Messaging — audit complete, 5 bugs4In Review
272Sandbox 5-connector re-auth (Jess: 3 · Chris: 2) (NEW Wk 5)1Critical-path blocker
73Two-org Data Space/Data Share architecture1Backlog
79Consent architecture — DC owns, 7-flag reconciliation open4Backlog
81Calculated Insights build — PipeAge, Suppression, CTAs4Backlog
83Sender profiles + Reply Mail Management4Backlog
85BigQuery DLO — batch data transform workaround2Backlog
86WhatsApp bulk send — MCN setup4Backlog
87Programme-specific footers + application link CTAs4Backlog
88Stream error monitoring — 27 streams2Backlog
92Lead Source deduplication2Backlog
93Team enablement sessions5Backlog
219MCN deliverability — IP warming, subdomain rep, sending strategy4Backlog
221MCN Preference Center configuration4Backlog
Budget & Utilisation — End of Week 4 + Week 5 Day 1
Weeks Completed
4 of 8
Budget Invoiced (capped)
£10,000 GBP ≈ €10,000 of €20,000 · F-14R + INV-002 issued 15 May
Invoice status (15 May — currency switched to GBP): Per stakeholder decision with James (15 May), all invoicing rebilled in British Pounds via the UK entity at today's conversion rate. F-14R (Wks 1+2) + INV-002 (Wks 3+4) both sent 15 May to finance inbox, CC James for priority processing. Total billed to date = 10,000 EUR equivalent in GBP. INV-003 (Wks 5+6) issues end of Wk 6 in GBP. Fortnightly invoicing, NET 30.

Cap rule honoured: Weekly cap fixed at 2,500 EUR equivalent (now GBP) regardless of actual hours. Hours absorbed beyond the 20h cap-equivalent: Wk 1 +12h · Wk 2 +12.5h · Wk 3 +19h · Wk 4 +2.3h. Total of +45.8h absorbed beyond contracted capacity. None invoiced — contracted SOW total of €20,000 equivalent will not be exceeded.

Pace: 50% invoiced at 50% of timeline. Engagement on schedule. Actual delivery at ~60% completion (Phase 1 closed · Phase 2 at 75% with manifests deploy-ready · Phase 3 specs done · Phase 4 playbook delivered). Slight delivery lead vs invoicing pace.
Next Steps — Week 5 (in flight) + Week 6
First deploy passes to sandbox (Fri 15 May) — MyStudents (3,673 components · 100%) and Platform DMOs v2 (1,094 · 99.73%) deploy zero-risk · no flags. Then Enrollment v3 (2,068 · 99.66%) and SFMC v2 (471 · 100%) with --test-level NoTestRun flag. Total 7,306 components landing this week (out of 9,099 ready).
#272 connector re-auth execution — Jess unblocks SF CRM + Companion org (with Falak) + SFMC. Chris unblocks BigQuery (Service Account JSON) + Snowflake Zero Copy (private key). Connector #1 (SF CRM) alone is single-handed by Jess in <15 min · unlocks ~110 streams.
Stream activation script — once connectors restored, scripted POST to /services/data/v60.0/ssot/data-streams/{id}/refresh for the 176 streams. Jonatan delivers the script; Jess runs once connectors are live.
Track A dbt model build (HULT-22198 · Hristo + Chris) — Snowflake silver→gold for the 7 canonical DMOs. Seed CSVs (Campus_Catalog · Staff_Assignment · Programme_Lookup) committed. Critical replication gap: Lead.ImportFile_LastImportDate__c must be added to the Snowflake replica or Pipeage cannot compute correctly.
Track B BDT prototype (HULT-22199 · Ash / Jess) — campus + programme normalization formulas in DC sandbox once connectors restored. Tracks A and B mirror each other for cross-validation (diff < 1% on identical input).
INV-002 invoicing — Wks 3 + 4 = €5,000. Wk 4 closed 13 May.
CalcInsights pre-step + deploy — deactivate the 12 in-use CIs in sandbox UI first · then deploy CalcInsights manifest (47 CIs · 35 clean + the 12 reactivated).
Wk 6 — Phase 4 build phase — #81 (CI build: PipeAge · Suppression · CTAs · Application Link) · #79 consent architecture implementation · #82 All Subscribers migration · #87 programme footers · end-to-end Pillar journey on MCN.
Open Questions for Leadership
QQuestionOwnerBlocks
Q1Operating-model deck (#142) — sign-off?James + Simon✓ Resolved 5 May · signed-off, deck closed
Q4Campus canonical — confirm as first proof point?James + Simon✓ Resolved 6 May · campus + programme locked
Q2Legal scope for All Subscribers migration — current 362K unsubs, or broader historical superset (subscribers who unsubed at any point, even if since re-subscribed)?Ku / Simon (legal)#82 execute · Wk 5+
Q3Data Graph naming + structure — confirm PG vs UG split (per Polly+Simon decision) and per-journey-family pattern before first build.Marketing (Simon · Polly · Ash)First Data Graph build · Wk 5+
Q5 (NEW)Subscriber-vs-Lead/Contact discrepancy DD — quantify gap, document third-party-lead duplication root cause.Ash + ChrisBlocks #79 + #82 spec drafting
Q6 (NEW)Event-reminder classification — marketing vs transactional? Affects footer language + whether event reminders bypass the marketing tickbox.Simon + Polly (legal counsel)#221 preference centre + #87 footers
Q7 (NEW)MCN deliverability unknowns — IP type today, IP transfer to MCN, parallel-run sharing, sending subdomain decision.Ash + SF Support#219 deliverability strategy · before first MCN send
Q8 (NEW · 14 May)Polly's GA4 question (James CC'd): can web behaviour from GA4 be brought into Data Cloud for campaigning? Concrete use case: segment Enquiries/IPs without campus preference who visit campus pages.Polly (on leave next wk) · Simon · Ash · Chris+Hristo (BI)✓ Answered preliminarily 14 May · #277 · architecture already supports this (GA4 → BigQuery → Snowflake → DC via Zero Copy) · use case lands naturally once HULT-22198 dbt build populates Engagement DMO · real blocker is <1% GA-to-Contact match rate
Health Check at End of Week 4 + Week 5 Day 1 (per SOW §6)
Schedule
Phase 1 closed on time. Phase 2 at ~75% — manifests deploy-ready, deploys execute this week. Phase 3 canonical specs done, Jira execution tickets created (HULT-22198 + 22199). Phase 4 playbook delivered + GH #225 closed. Engagement on plan.
Budget
On budget — €5,000 invoiced (INV F-14 · Wks 1+2). INV-002 (Wks 3+4 = €5,000) ready to issue. Cap rule applied · +45.8h absorbed total, none invoiced.
Scope
No scope expansion. 1 new ticket created (#272 — 5-connector re-auth tracker) within Phase 1/2 envelope. Architecture decision (HULT-22064) closed. SOW §5 boundaries respected.
Risk
Amber — open Hult-side dependencies that gate Wk 5/6: (1) #272 5-connector re-auth — Jess + Chris · gates stream activation · (2) Sandbox Apex compile errors — Hidayah / tech team to fix or accept NoTestRun bypass · (3) Multi-preference resolution rule — Simon + Polly · gates campus pilot final logic.
Net read

Engagement on schedule and on budget at the Week-4-end / Week-5-Day-1 checkpoint. 5 major closures this week: architecture decision (HULT-22064) · MC connection audit (HULT-21768) · Data Graph playbook (#225) · 16 NEW field SQL logic captured in specs · sandbox deploy-readiness landed. Phase 2 jumped from 40% → 75% through the deploy-readiness landing. The Wk 5/6 critical path is #272 connector re-auth — once Jess + Chris complete their 5 connectors, the deployed metadata becomes live data flowing into DC. Pilot build (HULT-22198 + 22199) starts in parallel. Engagement now at 60% delivered against 25% invoiced — outperforming pace.