Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build an end-to-end, reproducible analysis project that combines multiple data sources and time. Requirements: (1) COMBINE at least two datasets with a documented merge (state the join type and verify row counts before/after); (2) full CLEANING with documented decisions; (3) a TIME-SERIES component — set a DatetimeIndex and use resample (e.g. monthly aggregation) and a rolling average to show a trend, plus a period-over-period change; (4) analysis via groupby/pivot_table and descriptive statistics (with a correlation, reported honestly); (5) a set of polished, communication-ready VISUALIZATIONS; (6) REPRODUCIBILITY — organize the work so it runs top-to-bottom cleanly (restart-and-run-all), avoid in-place mutation and chained-indexing assignment, pin dependencies (requirements.txt), and extract reusable logic into a .py module or well-structured notebook; (7) a written REPORT communicating the key insight as question → finding → so-what → recommendation, with limitations. Document data sources and cleaning assumptions.
At least two sources merged with a documented, row-count-verified join; cleaning decisions documented.
DatetimeIndex with resample + rolling trend and period-over-period change; groupby/pivot + honest descriptive stats.
Runs clean top-to-bottom, pinned deps, no chained-indexing/in-place pitfalls; a question→finding→so-what→recommendation report with limitations.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# An end-to-end, reproducible analysis ## Goal Build an end-to-end, reproducible analysis project that combines multiple data sources and time. Requirements: (1) COMBINE at least two datasets with a documented merge (state the join type and verify row counts before/after); (2) full CLEANING with documented decisions; (3) a TIME-SERIES component — set a DatetimeIndex and use resample (e.g. monthly aggregation) and a rolling average to show a trend, plus a period-over-period change; (4) analysis via groupby/pivot_table and descriptive statistics (with a correlation, reported honestly); (5) a set of polished, communication-ready VISUALIZATIONS; (6) REPRODUCIBILITY — organize the work so it runs top-to-bottom cleanly (restart-and-run-all), avoid in-place mutation and chained-indexing assignment, pin dependencies (requirements.txt), and extract reusable logic into a .py module or well-structured notebook; (7) a written REPORT communicating the key insight as question → finding → so-what → recommendation, with limitations. Document data sources and cleaning assumptions. ## Acceptance criteria - [ ] Data integration & cleaning: At least two sources merged with a documented, row-count-verified join; cleaning decisions documented. - [ ] Time series & analysis: DatetimeIndex with resample + rolling trend and period-over-period change; groupby/pivot + honest descriptive stats. - [ ] Reproducibility & report: Runs clean top-to-bottom, pinned deps, no chained-indexing/in-place pitfalls; a question→finding→so-what→recommendation report with limitations. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.