Open to work · Data analyst · Delhi NCR or remote

Build the future
with data.

I'm Milind. I turn messy public data into decisions a business can act on, and I check every number before it gets there.

01The board

Same dots. Three answers.

The dots start as messy data and settle into a chart from one of my projects. Switch projects, hover any dot, or tap the chart to replay it.

Fig. 02 — Messy data in, clear decisions outLive

Are IPL teams getting value for their auction money?

Mostly not: price explains only 10% of performance. Ringed: the biggest steals and busts.

Beat their price Fell short 226 players, IPL 2025

See the analysis →

02Work

What's on the shelf.

Eleven projects, each a real business question answered end to end. Drag the ring (or swipe), and open any card for the full case study.

Drag to explore · 01 / 11
All projects at a glance
ProjectQuestionAnswerToolsLinks
Moneyball IPLAre IPL teams getting value for their auction money? Mostly not10% of performance explained by priceSQL, Python, pandas, KPI designCase study · Code ↗
Telco churnWhich customers should get a retention offer? Only the top 29%+$92k vs −$122k offering everyoneSQL, Python, scikit-learn, StatisticsCase study · Code ↗
Retention dashboardWho should the retention team contact first, and is it worth it? 2,023 customers, ranked~$98k expected profit, live toolJavaScript, Data visualizationDashboard · Code ↗
TTC subway delaysWhere should the TTC focus to cut subway delays? Passengers, not trains76% of the rise in delaysSQL, Python, Statistics, Data cleaningCase study · Code ↗
Cookie Cats A/B testShould we move the game's first gate from level 30 to level 40? No, keep it at 30823 extra players broke the testA/B testing, Python, SQL, StatisticsCase study · Code ↗
Delhi smogTo cut November smog, should Delhi tackle Diwali firecrackers or crop fires? Crop fires~60% of early-November smogPython, statsmodels, scikit-learn, APIsCase study · Code ↗
UPI vs. cashUPI won. Should banks plan for less cash? No, cash still matters~12% of GDP, same as before UPISQL, Python, ForecastingCase study · Code ↗
Express Entry drawsWhat CRS score does a candidate need for Canadian PR in 2026? Depends on the stream169–523 CRS: 2026 cutoffs by streamSQL, Python, ForecastingCase study · Code ↗
Active vs. index fundsDo active large-cap mutual funds in India beat a cheap Nifty 50 index fund? Mostly, in cycles19 of 20 surviving funds aheadPython, pandas, Finance, BacktestingCase study · Code ↗
Global terrorism trendsWhere do terrorist attacks happen most, and what kind of attacks are they? Iraq, Pakistan, Afghanistan46% of 2012–17 attacksPython, pandas, matplotlib, EDACase study · Code ↗
Workforce diversityWhich US industries most need diversity hiring? Construction, farming, mining89% of construction workers are menPython, scikit-learn, K-Means, PCACase study · Code ↗

03Toolkit

Four ways I turn rows into decisions.

The same toolkit runs through every project: SQL to shape it, Python to model it, statistics to trust it, and a dashboard so someone else can use it.

ASQL

Shape the data before trusting it.

DuckDB and Postgres: CTEs, window functions, joins across messy sources, and data-quality checks written as SQL tests. Read the real queries:

BPython

Model it.

pandas for cleaning, scikit-learn and statsmodels for the models, matplotlib for charts people can read.

pandasscikit-learnstatsmodels
CStatistics

Know when to trust it.

A/B tests, forecasts and causal checks, with the uncertainty said out loud.

A/B testsForecastingDiff-in-diff
DAsk a question

Describe the decision. I'll find the data.

Every project starts with a plain-English question a manager would ask, and ends with an answer they can act on, in Power BI, Excel or a live dashboard when they need to explore it themselves.

04Checks

Every number, checked.

Analysis is only worth acting on if you can defend where each number came from.

PLAYER_ROW.JSONRAW → CLEAN
{
  "player": "Varun Chakaravarthy ""Varun Chakravarthy"
  "price": "12.00 Cr"12.0
  "team": "KKR"
  "matched_by": null"fuzzy · logged"
  "runs_added": null+98
  "checked": true
}
Illustrative record: what a messy source looks like, and what reaches the analysis.
R1

Check the test before the result

A sample-ratio check found 823 extra players in Cookie Cats and changed the answer.

R2

Log every unmatched row

Four name-matching methods for the IPL data, and every manual fix documented.

R3

Data-quality tests in SQL

18 automated checks on the TTC data caught real duplicates before any analysis.

05About

Milind SaxenaGhaziabad · Delhi NCR

Hi, I'm Milind.

I'm a Computer Science and Economics graduate interested in where data, products and business meet. I like using analysis to answer three questions: why is this happening, what should we do, and how much is it worth?

I try to prove my own answers wrong before I trust them. That habit caught a broken random split in the Cookie Cats A/B test, and a model in my Delhi project that was really just measuring the season.

Education
Honours B.A., Computer Science & Economics · McMaster University · 2023 · Dean's Honour List
Looking for
Data analyst or junior data scientist roles, Delhi NCR or remote. Available immediately.

06Contact

Need an analyst who checks the numbers?

I'm looking for a data analyst or junior data scientist role, in Delhi NCR or remote. I can start immediately.