Case study / Revenue analytics

GTM Revenue Analytics

From disconnected activity to one validated, decision-ready reporting layer.

I built an end-to-end portfolio system that consolidates lead, CRM, email, SMS and calls, LinkedIn, Loom, website, bookings, sales, verification, and paid ads activity from twelve source files.

A from-scratch rebuild of the reporting architecture I designed at KP Media Group — reconstructed here with placeholder data to protect client confidentiality. The architecture, logic, and modeling are unchanged.

Technical details

Problem / Approach

Make the full funnel comparable.

Activity lived at different grains and used different identifiers. The build preserves source detail, aligns shared business entities, and exposes curated views so leaders can evaluate funnel, channel, campaign, and paid performance without manually reconciling exports.

Architecture / Data flow

01

12 source CSVs

Lead, CRM, engagement, website, bookings, sales, verification, and paid ads

02

PostgreSQL staging

Raw source tables preserved for validation and controlled transformation

03

Analytics model

Five shared dimensions and eleven activity-focused fact tables

04

Reporting layer

Executive funnel, channel performance, and campaign performance views

05

Power BI

Semantic model, measures, campaign/date filters, and five dashboard pages

Decisions that protect trust

  • Qualified meeting requires both showed_up and is_qualified to be true.
  • Channel booking signals can overlap, so they are not added together as official bookings.
  • Sales campaign attribution follows the associated booking rather than a separate guess.
  • Source row counts, duplicates, transformations, reporting totals, and filtered Power BI measures were checked.

What the model enables

Executive funnel health
Channel-level engagement
Campaign efficiency
Paid post-click performance

Modeled insights / Not client outcomes

Three signals that guide the next operating question.

6.6%

Qualified → engaged

The largest modeled funnel bottleneck, pointing to engagement quality rather than more top-of-funnel volume.

151

Email booking signals

Email supplied the strongest scalable booking-intent volume in the modeled channel view.

8,885 / 23

Sessions / booking signals

Paid traffic reached the site, but post-click conversion warrants closer attention in this modeled dataset.

Five decision views

The static pages below show the final Power BI reporting experience. Use the controls to review each view.

Dashboard / 01

Executive Overview

How is the modeled GTM engine performing, and where should attention go next?

Executive Overview page from the modeled GTM Performance Hub Power BI dashboard

Build the operating layer

Need a GTM system that teams can operate and leaders can trust?

View GitHub