Marketing
How a bank marketing team stopped spending half a day fixing partner data every week.
A regional bank was losing half a day every week reconciling partner data. Naming conventions drifted, dashboards nobody trusted, corrections took days. After the rebuild, analysts describe fixes in plain English and they land as dbt pull requests in minutes.

The problem
Marketing teams collected data from multiple partners categorized by DMA, channel, tactic, and audience. Each partner varied their naming structure and changed values without proper communication, requiring weekly QA and ongoing corrections. This eroded trust in data tools and added hours of review time each week, delaying decision making.
The work
Four people across the two agencies were entering the data. Three stakeholders on the bank's side used what came out. That is a small group, and it was still enough for the vocabulary to drift, because nobody owned it.
The monitor did not try to judge whether a number looked reasonable. It checked every incoming value against the list we had agreed to accept for DMA, channel, tactic and audience. Anything not on that list was an error, whether it was a new value nobody had mentioned or a misspelling from whoever typed it that morning.
An error did not stop the run. The row passed through carrying the flag and I got the note. That matters more than it sounds. A pipeline that halts on one bad tactic name turns a typo into a missing dashboard, and a marketing team that opens a broken dashboard stops trusting the data for reasons that have nothing to do with the data. Some of those fixes I told the client about. Most I did not, because by the time there was anything to report it was already corrected and there was nothing for them to do.
The corrections went back to the analysts. Whoever spotted a wrong classification typed what had changed in plain English, and the workflow turned that into the dbt edit and opened a pull request. I approved the code. That split is the point: the person who knows the data proposes the change, the person who knows the warehouse merges it, and nobody waits on a sprint queue to fix a mislabeled channel.
The solution
Data collection and transformation were automated to eliminate manual maintenance. A monitoring layer watched naming conventions across partner feeds and alerted the responsible teams the moment an inconsistency appeared. No more waiting until a dashboard looked wrong.
When corrections were needed, marketing analysts handled them directly. They described the fix in plain English, and the workflow translated that into a dbt model edit with a GitHub pull request, reviewable, trackable, and live in minutes. No SQL. No engineering ticket. No waiting in a sprint queue.
The same self-service surface replaced recurring data review meetings and ad hoc Slack requests. Analysts could ask questions about their data on demand and get answers immediately, turning a weekly 30-minute call into something they just didn't need anymore.

Results
- Average correction time dropped from 2.5 days to under 30 minutes
- Unrecognized partner values flagged on arrival rather than surfacing later as a wrong number in a dashboard
- Engineering tickets for data corrections down 100%
- Analysts can now query the warehouse directly, no data engineer needed for questions that go beyond the dashboard
“We went from having a 10 message long email chain every week, setting up a meeting, describing the problem and waiting... to just describing what was wrong and watching it get fixed.”
If your stack looks anything like this, let’s talk.
Engagements run four to eight weeks and land as pull requests against your analytics repo. One person, one email, no account team.
