Research Brief
Can a cycle-hire forecast beat simply repeating last week?
How can a service planner tell whether a demand forecast is genuinely more useful than repeating last week?
Evaluate it on later station-hours that were unavailable when each forecast was issued, compare it with the same-station weekly baseline and retain both the error and forecast range at each notice period.
The station field, forecast ranges and error comparison are generated from the retained May predictions rather than typed into the article.
The retained study inspects 3,563,266 official Transport for London journey records and keeps a documented 356,057-journey subset for twelve stations from January to May 2026. The final May test contains 26,784 forecasts at one, three and six hours of notice. The selected gradient-boosted model reduces mean absolute error by 20.8% against the weekly baseline, but its 80% forecast ranges contain 88.8% of later observations and remain wide enough to require a planner check.
Later demand must remain outside the training window
A random split would let January and May station-hours appear on both sides of the evaluation. That makes the exercise unlike the real planning decision, where future departures do not exist when the forecast is issued. The build therefore uses three expanding time windows and reserves May as the final test period.
Lagged demand and rolling averages are shifted by the forecast notice before they are calculated. The one-hour forecast may use information available by 06:00 for a 07:00 target; it cannot use a count recorded at or after 07:00. A retained unit test fails if a future value enters the feature set.
Improvement over a baseline is necessary but not sufficient
The weekly baseline repeats demand at the same station and hour seven days earlier. The selected model improves mean absolute error by 24.7% at one hour, 19.1% at three hours and 18.5% at six hours on the final test. Error still increases with notice, so the page does not collapse the result into one accuracy claim.
Each selected forecast also keeps a lower and upper estimate. Across the final test, 88.8% of later observations fall inside the nominal 80% ranges. That over-coverage and an average width of 8.2 hires show why interval behaviour must be reported beside point error rather than described as certainty.
The model prepares a review; it does not move cycles
At Waterloo Station 3 on 13 May, the one-hour model predicted 161.3 departures against 152 observed, compared with 108 at the same hour one week earlier. The retained range ran from 0.0 to 169.3 and the absolute error was 9.3 hires.
That record enters a planner watch list. A person must still check live cycle availability, nearby docking capacity, closures and operating constraints. The study is not a deployed service, does not use weather and does not claim that forecast demand causes station imbalance.
Research record
Fact, interpretation and implication
The retained result is separated from its interpretation and from the action a practitioner may consider.- Research question
- Does a time-ordered cycle-hire forecast beat a same-station weekly baseline at one, three and six hours of notice, and how much uncertainty remains?
- Source
- Quanta Meridian: Cycle Hire Demand and Service Planning; Transport for London: Our open data; scikit-learn: TimeSeriesSplit; scikit-learn: Prediction intervals for gradient boosting regression
- Method
- The build validates official journey identifiers, creates complete station-hour observations, selects twelve stations before the final test period and uses three expanding time windows. Seasonal-naive, regularised count and gradient-boosted quantile models are compared using mean absolute error, peak-period error and interval coverage. May 2026 remains the final held-out month.
- Observed finding
- The selected gradient-boosted model reduces mean absolute error by 20.8% overall and remains ahead of the weekly baseline at every retained notice period. Forecast error rises as notice increases, while 88.8% of later observations fall within the nominal 80% ranges.
- Interpretation boundary
- Completed departures measure observed hires, not unmet demand or live cycle availability. The twelve-station subset, five-month period and absent weather, closure and rebalancing records limit operational interpretation. The result is not causal and the model is not deployed.
- Practical implication
- A planning forecast should retain issue time, target time, baseline result, forecast range and later error for every prediction. High error or a wide range should lead to a named operational check, not an automatic instruction.
Implementation evidence
Retained feature timing rule
This excerpt is checked against the retained python source used by the project build.result["departures_at_issue"] = grouped["departures"].shift(horizon_hours)
for lag in (24, 168):
result[f"lag_{lag}"] = grouped["departures"].shift(lag)
result["arrivals_at_issue"] = grouped["arrivals"].shift(horizon_hours)
result["net_at_issue"] = grouped["net_movement"].shift(horizon_hours)
result["rolling_24"] = grouped["departures"].transform(
lambda values: values.shift(horizon_hours).rolling(24, min_periods=24).mean()
)
result["rolling_168"] = grouped["departures"].transform(
lambda values: values.shift(horizon_hours).rolling(168, min_periods=168).mean()
)Retained comparison
Final May evaluation by forecast notice
Each row contains 8,928 later station-hour forecasts from the retained evaluation output.| Notice | Weekly baseline MAE | Selected model MAE | Improvement | Range coverage |
|---|---|---|---|---|
| 1 hour | 2.84 | 2.14 | 24.7% | 89.0% |
| 3 hours | 2.84 | 2.30 | 19.1% | 88.6% |
| 6 hours | 2.84 | 2.32 | 18.5% | 88.7% |
Records behind the finding
Inspect the evidence behind this finding
Each linked Project contains the records, checks and limitations behind the finding. The Insight interprets that evidence; it does not replace it.Sources
Sources used to answer the research question
- Cycle Hire Demand and Service PlanningQuanta Meridian
Executed Python build, retained forecasts, fitted models, tests and Waterloo station-hour trace.
- Our open dataTransport for London
Official location for Santander Cycle Hire journey data and open-data terms.
- TimeSeriesSplitscikit-learn
Technical benchmark for evaluating time-ordered observations without training on later data.
- Prediction intervals for gradient boosting regressionscikit-learn
Technical benchmark for estimating and evaluating quantile-based forecast ranges.
