11 / Independent ML engineering · 2026
Bike sharing demand without temporal leakage
Time-aware validation and a train-only calendar baseline replace a random split.
The original random split and test-set refit were removed. All preprocessing lives inside the estimator pipeline and the public metrics are explicitly limited to deterministic synthetic data.

Evidence register
59.26
RMSE
Synthetic final holdout
163.49
baseline RMSE
Train-only calendar baseline
6/6
tests
Temporal and serving contracts
01 / Problem
Randomly splitting dated demand lets similar future conditions influence training and inflates confidence in deployment performance.
02 / Approach
Use expanding temporal folds, keep a final period untouched, fit every transform inside the pipeline and compare against a past-only calendar baseline.
03 / Outcome
On the 365-row synthetic holdout, Ridge reaches RMSE 59.26, MAE 49.08 and R² 0.601 versus baseline RMSE 163.49.
System trace
How the evidence is produced.
Removed leakage, built the time-aware evaluation, added a reproducible public dataset, tested API and CI.
- 01Synthetic dated demand → schema
- 02Temporal CV → pipeline selection
- 03Final holdout → baseline comparison
- 04Artifact → strict API
Validation scope
Six tests pass. The final holdout covers ordered observations 1,461–1,825 and is evaluated only after time-aware model selection.
Known limitation
The original CSV was excluded because source and licence were undocumented. Public metrics demonstrate the method, not real-city forecasting performance.
What is inspectable
- No shuffled split.
- Preprocessing cannot inspect the holdout.
- Dataset provenance determines what is published.
Next proof to add
- 01Adopt a licensed real dataset.
- 02Add probabilistic intervals.
- 03Monitor weather and concept drift.
Main stack