Data Scientist Portfolio Projects: 15 Shippable Ideas
These projects are ordered by dependency — each earlier one teaches skills the later ones assume. Every project is designed to be reproducible, explainable, and ideally deployable. A Data Scientist portfolio that impresses is not a collection of notebooks; it is a collection of demonstrated decisions under uncertainty. Pick ten to complete; the capstone (project 15) is what you lead with in interviews.
1. A/B test analysis engine with proper statistical rigor
Build a reusable Python tool that takes two samples (control vs. treatment) and returns a complete statistical analysis: sample sizes, observed uplift, confidence interval, p-value, power curve, minimum detectable effect, and a recommendation to ship or not. Apply it to three public datasets (e-commerce conversion, email click-through, app retention). The goal is to automate statistical discipline, not to run a one-off test. This is the first artifact every DS interview will probe.
Evaluation rubric (what recruiters check on your GitHub)
- Configurable alpha and power targets — not hardcoded 0.05
- Multiple-test correction applied and documented when comparing more than one metric
- Pre-experiment sample size calculation output — not just post-hoc analysis
- Three real datasets, three documented conclusions, confidence levels stated explicitly
- README explains every statistical term used — written for a PM audience
2. Causal inference study — difference-in-differences on public policy data
Select a natural experiment from public data — a minimum wage change across US states, a school policy introduction, a regional tax incentive. Frame the causal question, test the parallel trends assumption, run DiD with OLS and clustered standard errors, check robustness with placebo tests and event-study plots. Write a 1500-word analysis as if presenting to a policy team. This project demonstrates causal thinking in the wild rather than in a textbook.
Evaluation rubric (what recruiters check on your GitHub)
- Parallel-trends assumption visualised and discussed — not assumed away
- Placebo test included (pre-period falsification)
- Clustered standard errors used and justified
- Written summary accessible to a non-statistician
- Data source linked; all code runs from a clean clone
3. Customer segmentation — unsupervised clustering with business action
Take an e-commerce, streaming, or banking public dataset. Run k-means, DBSCAN, and hierarchical clustering. Use silhouette scores and stability analysis to pick a cluster count. Profile each cluster with business language (not just 'cluster 3 has high feature-7'). Recommend a concrete action for each segment. Produce a Streamlit dashboard stakeholders can explore. This project tests whether you can connect model output to business decision.
Evaluation rubric (what recruiters check on your GitHub)
- Cluster count justified with silhouette curve and stability analysis — not just elbow method alone
- Each cluster described in a language a marketing manager would recognise
- Feature scaling and encoding decisions documented explicitly
- Streamlit app deployed publicly — a stakeholder can filter and explore
- Actionable recommendation section: one paragraph per segment
4. Churn prediction with feature engineering + business framing
Use a telecom, SaaS, or subscription e-commerce churn dataset. Engineer features from raw event logs — recency, frequency, monetary, engagement trend, tenure. Train XGBoost with SHAP explainability. Calibrate probabilities. Frame the output as a business tool: segment users into intervention tiers (high uplift, low uplift, already churned). Build the ROI case for an interventionist strategy using the model's outputs. This is the project that proves you connect modelling to revenue.
Evaluation rubric (what recruiters check on your GitHub)
- Feature engineering section discusses every feature with business rationale
- SHAP beeswarm and dependency plots present for top-10 features
- Calibration curve confirms probability outputs are well-calibrated
- Business framing: cost-of-intervention vs. expected-revenue-saved analysis present
- Train/val/test split with temporal ordering — not random split on a churn dataset
5. Time-series anomaly detection on business metrics
Pull a public business metric time series — website traffic (Wikipedia pageview data, freely available), retail sales, energy consumption, financial metrics. Implement three anomaly detectors: STL + z-score residual, Isolation Forest on sliding windows, and a simple Prophet + prediction-interval approach. Compare false-positive rates across a labelled anomaly set. Build a minimal Streamlit alert dashboard. This is the project that maps directly to 'monitoring business metrics' in every DS job description.
Evaluation rubric (what recruiters check on your GitHub)
- All three methods compared on the same labelled dataset
- False-positive rate explicitly reported — not just 'it found the anomalies'
- Streamlit dashboard deployed publicly with time-range selector
- Discussion of which method wins in which scenario
- Wikipedia pageview data or another free data source linked in README
6. Propensity score matching study — observational causal inference
Use an observational dataset where treatment was not randomised — job training program enrollment, insurance participation, medication adherence. Estimate the propensity score via logistic regression and a gradient boosted model. Match treated and control units. Check covariate balance before and after. Estimate ATT with matched OLS. Compare to the naive estimate and discuss the gap. This is the project that demonstrates you understand confounding in practice.
Evaluation rubric (what recruiters check on your GitHub)
- Propensity score estimated with both logistic regression and LightGBM — results compared
- Love plot (standardised mean differences) showing covariate balance improvement
- ATT estimated with confidence intervals; naive estimate compared and explained
- Discussion of unobserved confounders — Rosenbaum sensitivity analysis or Oster's bounding
- All code runs reproducibly; random seeds fixed throughout
7. Executive dashboard built from raw data
Take a raw, multi-table public dataset (Stack Overflow annual survey, NYC taxi data, UK government open data). Write the SQL or pandas pipeline to construct a clean analytical mart. Build a Streamlit or Dash dashboard targeting an executive audience: four KPIs at the top, two trend charts, one cross-segment comparison, one forward-looking indicator. Document the data dictionary and refresh cadence. This tests whether your communication output is self-contained.
Evaluation rubric (what recruiters check on your GitHub)
- SQL or pandas pipeline is fully reproducible from raw source
- Dashboard deployed publicly with a public URL
- Each chart has a title stating the finding — not the variables
- Data dictionary written; null-handling and filtering decisions documented
- One 'What this does not tell you' section — intellectual honesty about limitations
8. Marketing attribution analysis — multi-touch models
Use a synthetic or public marketing funnel dataset with multi-touch journeys. Implement first-touch, last-touch, linear, time-decay, and Markov chain attribution. Compare channel ROI under each model. Run a bootstrapped uncertainty estimate on the Markov chain results. Write the analysis as a memo for a CMO. This project demonstrates the messiness of real attribution work and the ability to communicate ambiguity.
Evaluation rubric (what recruiters check on your GitHub)
- All five attribution models implemented and compared on the same funnel data
- Bootstrapped confidence intervals on channel ROI figures
- CMO-style memo included: lead with the business recommendation, not the model
- Discussion of the shortcomings of all approaches — no pretending Markov solves attribution
- Synthetic data generator included so the project is reproducible without proprietary data
9. Survival analysis — customer lifetime and churn timing
Use a subscription SaaS or e-commerce dataset with cohort-level retention data. Fit Kaplan-Meier curves stratified by acquisition channel, plan type, and cohort month. Fit a Cox PH model with covariates. Test the proportional hazards assumption. Estimate expected lifetime value from the survival function. Produce a one-page board-level summary. Survival analysis is a DS skill that is dramatically underrepresented in portfolios.
Evaluation rubric (what recruiters check on your GitHub)
- Kaplan-Meier curves stratified by at least two business-meaningful dimensions
- Log-rank test performed and reported for each stratum comparison
- Cox PH assumption tested (Schoenfeld residuals or log-log plot)
- LTV estimate derived from survival function and documented
- Board-level summary: one chart, one sentence per finding, one recommendation
10. Bayesian decision-making project — multi-armed bandit vs. A/B test
Simulate a real product decision (ad creative selection, email subject line, landing page variant) under both a frequentist A/B framework and a Bayesian Thompson-sampling bandit. Compare regret curves. Quantify the cost (in lost conversions) of committing to A/B testing when the bandit would have converged earlier. Build the simulation in PyMC. Write the recommendation memo: when should your team use MAB vs. A/B? This project is directly citable in experimentation-platform interviews.
Evaluation rubric (what recruiters check on your GitHub)
- Simulation reproduces the traffic-allocation dynamics of a real experiment
- Regret curves plotted for both approaches over time
- Recommendation memo explicitly states the conditions under which each approach wins
- Sensitivity analysis on key assumptions (prior strength, traffic volume, effect size)
- Code runs end-to-end from a single notebook; random seed set for reproducibility
11. Market mix modelling (MMM) with Bayesian priors
Implement a simplified Media Mix Model for a public or synthetic advertising dataset. Model adstock transformation (geometric decay), saturation curves (Hill function), and control variables (seasonality, promotions). Fit with PyMC. Interpret the contribution of each channel. Compare budget allocation under current vs. optimal weights. This is a real DS deliverable at growth-stage consumer companies.
Evaluation rubric (what recruiters check on your GitHub)
- Adstock transformation implemented with configurable decay rate
- Saturation curve fitted — results shown not just assumed
- Budget reallocation recommendation with credible intervals on ROI estimates
- Prior sensitivity analysis — how do results shift with different channel priors?
- Write-up readable by a non-Bayesian marketing analyst
12. SQL optimisation case study — query audit and rewrite
Take a public database schema (NYC taxi data on BigQuery public datasets, TPC-H benchmark, Pagila sample database) and write a set of intentionally slow queries. Profile them with EXPLAIN ANALYZE. Identify the bottlenecks (missing indexes, cross-join explosions, full-table scans). Rewrite to achieve 5-20x improvement. Document each transformation. This project is the one most DS forget — and the one that impresses every data-engineering-adjacent interviewer.
Evaluation rubric (what recruiters check on your GitHub)
- Baseline query and optimised query both present with execution time comparison
- EXPLAIN output annotated in the README for each example
- At least five distinct optimisation patterns demonstrated (index, CTE vs. subquery, partition pruning, materialization, join order)
- Publicly reproducible — includes the database setup script
- One-page cheat sheet of the top optimisation patterns produced as a deliverable
13. Recommendation system with offline + online evaluation strategy
Build a movie or e-commerce recommender: collaborative filtering (matrix factorisation via Surprise or implicit), content-based (TF-IDF or sentence-transformer embeddings), and a hybrid. Implement the full offline evaluation framework: precision@k, recall@k, NDCG@10, coverage, serendipity. Then design — but do not necessarily implement — the online A/B test that would validate the offline results. This forces the gap between offline and online metrics into your portfolio.
Evaluation rubric (what recruiters check on your GitHub)
- Three algorithm families with honest offline metric comparison
- Cold-start strategy documented — popularity fallback or content-based bootstrap
- A/B test design written as a formal experiment memo with sample size calculation
- Discussion of offline-online metric correlation — where offline results mislead
- Live demo or Streamlit app where a user can select preferences and get recommendations
14. Public-data investigative analysis — Pudding / FiveThirtyEight style
Choose a question you genuinely care about that can be answered with public data. Write a 2000-3000 word data-driven piece with original analysis, interactive or highly-polished static charts, and a clear argument. Examples: 'Do cities with more bike lanes have lower collision rates?', 'Has the gender gap in academic publishing narrowed since 2020?', 'How did remote work change commute patterns in mid-sized US cities?' Publish on Medium, Substack, or a personal site. This is your proof-of-communication artifact.
Evaluation rubric (what recruiters check on your GitHub)
- The piece opens with a question the reader cares about, not with 'I used Python to analyse data'
- Every chart in the piece has a declarative title and a takeaway caption
- Methodology section at the end with links to data sources and code
- Published publicly and shared — a post that does not exist on the internet does not count
- You responded to the first ten comments or questions from readers
15. Capstone — end-to-end causal analysis and decision artefact
Design and execute a causal study on a real or realistic public dataset. Frame the business question, choose the identification strategy (RCT design, DiD, RDD, propensity matching), execute the analysis, communicate findings in both a technical appendix and a one-page executive summary, and propose the next experiment. The capstone demonstrates the full Data Scientist loop: question → data → method → uncertainty → decision. It is the project you lead with in senior DS interviews.
Evaluation rubric (what recruiters check on your GitHub)
- Business question stated with a decision framing — 'should we X?' not 'is there a relationship between A and B?'
- Identification strategy justified with a DAG and written assumption discussion
- Sensitivity analysis and robustness checks present
- Executive summary: one page, no jargon, clear recommendation with confidence statement
- Technical appendix: replicable code, assumption tests, alternative specifications
Frequently asked questions
Why is there no deep learning project in this list?
The Data Scientist track is calibrated to what the role actually requires in 2026 — statistical rigor, causal thinking, experimentation, and communication. Deep learning projects belong on the ML Engineer and AI Engineer tracks. If you want a neural net project, add one from the generalist or ML engineer list, but do not let it displace the causal inference and experimentation work that will actually be probed in DS interviews.
Do these projects need to be deployed publicly?
For most of them, yes. 'It worked on my machine' is not a portfolio artifact. A live Streamlit URL costs $0 to host on Streamlit Community Cloud. A GitHub repository with a clear README and reproducible instructions is the absolute minimum. Deployed is better.
How do I find real experimental data to practice causal inference?
Several public sources work well: LaLonde (1986) job training data, Card and Krueger minimum wage studies (ICPSR archive), econometrics textbook datasets (Wooldridge's DATA archive), the Lalonde dataset in the CausalML library, and the 'Causal Inference: The Mixtape' book datasets. For observational data, almost any Kaggle dataset with a treatment indicator works.
Is a Kaggle competition useful for a DS portfolio?
Useful but not the focus. DS work is about answering questions and influencing decisions — not maximising a leaderboard metric. A top-30% Kaggle finish demonstrates ML skill. The causal inference, experimentation, and communication projects on this list demonstrate Data Scientist skill. Do both, but don't let Kaggle crowd out the harder analytical work.
How do I handle it if I don't have access to real company data?
You don't need it. The public datasets available today — NYC Open Data, BigQuery public datasets, UCI ML Repository, IPUMS, Federal Reserve FRED, BLS microdata — are as analytically rich as most company data. The constraint is question quality, not data availability. Pick a question you genuinely care about and the data will be findable.
What makes a DS project stand out in an interview?
Three things, in order: (1) a clearly stated business question at the top — not 'I analysed the Titanic dataset'; (2) honest accounting of uncertainty — what you found AND what you cannot conclude; (3) a decision or recommendation that follows from the analysis. Most portfolios have the analysis but skip the question and the decision. Those are the parts interviewers probe.
How many of these should go on my resume?
Three, featured with a one-line tagline, tech stack, and live URL. The rest live on GitHub. For DS specifically: the A/B test engine, the causal inference study, and one of the Bayesian or MMM projects signal the statistical rigour tier-1 companies actually filter for.
Continue on the Data Scientist track
- Skill matrix — proficiency levels per category
- Tools inventory — install order + hours to learn
- Certifications — free credentials worth completing
- Salary bands — US + regional 2026 comp
- Career path — entry to staff trajectory
- Open Data Scientist jobs — apply what you build