Created a Python reporting workflow that consolidates monthly sales files into a single structured dataset. The process validates records, removes duplicate order IDs, and automatically generates consolidated CSV data and monthly revenue summaries in JSON format, reducing repetitive manual processing.
Built an n8n automation that recovers missed customer calls, starts an AI conversation, checks CRM context, routes urgent requests, and tracks callback SLAs until the customer is handled.
One business problem. Three analytical routes. One data-driven story. ☕📊
I turned raw business data into actionable decisions—not just another Power BI dashboard.
For the Onyx Data October 2026 Challenge, I worked on the Sunrise Coffee Chain analytics project, analyzing store performance, profitability, customer loyalty, revenue mix, and trading patterns across 60 UK stores (2023–2024).
🔹 My Analytical Approach
1️⃣ Python — Data Preparation
Cleaned and prepared the source datasets to establish a reliable foundation for analysis.
2️⃣ SQL — Business Analysis
Investigated store-level profitability, cost pressure, customer loyalty, revenue contribution, and trading patterns.
3️⃣ Power BI — Interactive Dashboards
Built a 3-page interactive report featuring advanced DAX measures, KPI cards, YoY comparisons, profitability analysis, and business-focused visualizations.
📊 Key Findings
• £89.7M Revenue | £16.9M Net Profit
The business recorded an aggregate net profit margin of 18.8% across the analysis period.
• Store Location Matters
Transport-Hub stores achieved a 25.1% aggregate net profit margin, compared with 18.6% for High-Street stores.
• An Area Requiring Attention
South London Corner recorded a £50.5K net loss over 24 months.
• Product Revenue Contribution
Espresso contributed 45.7% of daily revenue, while food contributed 26.1%.
• Trading Patterns
Average daily revenue was approximately 24% lower on weekends and 33% lower on UK bank holidays than on regular trading days.
💡 My Biggest Takeaway
Revenue alone does not tell the whole story. Understanding profitability, cost pressure, product contribution, and trading patterns helps businesses identify where to improve performance and make better decisions.
I would investigate South London Corner first. Break the 24-month loss into store-month revenue, direct costs and allocated costs, then compare it with similar stores over matched trading periods. Reconcile at store-month grain before joining product or loyalty tables so a...
SQL join integrity — synthetic demonstration. A SQLite exercise preserves 4 source deals and the 45,000-cent total while a naive association join inflates the sum to 80,000 cents. Ambiguous primary links, missing references and a null amount are surfaced. Equal-value legitimate deals remain distinct; reruns produce identical output. This is a local technical exercise, with no customer data or live HubSpot connection.