Free forever: 5 resume reviews + 10 AI actions every month. Claim your free spot →
ReachRole

Data Scientist project

Build a time-series forecast that beats a naive baseline

A forecast evaluated the way a real team would evaluate it — against a naive baseline, with a time-respecting split, not a random one.

9-12 hoursEstimated time
IntermediateDifficulty
5Graded criteria
RepoWhat you submit

The brief

Build a time-series forecasting notebook on a real public dataset with a daily or weekly series (for example, a public retail sales dataset). Split train and test respecting time order (no shuffling). Build a naive or seasonal-naive baseline first, then a real forecasting model, and do error analysis showing specifically where and when the model performs worst.

Suggested stack

Python pandas statsmodels or Prophet or scikit-learn

What you hand in

  • A public GitHub repository with the notebook and a README
  • The README states the dataset source and how to reproduce the results
  • A short section comparing the model's error against the baseline's, with the error-analysis chart or table included

Grading happens against the rubric below, so read it before you start — not after.

How this is graded

Published in advance and weighted out of 100. Nothing here is a surprise.

Time-aware train/test split 25 pts

The split respects chronological order — the model never trains on data from after the test period begins.

Baseline comparison 25 pts

A naive or seasonal-naive baseline is built and reported first, and the final model's improvement over it is stated explicitly with numbers.

Error analysis 25 pts

The notebook identifies specific periods or conditions where the model's error is largest, not just a single aggregate error number.

Notebook clarity 15 pts

A reader can follow the reasoning from raw data to final forecast, with markdown explaining key decisions.

Finish 10 pts

No console errors or crashes, no broken layout, no leftover placeholder text or commented-out code.

Why this project is worth your weekend

  • A random (non-chronological) train/test split on time series is one of the most common real-world data science bugs, and it silently inflates results.
  • Comparing against a naive baseline is how a real team actually decides whether the added model complexity is worth it.
  • Forecasting shows up in demand planning, staffing, and revenue projection — real, checkable business surface area.

Where people lose points

  • A random (non-chronological) train/test split that lets the model effectively see the future during training.
  • No baseline comparison, so there's no way to tell whether the fancier model actually beats yesterday's naive guess.
  • Reporting only a single aggregate error metric with no look at where or when the model performs worst.

Other Data Scientist projects

Two or three of these turn an empty resume into a portfolio.

Back to the roadmap

Built it? Get it scored against this rubric.

Submit your work and get a score on every criterion above, written feedback, and three resume bullets you can use straight away.

Submit for grading Free to start. Grading uses one AI action.