Skip to content
Ben Manguiat

How I work with data

SQL pipelines in PostgreSQL and Snowflake, dimensional models, Power BI dashboards, and Python where the question needs it. Every step below shows up in at least one of the case studies.

Case studies

The process

  1. 1

    Business Problem Definition

    Collaborate with business stakeholders to convert vague business challenges into measurable analytical questions, target KPIs, and actionable success metrics.

    Uses:
    Stakeholder Interviews, KPI Framing, Requirements Matrix
    Produces:
    Analytical Problem Charter
  2. 2

    Data Extraction & Wrangling

    Extract raw multi-source data from relational databases using complex SQL (CTEs, Window functions). Clean duplicates, handle missing values, and validate schema integrity in Python.

    Uses:
    PostgreSQL / Snowflake, Python Pandas, SQL Window Functions
    Produces:
    Cleaned Analytical Dataset
  3. 3

    Exploratory & Modeling Analysis

    Explore the data, segment it, and check that a pattern holds up (for example, validating a cluster count three different ways) before calling it a finding.

    Uses:
    Python pandas, scikit-learn (K-Means), Validation checks
    Produces:
    Statistical Findings Report
  4. 4

    Interactive BI Visualization

    Design intuitive, executive-ready Power BI / Tableau dashboards with interactive slicers, DAX metrics, and clear visual hierarchy optimized for fast decision-making.

    Uses:
    Power BI, Tableau, DAX / Calculated Fields
    Produces:
    Executive BI Dashboard
  5. 5

    Strategic Impact & Recommendations

    Write up what the data shows, what it does not show, and what to do next, in terms the people acting on it can use.

    Uses:
    Written findings, Dashboard walkthrough, Stated caveats
    Produces:
    Business Action Plan

Filter-to-SQL demo

Sample data, not from a real business. Pick a segment and a metric to see the chart and the SQL that would produce it.

Segment
Metric

SQL (PostgreSQL), illustrative

SELECT 
  DATE_TRUNC('month', order_date) AS month,
  SUM(sales_amount) AS total_revenue
FROM fact_sales f
JOIN dim_customer c ON f.customer_id = c.customer_id
WHERE c.customer_segment = 'All'
  AND f.order_date >= '2026-01-01'
GROUP BY 1
ORDER BY 1 ASC;