Personal Project | PostgreSQL, SQL, pgAdmin, Data Analytics
Analyze and rank NFL offensive players based on fantasy performance. This project demonstrates end-to-end database design, data ingestion, scoring logic, and analytics queries.
This project simulates a fantasy football analytics engine:
- Stores player information, weekly stats, and calculated fantasy points.
- Calculates PPR (point-per-reception) and standard fantasy points.
- Generates weekly rankings, positional leaderboards, average points, and consistency metrics.
- Designed to showcase SQL skills including table design, constraints, indexes, joins, aggregates, and window functions.
| Table | Description |
|---|---|
players |
Stores player info (name, position, team). Primary key: player_id. |
weekly_stats |
Stores weekly performance stats (passing, rushing, receiving, turnovers). Linked to players via player_id. |
fantasy_points |
Stores calculated PPR and standard fantasy points per player per week. Linked to weekly_stats via player_id and week. |
- Database Design: Relational schema with primary and foreign keys, indexes, and constraints.
- SQL: Aggregations (
AVG,STDDEV), window functions (RANK,PARTITION BY,LAG), JOINs, INSERT statements, and SELECT statements. - Analytics: Fantasy points calculation, weekly rankings, positional leaderboards, and player consistency.
- Tools: PostgreSQL, pgAdmin
- Project Workflow: Data ingestion -> Scoring -> Analytics -> Insights
- Add more players and weeks to simulate an entire NFL season.
- Build visualizations in Python using database outputs.
- Add dynamic queries to compare PPR vs standard scoring.
- Clone the repository.
- Run
schema.sqlto create tables. - Run
seed_data.sqlto populate sample data. - Run
fantasy_scoring.sqlto calculate fantasy points. - Run
analytics_queries.sqlto generate rankings and insights.
Created by Michael John.
Feel free to connect with me on LinkedIn.
