Milestone map
Milestone map
3 milestones
Produce a cleaned dataset with documented methodology
3 weeks
Data analysis begins with wrangling — getting a raw dataset into a form where questions can be asked of it. Choose a publicly available raw dataset (from Kaggle, data.gov, Our World in Data, or a government open data portal) and perform documented cleaning in a Jupyter or Colab notebook: handle missing values, fix data type errors, identify and document outliers, and produce a cleaned version with a written explanation of every transformation and the reason for each decision. The notebook must be publicly shareable and run top-to-bottom without errors.
Proof required
Submit a public Jupyter notebook or Google Colab link (shareable URL, not a screenshot) showing the raw dataset, every cleaning step with Python code and a written text-cell explanation for each decision, and summary statistics (shape, dtypes, null counts) at the start and end of the notebook demonstrating the before/after state of the data.
What gets checked
- Notebook is publicly accessible via a shareable link and runs from top to bottom without errors — import errors, missing file references, or runtime errors on standard libraries indicate incomplete preparation
- Every cleaning decision has a text-cell written explanation, not just code — removing a row, imputing a value, and changing a dtype each have a written justification; code-only notebooks without prose explanation do not pass
- Summary statistics at the start and end of the notebook demonstrate the before/after state numerically — shape, null counts, and dtype table showing what changed
Common mistakes
- Downloading a pre-cleaned dataset (common on Kaggle 'getting started' competitions) — start from a genuinely raw source where missing values, type errors, and outliers are visible; cleaning a clean dataset produces no learning or proof
- Writing code-only notebooks without text explanations — the written documentation is the proof of understanding; pandas syntax knowledge alone does not demonstrate that you know why each transformation was appropriate
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- Run the notebook from top to bottom via the shareable link — if any cell fails to execute, the proof is incomplete
- Check that cleaning decisions have text explanations — ask the submitter to explain one non-obvious choice: why they imputed rather than dropped a missing value, or why they capped rather than removed an outlier
- Confirm the dataset is genuinely raw at the start of the notebook — a dataset already containing tidy column names, consistent dtypes, and no nulls was likely already cleaned
You'll sign in first, then come straight back here.
Produce an end-to-end analysis answering a real question
4 weeks
Data analysis becomes meaningful when it answers a specific question. Choose a dataset with a real directional question behind it — not 'explore the data' but 'does X vary with Y?', 'which category has the highest Z?', or 'has trend T changed since event E?'. Produce a complete analysis notebook: state your question at the top, show exploratory plots with written interpretations below each, apply at least one statistical summary method, and write a conclusion that answers the original question directly — including what the analysis does NOT show.
Proof required
Submit a public Jupyter or Colab notebook that begins with a stated analytical question, shows exploratory analysis including at least 3 meaningful visualisations (each with axis labels and a written one-sentence interpretation), applies at least one statistical summary method (correlation, groupby aggregate, regression, or chi-square), and ends with a written conclusion that directly answers the stated question and identifies one analytical limitation.
What gets checked
- Analytical question is stated at the top of the notebook and explicitly answered in the conclusion — 'I found many interesting things' is not an answer; the conclusion must state whether the question was confirmed, refuted, or inconclusive and why
- At least 3 visualisations are present with axis titles, legends where appropriate, and a written one-sentence interpretation below each plot — unlabelled plots or plots without interpretation do not pass this bar
- The conclusion identifies at least one limitation or caveat — what the analysis cannot conclude, or what confounding factor might affect the interpretation — demonstrating critical engagement with the data
Common mistakes
- Describing what the data contains rather than answering a question — 'the dataset has 5,000 rows and 12 columns and shows various trends' is an inventory, not an analysis; the notebook must have a directional question driving every visualisation and summary
- Plotting every column available rather than selecting visualisations that address the stated question — excess plots with no interpretations signal that the notebook has no analytical direction
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- Read the stated question at the top of the notebook, then read the conclusion — does the conclusion directly answer the question? If not, the analysis is incomplete regardless of how many plots appear
- Check that all visualisations have axis labels and written interpretations — unlabelled charts require the reader to infer meaning that the submitter should be articulating explicitly
- Ask the submitter what surprised them most in the data — someone who actually ran the analysis has a specific answer; someone who imported a completed public notebook typically does not
You'll sign in first, then come straight back here.
Portfolio analysis reviewed by a data professional
5 weeks
The capstone is an analysis of your own choosing — a dataset, a question, and a method you selected independently, not a guided tutorial. The proof requires a completed public notebook PLUS a documented review session with a qualified data professional (data analyst, data scientist, or statistician with at least 3 years of experience) who reads your methodology, runs your code, and asks follow-up questions about your analytical choices. Document the reviewer's identity and qualifications, their follow-up questions, and your written responses.
Proof required
Submit your portfolio analysis notebook (public Jupyter or Colab link) alongside a written review report documenting: the reviewer's name and professional background with a verifiable link (LinkedIn or employer page), the specific sections or analytical decisions they examined, at least two follow-up questions they asked about your methodology, and your written responses to each question.
What gets checked
- Reviewer is identified by name with a verifiable professional background showing at least 3 years of data analysis, data science, or statistical work — a friend who uses Excel or a recent coding bootcamp graduate does not meet the qualification threshold
- Written review documents at least two specific follow-up questions about your analytical choices — not general praise, but targeted questions like 'why did you choose median imputation here?' or 'what does this outlier represent and why did you retain it?' — with your written responses
- Portfolio analysis uses a dataset and question chosen independently — not a tutorial walkthrough dataset, not a widely-used Kaggle competition with existing public notebooks that could have been copied; the analytical question and approach should be demonstrably yours
Common mistakes
- Asking a data-adjacent colleague or junior analyst to review — the reviewer must have professional experience making consequential analytical decisions, not just familiarity with Python or Excel; a junior data or business analyst intern does not meet the threshold
- Submitting a tutorial-following notebook — if the dataset and question appear in Kaggle 'getting started' competitions or published walkthrough notebooks, the review will likely identify this; choose a different dataset and an original analytical question
Resources
Foundationstart here
Depthgo deeper
What a verifier looks for
- The reviewer's professional background should include experience producing analyses that informed real business or research decisions — an academic statistician, working data analyst, or quantitative researcher all qualify
- Ask the submitter to explain why they chose their specific analytical method over an obvious alternative — someone who made the choice can articulate the tradeoff in 30 seconds; someone who followed a tutorial typically cannot
- Search the dataset name on Kaggle and GitHub to confirm it is not a widely-used tutorial dataset with publicly available solutions — if top results include completed notebooks matching the analysis structure, escalate to the submitter for explanation
You'll sign in first, then come straight back here.