An end-to-end Data Analyst portfolio project inspired by the business model of an online tee-time marketplace. It demonstrates data generation, cleaning, SQL analysis, KPI design, customer and campaign analysis, and Power BI dashboard development.
Portfolio disclaimer: All names, customers, courses, transactions, revenue values, and campaign results in this repository are synthetic. This project is independent and is not affiliated with, sponsored by, or based on confidential data from GolfNow, Versant, NBCUniversal, or any other company.
Leadership wants one analytics solution to answer:
- Which courses, markets, channels, and time periods generate the most booking value?
- Which marketing campaigns deliver the strongest ROAS and conversion rates?
- How do discounts affect bookings and realized booking value?
- Which customers are new, repeat, active, or at risk?
- Where is tee-time inventory underutilized?
- How do seasonality, day of week, and booking lead time affect demand?
- Python: synthetic data, ETL, validation, EDA and export
- SQL: relational model and reusable business queries
- Power BI: data model, DAX measures, dashboard and drill-through
- Excel: data dictionary and field reference
- Git/GitHub: project documentation and version control
The Power BI dashboard was created from the processed project data and presents the marketplace's sales, revenue, booking, customer, occupancy, cancellation, channel, course, and regional performance in one overview.
Performance overview with headline KPIs, monthly booking trends, leading courses, booking-channel mix, and a regional summary.
golfnow_sales_marketing_analytics/
├── data/
│ ├── raw/ # Generated source-like CSV files
│ └── processed/ # Clean Power BI-ready CSV files
├── docs/
│ ├── BUSINESS_REQUIREMENTS.md
│ ├── DATA_DICTIONARY.md
│ ├── POWER_BI_BUILD_GUIDE.md
│ └── PORTFOLIO_PRESENTATION.md
├── notebooks/
│ └── golf_marketplace_eda.ipynb
├── outputs/
│ ├── figures/
│ └── summary CSV files
├── powerbi/
│ ├── dax_measures.md
│ └── marketplace_theme.json
├── sql/
│ ├── 01_create_tables.sql
│ └── 02_business_queries.sql
├── src/
│ ├── generate_data.py
│ ├── etl.py
│ ├── validate_data.py
│ ├── analysis.py
│ └── build_sqlite_db.py
├── tests/
│ └── test_business_rules.py
├── run_pipeline.py
└── requirements.txt
python -m venv .venvWindows:
.venv\Scripts\activatemacOS/Linux:
source .venv/bin/activatepip install -r requirements.txtpython run_pipeline.pyThis command:
- Generates reproducible synthetic raw data.
- Cleans and enriches it.
- validates primary keys, foreign keys and business rules.
- Creates analysis outputs and charts.
- Builds
outputs/golf_marketplace_analytics.dbfor SQL practice.
