Douglas Woollam


Data Analyst | Data Scientist


About Me


👋 Hi, I'm Douglas Woollam!
I'm a Data Analyst Contractor and MSc Bioinformatics & Computational Biology graduate (Data Science + Machine Learning where the 'big data' is the human genome 🧬).I can effectively perform advanced analytics on large datasets 📊. Building end to end data pipelines also falls under my experience. These works are showcased on this website and GitHub.
I’m laser-focused on creating business insights that drive decision making.
I’ve spent 100’s of hours developing reports that save time and money.Notable achievement's:
- 20% profit increase at ML - Landscaping.
- Optimised data-pipeline throughput by 15% for a 50-analyst team at Dataforce.
- Scaled workload from single run to 100’s of concurrent analyses, processed over 14 million records by automating a parameter-driven pipeline at TU/e.


Technical Skills


SQL | Power BI |Python | Excel | R

Data Analysis & Visualisation - 1+ year

Biotechnology & Medical devices - 3 years


Featured Projects


Tableau | Apple Christmas Sales Analysis Dashboard

Analyzed €10M+ in Christmas sales data across 4 seasons. Revealed that children’s Smartphones drove 40% of sales, with United States leading at €3.8M.


SQL & Power BI | Target Revenue Analysis Dashboard

Increased profit by 20%, identified high value towns to focus marketing and service checkups and saved 1.5hrs weekly of reporting time.



SQL - Data Manipulation:
Football database analysis

Data manipulation: Joins, CASE statements, Subqueries, CTE's and Window functions.Key Insight: Barça won 17 of 19 home games.League Trends: Found Eredivisie leads with 3.41 goals per match.



Python - Uncovering How Obesity Affects Metabolic Health

MSc Thesis
Clinical dataset | Gene expression dataset
Featuring: statistical analysis, PCA, metabolic modeling, k-means clustering, significance & multiple testing and reaction pathway analysis.Generated: statistical summary tables, Box plots, heat maps, scatter plots, bar charts


Professional Certifications

My growing list of proprietary, exam based certifications.


Microsoft Certified Power BI Data Analyst
(PL-300)
| Issued 2025


Relevant Experience


📊 💻 Data Analyst Contractor
Mallow - Liscarroll Landscaping | June 2025 - Present

•Increased gross profit by 20% by developing SQL & DAX-based metrics for Target Profit & Revenue in a Power BI dashboard. Identifying underpriced jobs and presented data backed pricing recommendations to the business owner that included overlooked costs like fuel, distance, time and differing equipment.• Accomplished an 85% repeat booking rate by identifying high value customer towns and prioritised marketing and service initiatives by building a Power BI dashboard with dynamic parameters, map visuals and bar charts, enabling targeted insights and proactive decision making.• Cut weekly reporting time by 75% from 2 hours to 30 minutes by creating a user-friendly Excel workbook, automating the pipeline using Python to PostgreSQL to the Power BI dashboard and ensuring smooth adoption with a comprehensive user guide and video walkthrough.

📊 💻 Data Analyst Contractor
Mallow - Liscarroll Landscaping | June 2025 - Present

•Increased gross profit by 20% by developing DAX-based metrics for Target Profit & Revenue in a Power BI dashboard. Identifying underpriced jobs and presented data backed pricing recommendations to the business owner that included overlooked costs like fuel, distance, time and differing equipment.• Accomplished an 85% repeat booking rate by identifying high value customer towns and prioritised marketing and service initiatives by building a Power BI dashboard with dynamic parameters, map visuals and bar charts, enabling targeted insights and proactive decision making.• Cut weekly reporting time by 75% from 2 hours to 30 minutes by creating a user-friendly Excel workbook, automating the pipeline using Python to PostgreSQL to the Power BI dashboard and ensuring smooth adoption with a comprehensive user guide and video walkthrough.


📊 💻 Data Analyst Contractor - AI/ML Data operations team
DataForce | January 2025 - June 2025

• Achieved over 95% QA approved submissions, one of the team’s top rates by writing and annotating advanced SQL queries. Delivered high quality training data for machine learning models.• Outperformed average KPI targets by 30% by producing and annotating robust Python code using Pandas and NumPy for data cleaning and data analysis tasks.• Optimised data-pipeline throughput by 15% for a 50-analyst team by distributing a document that streamlined repetitive annotation steps with workflow optimisation tools.


🧬💻 Data Analyst intern
Eindhove University of Technology | April 2024 - October 2024

• Scaled workload from single run to 100’s of concurrent analyses, processed over 14 million records by automating a parameter-driven pipeline: R/Microsoft Excel for ingestion, Python (Pandas, NumPy, scikit-learn) for end to end analysis and visualisation.• Realised a tenfold increase in significant pathway findings (1⇒ 10+) linked to inflammation and cardiometabolic risk. Automated unsupervised machine learning (PCA, k-means clustering), significance & multiple testing and reaction pathway analysis in Python.• Presented thesis findings to faculty in the Dept. of Biomedical Engineering at TU/e & UCC by creating clear, informative visualisations in Matplotlib, Plotly and Seaborn.

SQL & Power BI | Revenue & Target Analysis Dashboard



Made for Mallow - Liscarroll Landscaping in my role as a Data Analyst. Recreated with artificial data.
I built the a BI stack for a landscaping business I co-founded.
Developed an SQL script and Power BI report to replace manual processes. Increased profit by 20%, identified high value towns to focus marketing and service checkups and saved 1.5hrs weekly of reporting time.


These are the questions I was interested in answering:
1) Which customers are below or on target of €15 per hour?2) What is our earnings potential and recommended price?3) Which towns bring in the most revenue, profit & profit/hr?4) Is there towns where marketing and work should be focused on?Here are my key takeaways:1) Increased profit 20% by correcting prices to hit target revenue per job.2) Flagged towns with high value customers, prioritised marketing and proactive service checkups in those areas.3) Towns farther from the business had low Avg profit/hr, so pricing is now adjusted for distance.4) Weekly reporting time dropped by 75% using this data pipeline.


I took the following steps to create my analysis:
Excel for data input, Python script to convert excel to .csv, .csv to input data for PostgreSQL database server, to a Power BI dashboard.Python Script:
My python code was used to convert individual Excel pages into individual CSV files to import data into my Postgres SQL Server.
View Python Script on my Github


SQL Script:
170 line SQL script used to Build tables from the CSV files. Defines keys and data types, NULL/ empty value handling. CTE for dashborad metrics.
View SQL Script on my GithubBelow is the base CTE on fact_work_order, normalises service_charge nulls to 0, rounds to two decimals, and outputs dashboard metrics: operating_cost, total_profit, profit_per_person, total_time, and profit_per_hour.184660545


Power BI Dashboard:

Overview tab:
This dashboard includes slicers for below or on target jobs, year and job type. The map and revenue by town bar chart visual uses a field parameter for toggling between revenue, profit or profit/hr for Flagging high value towns. The column chart & line chart can be drilled up or down for time series analysis.


Report tab:
The report page presents a job level table with key metrics such as work date, customer, duration, distance, crew size, revenue, profit, profit per hour, operating costs, target revenue, earnings potential, and price status. All slicers are synced with the summary page.


DAX Measures:

18 DAX measures were created for both tabs in the dashboard.DAX: Target Revenue

DAX: Revenue

DAX: Profit/hr

Here is how the DAX measures appear in the measure selection pane.


A loom video of the dashboard in action


Conclusion
Overall, this project demonstrates how a data pipeline built with Microsoft Excel > Python > SQL > Power BI can transform raw operational data into actionable insights that increase profit, identify high value clients, and support smarter business decisions.

Tableau | Christmas Sales Analysis Dashboard



Made for Apple in my role as a Data Analyst. Created with artificial data.
Why this project?Christmas is a major time for sales around the world, and making the most of the holiday rush can be a bit challenging. In this task, I helped Apple analyse Christmas data to uncover insights into customer behaviors during the festive season.The dataset provided includes anonymized Christmas sales data across various product categories, customer demographics, and marketing campaigns.


These are the questions I was interested in answering (Click links below for details):
Customer Segment
1) Which customer segments, partner leads and Sales Leads drive the highest share of Christmas sales?
Best Performing Products
2) Which products perform best, and how have their sales changed over time?
Geography
3) Which countries and Store Leads contribute the most revenue, and where are the biggest growth/decline trends?
Covid
4) How did Covid impact Christmas sales, and has the market recovered since?
Pricing
5) How does unit price affect sales quantity across different customer segments?
Shopping Timing
6) Do shopping patterns differ by month, gender and day of the week?


Here are my key takeaways:
1) Children (ages 1–11) contributed nearly 40% of total Christmas sales, with Smartphones and in-store shopping being their top preferences.2) The top 5 best-selling products, all for children, declined by up to 15% over four years — highlighting changing consumer trends.3) United States led with €6.2M in sales and US Apple Stores leading with €2.5M in sales, while Netherlands grew 14%, and Canada declined by 12% since 2018/2019. Irish Store Select (Compu B) increased sales by 19.3%, which could be targeted for future sales leads.4) Covid caused a -3.2% dip in 2020, followed by a +1.9% recovery in 2021, though sales hadn’t fully rebounded.5) Customers tend to buy 1–5 products per transaction, but when making bulk purchases, they preferred 5, 10, 15, or even 30 items. This suggests an opportunity for special pricing on bulk purchases to encourage upselling.6) December accounted for 77% of in-store sales, showing a strong opportunity for seasonal promotions. Shopping timing varied — females preferred Sundays and Mondays, while males leaned towards Thursdays for gift buying.
Power BI Dashboard:

Customer Segment tab:
This tab helped answer the questions on Customer Segments, Best Performing Products, Geography, and Covid. It revealed that Children (ages 1–11) contributed nearly 40% of sales, highlighted the decline of top-performing products, mapped regional performance, and showed how sales dipped during the pandemic.


Pricing & Promotion tab:
This tab helped answer the questions on Pricing and Shopping Timing. It analyzed how price variation affected sales, identified bulk promotion opportunities, and pinpointed December’s 77% in-store sales share as the key window for promotions.


Data Cleaning
Instead of looking at the data by calendar year, data was grouped into Christmas Seasons to get a better understanding. For example, November 2018, December 2018, and January 2019 are combined into Xmas 2018/2019, considering these three months as one season for retailers and shoppers alike.

• To make things more business-friendly, some fields were given new names. For example, Purchase Type (In-store, Online, Xmas Market) is now Shopping Channel.• Since most of the data is from EU countries, I assumed Euro as the currency. In the real scenario, this needs to be clarified with the business.• A Calendar Table was added to enhance time-related analysis.


Analysis:
Customer Segment

The Children segment (ages 1-11) stood out, contributing nearly 40% of total Christmas sales over the years.Interestingly, there was no significant difference between male and female customers across different age groups.

In-store shopping, particularly for the Children segment (74% in stores), was a prevalent choice.
This is understandable as kids often prefer the hands-on experience of selecting gifts.
Cash was the preferred payment method for Kid purchases, while Teens (ages 12–17) and Adults (ages 18 and over) leaned towards credit card, and cash was their least preferred payment method.


Best Performing Products

Overall, iPhone and Apple TV took the lead as the top-selling product categories, contributing a significant 27% to total sales among the 11 categories.While iPhone stole the spotlight as the most beloved and profitable category with a staggering 77.03%, it's important to note that its sales had seen a notable decline in the past couple of years.

Breaking it down to the product level, Iphone 13 and Iphone SE were the best sellers, each making up 7.9% to the overall sales. Interestingly, the top 5 performers were all targeted at the Children segment. However, despite their initial popularity, all of these products saw a decline in sales, ranging from -2% to -15% over the past four seasons.Zooming in on the Teenager segment, HomePod Mini emerged as the most cherished Christmas gifts. Meanwhile, in the world of Adults, the Apple Watch Series 5 stole the show, contributing the most to sales and enjoying a substantial sales growth of nearly 50% since the Christmas season of 2018/2019.


Geography

United States took the crown for the most Christmas sales over the four seasons, reaching €6.2 million. Canada, once the best in Xmas 2018/2019, faced a decline of -12% over the four seasons. The Netherlands showcased the most significant growth of 14%, climbing from the 7th to the 5th spot.Drilling down to the Sales Leads, the three Stores in United States (Apple Stores, Best Buy USA & MacConnection) emerged as the top-selling Stores, each generating over €1.8 million in sales.In Ireland, Apple Store Ireland & Select (Compu B) emerged as the top-selling Stores, each generating over €0.9 million in sales.


Covid

The Christmas gift market felt the impact of Covid in 2020, experiencing a -3.2% sales decrease.A recovery followed in 2021/2022 with a +1.9% increase, but the sales had not yet reached pre-Covid levels.


Pricing

Despite higher prices, children's products lead in sales quantity, with over 12 thousand units sold for each product over the past four Christmas seasons.Among products for adults, unit price variation did not significantly affect the quantity sold (around 6–7 thousand units per product).


Customers tend to buy 1–5 products per transaction, but when making bulk purchases, they preferred 5, 10, 15, or even 30 items. This suggests an opportunity for special pricing on bulk purchases to encourage upselling.


Shopping Timing

December was the busiest month for Christmas gift shopping, with sales doubling compared to November and January.In-store shopping dominated December, accounting for 77% of sales, making it an excellent time for in-store promotions.

Shopping times varied across different channels.In-store shopping peaked on Monday, followed by Sunday. Sundays at 3 pm became the busiest time for Christmas markets. Online shopping provided flexibility, with peak times at Monday 8 am, Wednesday 11 pm, and Saturday 7 am.
Weekday afternoons at 4 pm witnessed the highest online sales.
While females preferred Sunday and Monday for Christmas shopping, males leaned towards Thursdays for their festive gift-buying spree.

var divElement = document.getElementById('viz1760106013401'); var vizElement = divElement.getElementsByTagName('object')[0]; if ( divElement.offsetWidth > 800 ) { vizElement.style.width='1280px';vizElement.style.height='747px';} else if ( divElement.offsetWidth > 500 ) { vizElement.style.width='1280px';vizElement.style.height='747px';} else { vizElement.style.width='100%';vizElement.style.height='4527px';} var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement);