Strong data analytics portfolio projects start from a business question, use a real dataset, answer it with SQL and a dashboard, and end with a recommendation. Build three to five: sales performance, customer segmentation, churn, an A/B test and one AI-assisted analysis with a validation log.
Analyst portfolios are screened on SQL first and storytelling second.
- 1Business questionA decision someone must make
- 2Load and checkSQL, row counts, nulls, duplicates
- 3AnalyseJoins, windows, cohorts, tests
- 4VisualisePower BI or Tableau, 3 charts max
- 5RecommendWhat to do, expected impact, limits
The 10 projects
E-commerce sales and delivery performance
The question: Where is revenue growing, and does late delivery hurt customer ratings?
- Start with
- Olist Brazilian E-Commerce: about 100,000 orders from 2016 to 2018 in nine tables.
- Steps
- Join orders, items, customers and reviews; check row counts after each join.
- Monthly revenue and growth (starter query A).
- Delivery lateness vs review score (starter query B).
- Build a one-page dashboard with revenue, AOV, on-time rate and rating by lateness.
- Measure
- Every dashboard number reconciles with a SQL query you can show.
- Ship
- Dashboard, SQL file and a half-page recommendation on delivery.
- Why it counts
- Classic business metrics plus a causal-looking question to discuss with care.
Analysed 100k marketplace orders in SQL; showed late deliveries cut average review score from [x] to [y] and recommended a delivery-promise change.
Customer segmentation (RFM) and cohort retention
The question: Who are our best customers, and how fast do new customers stop buying?
- Start with
- UCI Online Retail II: 1,067,371 transactions from 2009 to 2011, CC BY 4.0.
- Steps
- Remove cancellations and rows without a customer ID.
- Score recency, frequency and monetary value with
NTILE(starter query C). - Build the monthly cohort retention table (starter query D).
- Name four segments and give each one action.
- Measure
- Segment sizes add up to total customers; cohort percentages are between 0 and 100.
- Ship
- Segment table, retention heatmap and an action plan.
- Why it counts
- RFM and cohorts are staples of marketing and growth analytics interviews.
Segmented [n] customers by RFM and built a cohort retention view; identified a segment worth [x]% of revenue with [y]% month-3 retention.
Telecom churn drivers dashboard
The question: Which contract, tenure and service patterns separate customers who leave from those who stay?
- Start with
- Telco Customer Churn (Kaggle): about 7,000 customers.
- Steps
- Compute churn rate overall and by contract type, tenure band and payment method.
- Test the biggest gaps with a simple chi-square or two-proportion test.
- Rank drivers by size and actionability.
- Dashboard with churn by segment and a retention proposal.
- Measure
- Each finding states the gap, the sample size and whether it is statistically supported.
- Ship
- Dashboard and a one-page memo.
- Why it counts
- Easy to explain and close to real telecom and SaaS analyst work.
Identified contract type and tenure as the largest churn drivers ([x] vs [y] percentage points) and proposed a targeted offer with estimated impact.
Marketing campaign conversion analysis
The question: Which contact approaches and customer groups convert best, and where is spend wasted?
- Start with
- UCI Bank Marketing: direct marketing calls with outcome labels.
- Steps
- Define conversion and baseline rate.
- Break down by month, contact type, previous outcome and job.
- Calculate lift of each segment over baseline.
- Recommend who to call, and who to stop calling.
- Measure
- Lift figures include group sizes so small groups are not over-read.
- Ship
- Lift table, chart and a campaign recommendation.
- Why it counts
- Shows marketing-analytics thinking without needing ad-platform data.
Analysed a bank campaign dataset to find segments with [x]x baseline conversion; recommended a targeting change to cut low-yield calls by [y]%.
Air quality across Indian cities
The question: Which cities and seasons are worst, and how did air quality move over the years covered?
- Start with
- Air Quality Data in India (Kaggle), compiled from CPCB readings, and data.gov.in for newer public series.
- Steps
- Clean missing pollutant readings and state the rule you used.
- Rank cities by average AQI and by days in the worst categories.
- Show seasonality with a calendar heatmap.
- Write three insights a city planner could act on.
- Measure
- Missing-data rules are documented and results are shown with and without imputation.
- Ship
- Public Tableau dashboard and a short article.
- Why it counts
- A local, topical dataset gets more attention than another global sales sheet.
Built a public dashboard on multi-year air quality for [n] Indian cities; documented missing-data handling and highlighted seasonal peaks.
A/B test analysis and recommendation
The question: Did the new version increase the metric, by how much, and is it safe to ship?
- Start with
- A public A/B-test dataset such as the Cookie Cats mobile-game test on Kaggle, or simulate your own and state the assumptions.
- Steps
- State the hypothesis, metric and guardrail metrics.
- Check the split is balanced and the sample is large enough.
- Run a two-proportion test and report the confidence interval, not only the p-value.
- Write ship, do not ship or collect more data, and why.
- Measure
- Report effect size with a confidence interval and the power you had.
- Ship
- One-page readout.
- Why it counts
- Experiment literacy is a differentiator for product and growth analyst roles.
Analysed an A/B test with [n] users; found a [x] percentage point change (95% CI [a, b]) and recommended [decision].
Product funnel and drop-off analysis
The question: Where do users drop between viewing a product and buying it, and which step is the biggest lever?
- Start with
- Retailrocket e-commerce events: view, add-to-cart and transaction events.
- Steps
- Build a user-level event table.
- Count users reaching each step and the conversion between steps.
- Split by new vs returning users.
- Pick one step and propose an experiment.
- Measure
- Funnel counts are consistent (each step is a subset of the previous).
- Ship
- Funnel chart and an experiment proposal.
- Why it counts
- Bridges analytics and product management.
Built a view-to-purchase funnel from [n] events; found the largest drop at [step] and proposed a test with an expected [x]% lift.
HR attrition analysis (people analytics)
The question: Which factors are most associated with employees leaving?
- Start with
- IBM HR Analytics Attrition (Kaggle): a fictional dataset of 1,470 employees.
- Steps
- Compute attrition by overtime, tenure, role and job satisfaction.
- Use window functions to rank departments by attrition.
- Highlight small groups that need caution.
- Recommend two policies to test.
- Measure
- State clearly that the data is fictional and that associations are not causes.
- Ship
- Dashboard and memo.
- Why it counts
- Teaches careful language about correlation, which interviewers probe.
Analysed attrition drivers across [n] employee records, highlighting overtime and tenure patterns and proposing two testable interventions.
Credit-card default risk segments
The question: Which customer groups carry the highest default rates, and where should limits be reviewed?
- Start with
- UCI Default of Credit Card Clients: 30,000 Taiwanese card holders.
- Steps
- Compute default rate by limit band, age band and repayment history.
- Find the strongest single predictor with a simple table.
- Create three risk tiers and quantify each tier's default rate.
- Recommend a policy per tier.
- Measure
- Tier default rates are monotonic and each tier has enough customers.
- Ship
- Risk-tier table and policy memo.
- Why it counts
- Fintech-flavoured analytics with a clear business decision.
Segmented 30,000 card holders into three risk tiers with default rates of [x]%, [y]% and [z]%; proposed tier-specific limit policies.
AI-assisted analysis with a validation log
The question: Where does an AI assistant speed up analysis, and where does it produce wrong code or claims?
- Start with
- Any dataset above. Re-do one project with an AI assistant and compare with your original.
- Steps
- Ask the assistant to write SQL and an EDA summary.
- Verify every query on a small sample you can check by hand.
- Log each error: wrong join, wrong filter, invented column, unsupported claim.
- Report time saved, errors found and your rules for trusting output.
- Measure
- The validation log: number of checks, errors caught and the fix for each.
- Ship
- Before and after comparison and the validation log.
- Why it counts
- Shows you use AI with judgement, which employers now expect.
Compared AI-assisted and manual analysis on [dataset]; caught [n] errors through verification and cut analysis time by [x]%.
14 more project ideas
Shorter briefs for when you want a different angle. Apply the same rules: a real source, a baseline, a number and a README.
Hospital wait-time analysis
BeginnerSQL, Tableau Public
DataPublic hospital or OPD datasets on data.gov.in
Stand-outA staffing recommendation by hour and day
Food-delivery pricing and ratings
Beginnerpandas, Power BI
DataKaggle restaurant or delivery datasets
Stand-outPrice-per-rating analysis with a recommendation for one city
Cricket analytics dashboard
BeginnerSQL, Python, Looker Studio
DataPublic IPL or international datasets
Stand-outA player-selection recommendation backed by numbers
Public transport ridership trends
Intermediatepandas, GeoPandas
DataOpen city transport data
Stand-outRoute-level insight mapped, with a frequency proposal
Electricity demand and tariff analysis
IntermediateSQL, Power BI
DataState electricity board open data
Stand-outPeak-hour recommendation with estimated savings
Retail inventory stock-out analysis
IntermediateSQL window functions
DataKaggle inventory or Olist
Stand-outReorder points per SKU and the cost of stock-outs
Customer support ticket analytics
IntermediateSQL, text clustering
DataSynthetic or public ticket data
Stand-outTop 5 root causes and the SLA impact
Website analytics audit
BeginnerGA4 export, Looker Studio
DataYour own site or a sample GA4 dataset in BigQuery
Stand-outThree concrete fixes ranked by traffic impact
Survey analysis with statistical tests
IntermediatePython, statsmodels
DataA survey you run with 100+ responses
Stand-outConfidence intervals, not just averages
Loan portfolio risk dashboard
IntermediateSQL, Power BI
DataUCI credit data or public lending data
Stand-outRisk tiers and an expected-loss estimate
Education outcomes by district
Intermediatepandas, maps
DataUDISE or state education data
Stand-outA district ranking with documented data gaps
Pricing elasticity estimate
AdvancedPython, regression
DataOlist or retail price and quantity data
Stand-outElasticity by category and a pricing recommendation
Dashboard quality review
BeginnerAny BI tool
DataThree public dashboards you critique
Stand-outA before-and-after redesign of one dashboard
dbt models with tests on a public dataset
Intermediatedbt Core, DuckDB or Postgres
DataOlist
Stand-outTested, documented models an analyst can trust
Starter SQL (PostgreSQL)
Table and column names follow the Olist and Online Retail II files after loading them as shown. Adjust names to match your load.
A. Monthly revenue and month-on-month growth (Olist)
WITH monthly AS (
SELECT date_trunc('month', o.order_purchase_timestamp) AS month,
SUM(i.price) AS revenue
FROM olist_orders_dataset o
JOIN olist_order_items_dataset i USING (order_id)
WHERE o.order_status = 'delivered'
GROUP BY 1
)
SELECT month, revenue,
ROUND(100.0 * (revenue - LAG(revenue) OVER (ORDER BY month))
/ NULLIF(LAG(revenue) OVER (ORDER BY month), 0), 1) AS mom_growth_pct
FROM monthly
ORDER BY month;B. Late delivery vs review score (Olist)
SELECT CASE WHEN o.order_delivered_customer_date > o.order_estimated_delivery_date
THEN 'late' ELSE 'on_time' END AS delivery,
COUNT(*) AS orders,
ROUND(AVG(r.review_score), 2) AS avg_review
FROM olist_orders_dataset o
JOIN olist_order_reviews_dataset r USING (order_id)
WHERE o.order_status = 'delivered'
AND o.order_delivered_customer_date IS NOT NULL
GROUP BY 1;C. RFM scores (Online Retail II)
WITH base AS (
SELECT customer_id,
MAX(invoice_date)::date AS last_order,
COUNT(DISTINCT invoice_no) AS frequency,
SUM(quantity * unit_price) AS monetary
FROM online_retail_ii
WHERE customer_id IS NOT NULL AND invoice_no NOT LIKE 'C%' AND quantity > 0
GROUP BY customer_id
)
SELECT customer_id,
NTILE(5) OVER (ORDER BY last_order) AS r_score, -- 5 = most recent
NTILE(5) OVER (ORDER BY frequency) AS f_score,
NTILE(5) OVER (ORDER BY monetary) AS m_score
FROM base;D. Monthly cohort retention (Online Retail II)
WITH first_order AS (
SELECT customer_id, date_trunc('month', MIN(invoice_date)) AS cohort
FROM online_retail_ii WHERE customer_id IS NOT NULL GROUP BY 1
), activity AS (
SELECT DISTINCT customer_id, date_trunc('month', invoice_date) AS active_month
FROM online_retail_ii WHERE customer_id IS NOT NULL
)
SELECT f.cohort,
(EXTRACT(YEAR FROM age(a.active_month, f.cohort)) * 12
+ EXTRACT(MONTH FROM age(a.active_month, f.cohort)))::int AS months_since,
COUNT(DISTINCT a.customer_id) AS active_customers
FROM first_order f
JOIN activity a USING (customer_id)
GROUP BY 1, 2
ORDER BY 1, 2;Using AI in analysis responsibly
- Never paste personal or confidential data into a public tool.
- Ask for the query and the reasoning, then run and check it yourself on a sample.
- Re-compute one headline number by hand or in a second tool.
- Keep a validation log. It is evidence of judgement and a strong interview story.
Portfolio checklist
- One question per project, stated in the first line.
- Data source and licence linked.
- SQL file and dashboard both published (GitHub and Tableau Public or a Power BI screenshot).
- Three charts at most, each with a title that states the finding.
- A recommendation with expected impact and the limits of the data.
Frequently asked questions
How many data analyst projects should I include in my portfolio?
Three to five well-documented projects are enough. Include SQL, a dashboard and at least one project with a clear recommendation.
What is the best first data analytics project?
An e-commerce sales and delivery analysis in SQL with a one-page dashboard, because it uses real business metrics and can be finished in a day.
Do I need Python for a data analyst portfolio?
SQL is essential. Python helps for cleaning, statistics and automation, and many roles list it, but a strong SQL and BI portfolio can get interviews.
Where can I find datasets for analytics projects?
Kaggle, the UCI Machine Learning Repository, data.gov.in, GroupLens and Google Dataset Search. Check each licence.
Should I put analytics projects on GitHub?
Yes. Publish SQL, a README with the question and findings, and a link to your dashboard.
How long does it take to build a data analytics portfolio?
With 8 to 10 hours a week, three solid projects take roughly four to six weeks.
Can I use AI tools for my projects?
Yes, if you verify the output and document what the AI got wrong. A validation log turns AI use into evidence of judgement.
What projects should I avoid?
Projects with no business question, copies of tutorial notebooks, and dashboards with ten unlabeled charts.
Learn this with mentors
Data and business analytics programmes with admissions open: live classes, mentors and project work.


