Service
Architecture and implementation audit
I assess an existing MarTech implementation and turn the observed problems into prioritised findings and a remediation plan.
What is included
- 01
A map of data flows, integrations, dependencies, owners, and control points.
- 02
A review of collection, quality, identity, and activation as scoped.
- 03
Consent and DULE review: restrictions, labels, policies, marketing actions and blocking tests as scoped.
- 04
A review of monitoring, data freshness, owners and recovery procedures.
- 05
Each finding with its impact and its estimated effort.
- 06
An ordered remediation plan.
Optional
- As a separate engagement: implement checks, alerts and recovery procedures, or execute prioritised remediation.
Related experience and reasoning
-
Built 2021–2024
The risk map of the tag manager
You audit what you inherit, not what you built. A tag manager can rewrite the DOM and download scripts, so I ranked by risk what each piece could do across both sites. With a cookie inventory, Adobe Analytics cross-domain tracking, and the library served through a reverse proxy on its own domain.
- Tealium iQ
- Audit
- Risk
- Cookies
-
Built 2025–2026
Weekly identity health runbook, with baselines
Queries against the profile snapshot, run weekly and logged against a baseline: totals, identity combinations, and orphans by namespace. It is not a report, it is a threshold: if profiles carrying a single identifier climb too fast, the Data Prep mapping is wrong and you see it that week.
- Query Service
- Identity
- Data Prep
- Runbook
-
Built 2025–2026
Proving the purge happened, which is not the same as requesting it
Requesting deletion with full scope is not enough: the reconciliation dataset was not purged with it, and the nightly chain brought the profiles back every morning. Three independent queries surfaced that, and a second bug: the snapshot stores identity keys lowercase while events send them camelCase, so the checks returned false zeros.
- Data Lifecycle
- Query Service
- Reconciliation
- Verification
-
Built 2021–2024
Shared data layer for web, logged-in area and app
Three surfaces with three separate implementations, and therefore three versions of the truth. I rebuilt the data layer on all three against one event contract, coordinating a team of 5, with functional and technical documentation kept in Confluence.
- Data layer
- Web and app
- Event contract
Explore more work in my career history →
Frequently asked questions
Do you need access to our platforms?
Read access, and only where it is needed and authorised. If access is not possible we can work from documentation, exports, and sessions with your team, though the diagnosis will be less precise. I never ask for credentials by email.
Will you change anything in production?
No. An audit observes and documents, it changes nothing. Executing the remediation is a separate engagement, decided after seeing the findings and scoped on its own.
What if the findings question decisions already made?
They get written down anyway. A report that avoids the uncomfortable parts is useless for deciding. Every finding comes with its evidence and its impact, so the discussion is about the data and not about who proposed it back then.
Can you execute what you find afterwards?
Yes, as a separate engagement and with no obligation to hire it. The audit stands on its own: the remediation plan is written so your team or your existing vendor can execute it.
Does this fit your problem?
Send me the context and I will tell you whether this scope fits or a different starting point makes more sense.
Explore this decision
- The load is green. What about the campaign?
A completed load does not prove a campaign works. Separate technical health, data freshness and recovery in AEP operations.
- Seeing data does not permit every use
Who can see data, what it may be used for and what a person accepts. Compare access controls, DULE and consent in AEP.
- Data governance reaches analysis too
What data usage labels do in Customer Journey Analytics, what enabled policies block, and what happens to data views and exports.
- Fix the data or fix the report?
A misclassified channel can be fixed at source, during ingestion or in CJA. Compare who receives the correction and what happens to historical data.
- The purchase is in AEP. Where does it go missing in CJA?
Trace a purchase missing from CJA through the dataset, connection, historical import, data view and filters before loading the data again.