Handle a data science take-home: time-box it and submit cleanly
In this article (8 sections)
Related programme: the Data Science course (6 months; ₹1,30,000 (inclusive of GST) · EMI from ₹5,000/month).
Handle a data science take-home by agreeing the deadline and scope in writing, splitting your time into fixed blocks (understand, baseline, improve, write up), stopping improvement work when its block ends, and submitting a small folder whose README gives the answer, the method, the limitations and how to run it in the first screen. Reviewers usually value a clear, correct baseline with honest limitations over an elaborate model with no explanation.
Before you start: clarify in one email
Take-homes are often vague on purpose, but some ambiguity is just missing information. Ask once, briefly, within a day of receiving it:
Hi Meera, thanks for the assignment. Two quick questions before I start:
1. Is the suggested 4 hours a guide or a limit? I want to scope accordingly.
2. Should I submit a notebook, scripts, or either? And is a short written summary
expected alongside the code?
I plan to submit by Thursday 6 PM, within the 5-day window.If they do not answer, proceed with sensible assumptions and write them down in the README. Stating an assumption is always better than silently guessing.
The time-box plan for a 4-hour assignment
| Block | Time | Output at the end of the block |
|---|---|---|
| Understand | 30 min | A written problem statement, target definition, metric, list of data issues |
| Baseline | 60 min | A simple model or analysis with a validation split and a score |
| Improve | 75 min | One or two improvements, each compared against the baseline |
| Write up | 45 min | README, cleaned notebook, run check |
| Buffer | 30 min | For the thing that always goes wrong |
When a block ends, you move on, even if you wanted one more experiment. People who skip the write-up to squeeze in an extra model tuning pass almost always submit something worse.
If the company says "no time limit", pick one anyway and state it: "I spent about five hours on this." It shows judgement and sets expectations for the review.
The understand block: write the problem down
A short scratch note at the top of your notebook:
Goal: predict whether an order will be returned (binary).
Unit: one row per order line.
Metric: they ask for "best model"; I will report ROC-AUC and precision at the top
10% because a returns team can only review a fixed number of orders.
Data issues spotted: 3% missing delivery dates; order_date after delivery_date in
41 rows; product_category has "Electronics" and "electronics".
Leakage risk: return_reason is only filled after a return, so it must be dropped.Leakage columns are the classic take-home trap. Reviewers often plant one to see whether you notice.
The improve block: choose improvements you can explain
Good candidates, in rough order of value:
- 1Fixing a data issue you found and showing the score before and after
- 2A stronger model family compared against the baseline on the same split
- 3A threshold chosen from a stated business cost
- 4A small error analysis: where does the model fail, by segment?
Weak use of time: large hyperparameter searches, stacking five models, or a deep learning model on 5,000 tabular rows. They are hard to justify in a follow-up call.
The submission folder
submission/
README.md answer first, then method, limitations, how to run
analysis.ipynb run top to bottom, outputs saved, no dead cells
requirements.txt only packages you actually import
src/ optional: helper functions if the notebook got longDo not include the raw data if the company provided it, unless asked. Do not include your scratch notebooks.
The README, first screen
# Order returns take-home
## Answer
A gradient boosting model reaches ROC-AUC 0.78 on a held-out 20% split
(baseline logistic regression: 0.71). At the top 10% of scored orders, precision
is 0.34 against a base return rate of 0.12.
## What I did (about 4.5 hours)
- Removed return_reason (only known after a return: leakage).
- Fixed 41 rows with delivery before order date by excluding them; noted below.
- Compared logistic regression and gradient boosting on the same split.
## Limitations
- Random split; a time-based split would be more realistic if order dates allow.
- No tuning beyond defaults and one depth change.
- Category label clean-up was manual for two values.
## How to run
pip install -r requirements.txt
jupyter nbconvert --to notebook --execute analysis.ipynbThe numbers above are illustrative; report yours. Putting the answer first matters because a reviewer may read only this screen before the follow-up call.
Final checks before you send
- Restart the kernel and run all cells. Anything that fails is a failed submission.
- Search the notebook for leftover
print(df.head())cells and hard-coded local paths likeC:\Users\.... - Confirm the file names and format match what they asked for.
- Send before the deadline with a two-line email that states the time spent.
Protect yourself on scope
A take-home that asks for many hours of work on what looks like the company's live business problem, with no interview scheduled, deserves a polite question about how the work will be used. You can offer a smaller version: "I can do a 4-hour version focused on the baseline and write-up; would that work?"
Expect the follow-up round to ask about your choices, so prepare with the five-rung drill in project bullets that hold up under follow-up questions. The Data Science programme includes timed, reviewed assignments in this format.
Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.
This article is part of our Data Science programme — 6 months. From data foundations to machine learning, deep learning and deployment.
Explore Data Science