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.
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
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.
The split respects chronological order — the model never trains on data from after the test period begins.
A naive or seasonal-naive baseline is built and reported first, and the final model's improvement over it is stated explicitly with numbers.
The notebook identifies specific periods or conditions where the model's error is largest, not just a single aggregate error number.
A reader can follow the reasoning from raw data to final forecast, with markdown explaining key decisions.
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.
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.