Galway, Ireland · Product & UX Analytics

I turn what users actually do into metrics teams can trust.

Data analyst working with event-level product data. I instrument websites with Contentsquare, analyse behaviour in Snowflake SQL and Python, and build dashboards where every number has a written definition and can be traced back to source.

0
e-commerce events analysed in Snowflake
0%
session-level cart to purchase rate, checked two ways
0
funnel stages instrumented and mapped in Contentsquare
0%
measured accuracy across 2 yrs of financial data QA
SCROLL ▾

How I work

Instrument → Measure → Validate → Explain

Product decisions should be based on what users actually do, not on guesswork. Each project below runs this loop end to end.

Instrument

Set up tracking that reflects real behaviour: tag deployment, event definitions and page-group mapping, kept accurate as the product changes.

Measure

Work at the level of individual user actions: sessionisation, funnels and journeys, in SQL over cloud warehouses and in Python.

Validate

Reconcile against known baselines, compute the same answer two independent ways, and chase discrepancies to root cause. This includes AI-generated output.

Explain

Dashboards people rely on, definitions written down, and findings presented clearly to technical and non-technical audiences.

Case studies

On GitHub

The charts below use the actual numbers from each project. Hover over any bar or point for the detail. Each project links to its repository, where the SQL, notebooks and source exports are versioned.

Snowflake · SQL · Power BI

Same data, two answers: why metric definitions matter

884,474 e-commerce events analysed through a layered RAW to CLEANED pipeline in Snowflake, ending in a Power BI dashboard. The most important result wasn't a number, it was a definition.

  • A simple event-count conversion rate gave 69.11%. A session-level funnel (CTE with conditional aggregation) gave 50.31%, nearly 19 points lower.
  • Checked the 50.31% with a second, independent method (LEFT JOIN of cart sessions to purchase sessions). Both methods agree.
  • Reconciled dashboard revenue to €5.13M by filtering every visual to purchase events only. The reconciliation query is committed in the repo.
  • Data quality first: NULL audits, duplicate detection, price and timestamp validation before any analysis ran.
View SQL & dashboard on GitHub
0%
event-level
(purchases ÷ cart events)
0%
session-level
(cart sessions that purchased)

The 18.8 point gap comes from the aggregation level alone. The session-level figure is the one reported.

Homepage
0
Product Listing
0
Product Detail
0
Cart
0
daily sessions · hover for detailone-week observation window

Sample: 7 sessions, 120 page views. Reported as directional, with the limitations written down.

Contentsquare · Instrumentation · Python

Instrumenting a live storefront, then fixing my own tracking

To get real setup experience I deployed an open-source storefront, added the Contentsquare tag, and analysed the telemetry in Python. The most useful part was finding and fixing a problem in my own setup:

  • Journey analysis surfaced an unresolved page label, caused by a gap in the page-name mapping. I traced the cause, configured page groups for Homepage, Listing, Detail and Cart, and measured again.
  • Built the resulting 4-stage funnel. The largest drop-off is at the Product Detail to Cart step (60%).
  • Made the analysis reproducible: label-based extraction from exports instead of fixed cell positions, with the source exports committed to the repo.
  • Every percentage is reported with its sample size. Seven sessions is a small sample, and the write-up says so.
View notebook & exports on GitHub
Python · Pandas · Segmentation

Customer value segmentation on 3,660 transactions

Exploratory analysis of e-commerce transactions in Pandas: spend distribution, quartile value segments, and category, payment, pricing and discount behaviour.

  • Quartile segmentation shows the top-value quarter of customers generating 45% of total revenue, which makes the case for targeted retention.
  • Relationships that are true by arithmetic (price against final price) were used as data checks, not presented as findings.
  • Limitations are stated plainly: one transaction per customer means retention can't be measured, so it isn't claimed.
View analysis on GitHub
Low value
Rs 50.1K
Mid-low
Rs 138.6K
Mid-high
Rs 227.7K
High value
Rs 341.0K
45%

45% of revenue comes from the top quartile of customers. The four segments are the same size, so the value difference is real.

AI-assisted analytics

I use AI in my work, and I verify everything it produces.

Every one of my repositories states where AI assistance was used, because generated output is a draft, not an answer. Before anything I produce reaches someone else, I read the SQL for grain and join logic, reconcile totals against a known baseline, and where it matters, compute the same answer a second independent way. That review step is how a 69.11% "conversion rate" became a defensible 50.31%.

Click a card to see it in the terminal →

I've written this method up as a reusable skill: a versioned instruction file with runnable SQL, a Python export-QA module and MCP setup, so an agent (or a colleague) can follow the same validation loop I do.

Read the skill: ux-analytics-validation

About

Ten years running my own business, then a career change into data.

Before data, I was a self-employed barber for a decade. That work is where I learned to listen for what someone actually needs, which is not always what they first ask for, and to keep their trust when I disagree with them. Those habits carry straight into working with stakeholders.

The change took two qualifications back to back, a Level 7 in software development and then a Level 8 Higher Diploma in Data Analytics, completed while working. Since 2024 I've been a financial data analyst at Infosys BPM, doing data quality on mutual fund and ETF data where mistakes have real consequences: cleansing, metadata validation, reconciliation against source, and chasing every discrepancy to root cause, at a measured 99.4% accuracy average with regular 100% weeks.

The projects on this page are how I built product analytics experience deliberately. Not tutorials: a real instrumented site, a real cloud warehouse, and dashboards whose numbers I can defend line by line. Fluent in English and French.

Warehouse & SQL

SnowflakeCTEsWindow functionsJoins at scaleMySQL

Product analytics

ContentsquareJourney analysisSessionisationFunnelsTracking taxonomy

Analysis & reporting

Python · PandasPower BIMatplotlibExcelMetric definitions

Quality

ReconciliationRoot-cause analysisAI output reviewGit / GitHub

Contact

Get in touch

contact@christianlomboto.ie